Featured image of post WSL2 完整使用手册:从安装到 Kali Linux 渗透工作流

WSL2 完整使用手册:从安装到 Kali Linux 渗透工作流

WSL2 从零到 Kali 渗透工作站的完整手册:启用子系统、安装 Kali 镜像、mirrored 网络模式、SSH 服务、五笔输入法、Zsh 终端全家桶。

为什么选 WSL2

WSL2(Windows Subsystem for Linux v2)2019-06 GA,相比 WSL1:

  • 完整 Linux 内核(4.19+),systemd、Docker、systemd-resolved 全部支持
  • 文件 IO 性能比 WSL1 快 5~20 倍
  • 完整 syscall 兼容(ptrace、cgroups、namespace 全部原生)

对于开发者:“Windows 当 IDE,WSL2 当 Linux 后端"是 2020 年后最主流的工作流。

前置环境

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 1. 启用 WSL 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 2. 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 3. 安装内核更新(一次性)
# 下载:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

# 4. 设为默认 v2
wsl --set-default-version 2

# 5. 查看状态
wsl --status

# 6. 列出可安装的发行版
wsl -l -o

安装 Kali Linux

方式一:Microsoft Store 一键装

Store 搜索 “Kali Linux” 直接装,最省事。

方式二:手动装(适合内网 / 离线环境)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 1. 下载镜像
# 链接:https://kali-linux.en.uptodown.com/windows/download
# 得到:kali-linux-pc-2025-4-0-0.appxbundle

# 2. 改后缀为 zip 后解压
Rename-Item .\kali-linux-pc-2025-4-0-0.appxbundle kali-linux-pc-2025-4-0-0.zip
Expand-Archive .\kali-linux-pc-2025-4-0-0.zip

# 3. 解压 DistroLauncher-Appx_2025.4.0.0_x64.appx
cd kali-linux-pc-2025-4-0-0
Rename-Item DistroLauncher-Appx_2025.4.0.0_x64.appx appx.zip
Expand-Archive .\appx.zip -DestinationPath D:\soft\sys\kali-linux

# 4. 双击执行里面的 kali.exe
# 提示设置用户名 + 密码(用户名建议 root,密码自定义)

启用 root 账号

1
2
3
4
5
6
7
8
9
# 启用 root 并设密码
sudo passwd root

# PowerShell 中设为默认用户
# 安装目录 D:\soft\sys\kali-linux
.\kali.exe config --default-user root

# 进系统,默认 root
wsl

升级到完整版

1
2
3
4
5
apt update
apt upgrade

# 可选:装完整工具集(3GB+)
apt install kali-linux-everything

网络模式:mirrored

WSL2 默认 NAT 模式有几个坑:

  • 端口转发配置复杂
  • 宿主机访问 WSL2 服务需 localhost:port
  • IPv6 不通

mirrored 模式(WSL 2.0+ GA)让 WSL2 共享宿主机网络栈,IP 一样:

1
2
3
4
5
6
# C:\Users\<USER>\.wslconfig
[wsl2]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
1
2
# 重启生效
wsl --shutdown

验证:

1
2
3
4
5
6
ip addr show eth1
# inet 10.8.33.26/24 ...
# mtu 1500

# 注意:mirrored 模式下 MTU 必须和宿主机的代理 tun 模式一致
# 如果 WSL 网络表现异常,先看 mtu

SSH 服务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
sudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl status ssh

# 编辑配置(启用公钥认证)
sudo nvim /etc/ssh/sshd_config
PubkeyAuthentication yes
sudo systemctl restart ssh

# 把本机公钥推过去
cat /path/to/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Zsh + Oh My Zsh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 切换 zsh
echo $SHELL
chsh -s /bin/zsh

# PowerShell 下停止 wsl
wsl -t kali-linux
wsl

# 安装 Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Powerlevel10k 主题
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
    ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# 改 ~/.zshrc
nvim ~/.zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"
source ~/.zshrc
p10k configure

字体:Meslo Nerd Font

1
2
3
4
5
6
7
8
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip
mkdir -p ~/.local/share/fonts
unzip Meslo.zip -d ~/.local/share/fonts/Meslo/
fc-cache -fv

# VSCode 配置
# ~/.config/Code/user/settings.json
"terminal.integrated.fontFamily": "JetBrainsMono Nerd Font"

五笔输入法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo apt-get install fcitx5 fcitx5-chinese-addons \
    fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 fcitx5-frontend-qt5 \
    kde-config-fcitx5

# 写入 ~/.zshrc
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

fcitx5 -d
fcitx5-config-qt

卸载

1
2
3
4
5
6
7
# 查看已安装的
wsl -l -v
# NAME          STATE           VERSION
# * kali-linux    Running         2

# 卸载
wsl --unregister kali-linux

WSL2 与 Docker 集成

mirrored 模式下 WSL2 内的 Docker daemon 可以监听宿主机的 2375 端口。docker-desktop 用的是 WSL2 后端,但 WSL2 内的 docker.io 是独立的 daemon——可以同时存在。

性能优化清单

项目命令作用
swap 限制.wslconfigswap=8GB防止 WSL 吃满宿主机内存
内存限制memory=4GB限制 WSL 最大内存
处理器数processors=4限制 WSL CPU 核数
启动项sparseVhd=true自动压缩 vhdx 节省磁盘
1
2
3
4
5
6
7
8
# C:\Users\<USER>\.wslconfig
[wsl2]
memory=4GB
processors=4
swap=8GB
swapFile=D:\\wsl-swap.vhdx
sparseVhd=true
localhostForwarding=true

下一步

  • 想把 WSL2 当主力开发环境(Java/Maven),看 2018-04-15《WSL 远程开发环境搭建》
  • 想在 WSL2 里搞全栈开发(pnpm + turbo + Vite),看 2020-04-15《FSS 全栈脚手架》

参考资料

  • Microsoft WSL 文档:https://learn.microsoft.com/en-us/windows/wsl/
  • WSL2 mirrored 模式说明:https://learn.microsoft.com/en-us/windows/wsl/networking
  • Kali Linux for WSL:https://www.kali.org/docs/wsl/
  • Oh My Zsh:https://github.com/ohmyzsh/ohmyzsh
使用 Hugo 构建
主题 StackJimmy 设计