告别手动设代理:让 WSL 自动继承 Windows 代理
WSL 新版实验功能一行配置搞定,再也不用每次手动 export http_proxy 了。
用 WSL 做开发的同学应该都遇到过这个烦恼:Windows 上开着代理软件,但在 WSL 终端里跑 curl、 apt、 pip 依然连不上,还得手动敲:
export http_proxy=http://127.0.0.1:7890export https_proxy=http://127.0.0.1:7890
每次打开新终端都要重来一遍,或者写进 .bashrc 又容易忘记端口改了没更新。
现在有了更优雅的解法——通过 .wslconfig 让 WSL 自动跟 Windows 同步代理。
WSL 的实验功能 networkingMode=mirrored 会让 WSL 和 Windows 共用同一套网络栈,两者拥有相同的 IP 地址。在此基础上, autoProxy=true 会让 WSL 自动读取 Windows 的系统代理设置,无需任何手动配置。
关键组合: mirrored 网络模式 + autoProxy,缺一不可。
实验功能需要较新的版本,在 PowerShell 中运行:
wsl --update --pre-release
该文件位于 Windows 用户目录,用记事本打开:
notepad "$env:USERPROFILE\.wslconfig"
[wsl2]nestedVirtualization=trueipv6=true[experimental]autoMemoryReclaim=gradualnetworkingMode=mirroreddnsTunneling=truefirewall=trueautoProxy=true
wsl --shutdownwsl
curl https://ipinfo.io
如果返回的 IP 是代理节点的 IP,说明配置成功。
networkingMode=mirrored | |
autoProxy=true | |
dnsTunneling=true | |
firewall=true | |
autoMemoryReclaim=gradual | |
nestedVirtualization=true |
networkingMode=mirrored 与某些 VPN 软件可能冲突wsl--shutdown 卡住,可用 taskkill/F/IM wsl.exe 强制终止配置生效后: 再也不需要在
.bashrc里写 export http_proxy 了,Windows 代理开着,WSL 自动跟上。
WSL 版本 ≥ 0.67.6 · 需要 pre-release 版本 · 实验性功能
autoProxy、 networkingMode=mirrored、 dnsTunneling 等网络配置项的说明与适用系统要求。.wslconfig 全局配置文件的完整参数参考。HTTP_PROXY、 HTTPS_PROXY、 NO_PROXY、 WSL_PAC_URL)。