WSL 代理配置
Published:
方法一:WSL 未处于镜像模式,设置 WSL 的环境变量。
这种情况下,打开 WSL 会提示 “wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。”
允许 7890 端口通过防火墙。CMD 执行:
netsh advfirewall firewall add rule name="Open Port 7890" dir=in action=allow protocol=TCP localport=7890
Clash for Windows - General - Allow LAN
选择开启。WSL 中设置环境变量。
临时设置:
export hostip=$(ip route show | grep -i default | awk '{print $3}') export https_proxy="http://${hostip}:7890" export http_proxy="http://${hostip}:7890"
永久设置:
打开 Shell 的配置文件(
~/.bashrc
或~/.zshrc
),在文件末尾添加以下内容:# Set proxy environment variables export hostip=$(ip route show | grep -i default | awk '{print $3}') export https_proxy="http://${hostip}:7890" export http_proxy="http://${hostip}:7890"
测试连接,显示
HTTP/1.1 200 OK...
则连接成功。curl --head --silent http://www.google.com
方法二: 将 WSL 切换至镜像模式
打开 WSL 的配置文件
%USERPROFILE%\.wslconfig
,添加以下内容:[experimental] autoMemoryReclaim=gradual networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true
在 CMD 中执行
wsl --shutdown
,重启 WSL。在 WSL 中执行:
echo $http_proxy echo $https_proxy
可以看到与主机中的代理一致。