WSL2的安装与体验
2024年7月31日大约 2 分钟
WSL2的安装与体验
注
本文版权归原作者所有,未经允许禁止转载。
每次需要 Linux 的时候都要开一台虚拟机太麻烦,于是想着安装个 WSL 2 体验一波,感觉还不错,非常方便,尤其是使用 Docker 的体验,在镜像网络模式下,端口与主机共享,打靶场以及打攻防感觉很棒。
安装步骤

然后重新启动电脑。
首先要更新一下 wsl:
wsl --update
查看有哪些可用的 Linux 发行版:
wsl --list --online
安装指定发行版:
wsl --install -d <发行版名称> --web-download
设置进入的默认用户:
# 进入powershell
<发行版名称>.exe config --default-user <用户名>
相关配置
更换默认 shell 为 zsh
:
chsh -s /bin/zsh
WSL 常用全局配置:
# 用户文件夹下的 .wslconfig
[wsl2]
memory=2GB
processors=2
swap=4GB
networkingMode=mirrored # 镜像网络
[experimental]
autoMemoryReclaim=dropcache # 缓存内存释放
hostAddressLoopback=true # 本地回环监听
启用 systemd,启用后在终端启动 WSL 会变慢,一般没特殊需求建议关闭,不影响 docker:
# vi /etc/wsl.conf
[boot]
systemd=true
如果需要 docker 监听的端口与 Windows 也能访问,则需要关闭 docker 的 iptables,文件如下:
/etc/docker/daemon.json
{
"iptables": false
}
升级内核(手动编译)
默认的 WSL 内核版本目前是 5.13,想要升级至 6.0 的内核,则需要手动编译。
步骤参考:How to use the Microsoft Linux kernel v6 on WSL2 | Microsoft Learn
编译后是一次性的,如果删除 WSL 即使保留内核也没用,因为还需要内核模块,除非你把内核模块都打包备份,下次用解压至指定路径,不同发行版应该也都不通用。
克隆需要的内核版本源代码,目前版本最新是 6.6.y
,视情况而定:
git clone https://github.com/microsoft/WSL2-Linux-Kernel.git --depth=1 -b linux-msft-wsl-6.6.y
- 安装依赖,其中
rsync
软件包kali
当中没有,会影响内核模块的安装,我这里加上了:
sudo apt update && sudo apt install build-essential flex bison libssl-dev libelf-dev bc python3 pahole rsync -y
- 进入源代码目录:
cd WSL2-Linux-Kernel
- 编译内核:
make -j$(nproc) KCONFIG_CONFIG=Microsoft/config-wsl
- 安装内核模块,可能下次启动
sudo make modules_install headers_install
- 复制内核至 D 盘,其他位置也行:
cp arch/x86/boot/bzImage /mnt/d/
- 全局搜索
kernel
文件,建议使用everything
,我的是在C:\Program Files\WSL\tools
,将内核文件放在此目录,其他目录也行无所谓,然后在配置文件中添加:
.wslconfig
[wsl2]
kernel=<内核文件路径>
重启 WSL ,运行以下命令查看内核模块是否安装,如果没有安装,需要再次执行步骤 4:
ls /lib/modules/$(uname -r)/