为什么选 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 限制 | .wslconfig 加 swap=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