Logo
Overview

Windows 11 从零安装 WSL2:更新 WSL、配置代理持久化、更新系统与常用命令

2026/01/25
约 3 分钟阅读

这篇文章记录我在 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. 前置条件

  1. BIOS/UEFI 中开启 CPU 虚拟化(Intel VT-x / AMD SVM)
  2. Windows 任务管理器 → 性能CPU:确认显示 “虚拟化:已启用”

1. 安装 WSL(推荐方式)

以管理员打开 PowerShell / Windows Terminal,执行:

Terminal window
wsl --install
  • 默认会安装 Ubuntu
  • 执行后按提示 重启 Windows

首次启动 Ubuntu 后会让你创建 Linux 用户名/密码。


2. 查看与切换 WSL 版本(WSL1 / WSL2)

查看已安装发行版以及对应 WSL 版本:

Terminal window
wsl -l -v

把某个发行版切换到 WSL2(示例:Ubuntu):

Terminal window
wsl --set-version Ubuntu 2

设置默认使用 WSL2(以后新装发行版默认是 2):

Terminal window
wsl --set-default-version 2

3. 更新 WSL(Windows 侧)

更新 WSL 组件/内核(建议装完就跑一次):

Terminal window
wsl --update

更新后让所有 WSL 实例退出并重启(相当于重启 WSL 虚拟机):

Terminal window
wsl --shutdown

查看当前 WSL 版本信息:

Terminal window
wsl --version

4. 配置代理(WSL2 NAT 下的正确做法)

4.1 为什么需要显式配置代理?

WSL2 默认是 NAT,WSL 里的 127.0.0.1WSL 自己,不是 Windows。

如果你的代理在 Windows 上监听 127.0.0.1:10808,WSL 里直接用 127.0.0.1 是访问不到的。稳定方案是:让 WSL 指向 Windows 宿主机在虚拟网络中的地址(通常是默认网关)。


4.2 获取 Windows 在 WSL 视角的地址(自动)

在 WSL(Ubuntu)里执行:

Terminal window
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 换成你上一步查到的网关):

Terminal window
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"

测试:

Terminal window
curl -I https://www.google.com

4.4 代理持久化(推荐:自动适配宿主机 IP 变化)

思路是:每次打开 shell 都自动读取默认网关 IP,然后拼出代理环境变量。

cat > ~/.wsl-proxy.sh <<'EOF'
#!/usr/bin/env bash
WIN_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.sh
grep -q "wsl-proxy.sh" ~/.bashrc || echo 'source ~/.wsl-proxy.sh' >> ~/.bashrc
source ~/.bashrc

5. 更新 Ubuntu 系统(WSL 内)

Terminal window
sudo apt update
sudo apt upgrade -y

6. 常用 WSL 命令速查(Windows 侧)

Terminal window
wsl -l -v
wsl -d Ubuntu
wsl --shutdown
wsl --terminate Ubuntu
wsl --update
wsl --version
wsl --set-default-version 2
wsl --export Ubuntu D:\\backup\\ubuntu.tar
wsl --import Ubuntu D:\\WSL\\Ubuntu D:\\backup\\ubuntu.tar --version 2
wsl --unregister Ubuntu

7. 小结

  • WSL2 默认 NAT:WSL 内不会自动用 Windows 的 127.0.0.1 代理
  • 用 “WSL 默认网关(宿主机地址)+ 代理端口” 显式配置最稳
  • 用脚本自动取网关 IP,并写入 .bashrc,可以长期免维护
  • 安装后建议执行:wsl --updatesudo apt update && sudo apt upgrade -y