如果你想在 Windows 11 上获得一个“像 macOS/Linux 一样顺手”的终端与开发环境,但又不想折腾双系统,WSL2 基本是最省心的选择。本文目标是:把 WSL2 从“装上了”升级到“长期稳定可用”,并把常见坑一次讲清。
1) 系统建议:Windows 11(22H2+ 更佳)。
2) BIOS/UEFI 里开启虚拟化(不同主板叫法不同,常见为 Intel VT-x / AMD-V)。
3) Windows 功能要求:WSL 与虚拟机平台(多数情况下 wsl --install 会自动处理)。
官方参考:https://learn.microsoft.com/windows/wsl/
以管理员身份打开 Windows Terminal / PowerShell,执行:
wsl --install -d Ubuntu
执行后按提示重启。首次启动 Ubuntu 会让你创建 Linux 用户名与密码(密码输入不回显属于正常现象)。
安装完成后,你可以用以下命令确认版本:
wsl -l -v
如果某个发行版不是 2,可以切换:
wsl --set-version Ubuntu 2
很多人装完发现 Ubuntu 默认占用系统盘。迁移的通用流程是“导出 -> 注销 -> 导入”。示例(把 Ubuntu 迁移到 D:\WSL\Ubuntu):
1) 先关闭 WSL:
wsl --shutdown
2) 导出到一个 tar 文件:
wsl --export Ubuntu D:\WSL\ubuntu.tar
3) 注销原发行版:
wsl --unregister Ubuntu
4) 导入到新位置:
wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu.tar --version 2
5) 设置默认登录用户(把 yourname 替换为你的 Linux 用户名):
ubuntu config --default-user yourname
1) 在 Linux 里访问 Windows 盘符:
cd /mnt/c(C 盘),cd /mnt/d(D 盘)等。
2) 在 Windows 资源管理器里打开 Linux 文件:
在 WSL 终端内进入目标目录后执行:
explorer.exe .
问题 A:DNS 解析异常 / 时好时坏
优先更新到较新的 WSL 版本并重启 WSL:
wsl --update
wsl --shutdown
问题 B:Windows 访问 WSL 服务端口失败
WSL2 里起了服务,建议监听 0.0.0.0 而不是 127.0.0.1:
python -m http.server 8000 --bind 0.0.0.0
问题 C:代理导致 Git / 包管理器访问异常
建议把 Windows 代理设置与 WSL 内环境变量区分开;按你的代理软件端口调整:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
查看发行版与版本:
wsl -l -v
更新 WSL:
wsl --update
关闭并重启 WSL:
wsl --shutdown
进入某个发行版:
wsl -d Ubuntu
查看 WSL 状态:
wsl --status
导出备份:
wsl --export Ubuntu D:\WSL\ubuntu-backup.tar
把 Ubuntu 设为默认配置文件、设置常用启动路径;代码编辑建议配合 VS Code Remote WSL。
VS Code WSL 参考:https://code.visualstudio.com/docs/remote/wsl
按本文把“安装、迁移、互通、排错”几个关键环节处理好,WSL2 就会从尝鲜变成长期生产力。