博客 / 詳情

返回

wsl中遵循win的代理設置

1.在用户文件夾 %USERPROFILE% 新建一個 .wslconfig 文件,寫入一下內容:

[experimental]
autoMemoryReclaim=gradual  # gradual  | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

設置完執行 wsl --shutdown 重啓一下wsl就可以了

2.如果wsl安裝xfce之類的桌面,桌面打開的Terminal等也想要使用代理,則可以修改 ~/.bashrc 文件,在末尾加入如下內容:

# WSL 代理自動繼承(如果 autoProxy=true + mirrored 有效,但圖形 session 可能不繼承,這裏手動補)
if [ -z "$http_proxy" ] && [ -z "$WSL_DISTRO_NAME" ]; then
    # 嘗試從 Windows 拉取(mirrored 模式下 wsl.exe env 可見)
    export PATH="$PATH:/mnt/c/Windows/System32"
    # proxy_lines=$(wsl.exe -- env | grep -i proxy | tr -d '\r')
    proxy_lines=$(wsl.exe -- env | grep -i proxy 2>/dev/null)
    echo "$proxy_lines"

    if [ -n "$proxy_lines" ]; then
        echo "找到代理設置,正在加載..."
        eval "$(printf '%s\n' "$proxy_lines" | sed 's/^/export /' | sed 's/=\(.*\)$/="\1"/' | sed 's/\r$//')"
        echo "代理加載完成:http_proxy = ${http_proxy:-未設置}"
    else
        echo "Windows 環境變量中未找到任何 proxy 設置"
    fi
fi

設置成功後效果如下:

image

真希望國內開發不需要代理的那天能早日到來

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.