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=7890Clash 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可以看到与主机中的代理一致。
