Appearance
Windows 11 启用 WSL2
警告
Windows 10 下的 WSL2 不支持 “镜像网络模式(mirrored networking)”。该功能仅在 Windows 11(22H2 及以上版本)中提供。
安装步骤
前提条件
开启 CPU 虚拟化
- 可以在「任务管理器 → 性能 → CPU」确认是否开启
- 否则进入 BIOS 中启用
启用 Linux 子系统
以管理员身份运行:
powershelldism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartpowershelldism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart手动启用
或者直接手动在「启用或关闭 Windows 功能」中勾选:
- 适用于 Linux 的 Windows 子系统
- 虚拟机平台
重新启动电脑。
更新 WSL 和 Linux 内核到最新版本
powershellwsl --update绕过 Windows Update
如果因为公司组策略限制等原因无法通过 Windows Update 进行更新,则可以用
wsl --update --web-download命令网络下载最新 WSL 内核。
安装 Linux 子系统
将 WSL 的默认版本设置为 WSL2
powershellwsl --set-default-version 2直接安装 Debian
powershellwsl --install -d Debian信息
也可以从 Microsoft Store 搜索 “Debian” 安装
信息
列出可用的 Linux 分发版
powershellwsl --list --online也可以简写为
wsl -l -o。确认使用 WSL2 并设为默认
powershellwsl -l -vpowershellwsl --set-default Debianpowershellwsl --set-version Debian 2进入 Linux 子系统
在 Windows 终端中,点击「+」新建标签页旁边的「∨」下拉列表,选择对应的子系统即可。
只要退出命令行交互窗口 Linux 子系统就自动停止运行了。
卸载 Linux 子系统
powershellwsl --unregister Debian
推荐配置
启用 systemd(默认)
在 Linux 系统内执行:
Bash
sudo nano /etc/wsl.conf填入以下内容:
INI
[boot]
systemd=true重启 Linux 子系统后,执行 systemctl 应该正常工作。
使用镜像网络模式
在 Windows 用户目录下创建/编辑 .wslconfig 文件:
INI
[wsl2]
networkingMode=mirrored重启 Linux 子系统后 Linux 子系统将会与宿主机共用同一个 IP 地址。
禁用 IPv6
镜像网络模式下 Linux 子系统会优先尝试使用 IPv6(如 Node.js),而国内普遍对 IPv6 的支持较差,可在 Windows 用户目录下的 .wslconfig 中配置禁用 IPv6:
INI
[wsl2]
kernelCommandLine = ipv6.disable=1设置默认用户
在 /etc/wsl.conf 中配置:
INI
[user]
default=username将 username 替换为你实际的用户名。此配置指定 WSL 启动时默认登录的用户,而非 root。
如果指定的用户不存在,WSL 会回退到默认行为(以 root 登录)。
修改 Linux 安装目录
备份 Linux 子系统
powershellwsl --export Debian wsl-debian.tar该命令会将 Debian 子系统被分到当前目录下的
wsl-debian.tar文件。卸载旧 Linux 子系统
powershellwsl --unregister Debian导入 Linux 子系统
powershellwsl --import Debian D:\wsl\debian C:\Users\Admin\wsl-debian.tar
禁止 Linux 子系统调用 Windows 命令(可选)
修改 /etc/wsl.conf:
INI
[interop]
enabled = false # 禁用 interop
appendWindowsPath = false # 禁止自动追加 Windows PATH重启 Linux 子系统
在 Windows PowerShell 中重启指定实例:
powershell
wsl --terminate Debian或关闭全部正在运行的实例:
powershell
wsl --shutdown警告
在重启之前,必须等子系统停止,给它足够的时间来获取你的更改(推荐 8s 后)。
最佳实践
尽量不要直接在挂载卷中进行开发工作
跨文件系统 IO 性能差 5–40 倍,建议将代码拷贝到
~/project、~/workspace进行开发。安装 VS Code 的 WSL 插件
推荐直接用 Docker Desktop + WSL 集成,不用在 Debian 里再装
docker.io