这篇文章记录我在 Windows 11 上从零安装 WSL2(Ubuntu) 的完整流程,包括:
- 安装 WSL + 发行版
- 更新 WSL 组件/内核版本
- 在 WSL2(NAT)下把代理配置成“可持久化”
- 更新 Ubuntu 系统
- 常用 WSL 命令速查
说明:WSL2 默认是 NAT 网络,WSL 里不会自动使用 Windows 上的
127.0.0.1代理(有时还会提示“localhost 代理未镜像到 WSL”)。要在 WSL 内稳定使用代理,需要显式指向 Windows 宿主机在 WSL 虚拟网络中的地址(通常是172.xx.xx.1)。
0. 前置条件
- BIOS/UEFI 中开启 CPU 虚拟化(Intel VT-x / AMD SVM)
- Windows 任务管理器 → 性能 → CPU:确认显示 “虚拟化:已启用”
1. 安装 WSL(推荐方式)
以管理员打开 PowerShell / Windows Terminal,执行:
wsl --install- 默认会安装 Ubuntu
- 执行后按提示 重启 Windows
首次启动 Ubuntu 后会让你创建 Linux 用户名/密码。
2. 查看与切换 WSL 版本(WSL1 / WSL2)
查看已安装发行版以及对应 WSL 版本:
wsl -l -v把某个发行版切换到 WSL2(示例:Ubuntu):
wsl --set-version Ubuntu 2设置默认使用 WSL2(以后新装发行版默认是 2):
wsl --set-default-version 23. 更新 WSL(Windows 侧)
更新 WSL 组件/内核(建议装完就跑一次):
wsl --update更新后让所有 WSL 实例退出并重启(相当于重启 WSL 虚拟机):
wsl --shutdown查看当前 WSL 版本信息:
wsl --version4. 配置代理(WSL2 NAT 下的正确做法)
4.1 为什么需要显式配置代理?
WSL2 默认是 NAT,WSL 里的 127.0.0.1 是 WSL 自己,不是 Windows。
如果你的代理在 Windows 上监听 127.0.0.1:10808,WSL 里直接用 127.0.0.1 是访问不到的。稳定方案是:让 WSL 指向 Windows 宿主机在虚拟网络中的地址(通常是默认网关)。
4.2 获取 Windows 在 WSL 视角的地址(自动)
在 WSL(Ubuntu)里执行:
ip route | grep default输出类似:
default via 172.24.240.1 dev eth0其中 172.24.240.1 就是 Windows 宿主机在 WSL 虚拟网络里的地址。
4.3 代理临时生效(当前终端会话)
假设你的代理软件“混合端口”为 10808(HTTP/SOCKS5 都支持),在 WSL 里执行(把 IP 换成你上一步查到的网关):
export http_proxy="http://172.24.240.1:10808"export https_proxy="http://172.24.240.1:10808"export all_proxy="socks5h://172.24.240.1:10808"export no_proxy="localhost,127.0.0.1,::1"测试:
curl -I https://www.google.com4.4 代理持久化(推荐:自动适配宿主机 IP 变化)
思路是:每次打开 shell 都自动读取默认网关 IP,然后拼出代理环境变量。
cat > ~/.wsl-proxy.sh <<'EOF'#!/usr/bin/env bashWIN_IP=$(ip route | awk '/default/ {print $3; exit}')PORT=10808
export http_proxy="http://${WIN_IP}:${PORT}"export https_proxy="http://${WIN_IP}:${PORT}"export all_proxy="socks5h://${WIN_IP}:${PORT}"export no_proxy="localhost,127.0.0.1,::1"EOF
chmod +x ~/.wsl-proxy.shgrep -q "wsl-proxy.sh" ~/.bashrc || echo 'source ~/.wsl-proxy.sh' >> ~/.bashrcsource ~/.bashrc5. 更新 Ubuntu 系统(WSL 内)
sudo apt updatesudo apt upgrade -y6. 常用 WSL 命令速查(Windows 侧)
wsl -l -vwsl -d Ubuntuwsl --shutdownwsl --terminate Ubuntuwsl --updatewsl --versionwsl --set-default-version 2wsl --export Ubuntu D:\\backup\\ubuntu.tarwsl --import Ubuntu D:\\WSL\\Ubuntu D:\\backup\\ubuntu.tar --version 2wsl --unregister Ubuntu7. 小结
- WSL2 默认 NAT:WSL 内不会自动用 Windows 的
127.0.0.1代理 - 用 “WSL 默认网关(宿主机地址)+ 代理端口” 显式配置最稳
- 用脚本自动取网关 IP,并写入
.bashrc,可以长期免维护 - 安装后建议执行:
wsl --update、sudo apt update && sudo apt upgrade -y