Clash Verge logo Clash Verge開源跨平台代理客戶端

進階技巧

讓 WSL2 與 Docker 走 Clash Verge 代理

釋出於 · 更新於 · 2 分鐘讀完

Windows 上開著代理,WSL2 裡 curl 照樣超時——這不是 bug。WSL2 有獨立的虛擬網路,裡面的 127.0.0.1 指向它自己,不是宿主機。

WSL2 透過虛擬網絡卡訪問宿主機,得走宿主機的區域網 IP
WSL2 透過虛擬網絡卡訪問宿主機,得走宿主機的區域網 IP

先放行區域網

「設定 → 區域網連線」開啟允許區域網,否則核心只監聽 127.0.0.1,WSL 連不上。Windows 防火牆彈窗記得選允許,細節見區域網共享代理

合作推薦訂閱連結從哪來?本站合作機場註冊即送 1GB 香港高速體驗流量,可直接一鍵匯入。取得高速節點

在 WSL 裡指向宿主機

export hostip=$(ip route show | grep -i default | awk '{print $3}')
export http_proxy="http://$hostip:7897"
export https_proxy="http://$hostip:7897"

宿主機 IP 每次重啟 WSL 都可能變,所以用命令取而不是寫死。把這幾行放進 ~/.bashrc 就不用每次敲。埠以你實際的混合埠為準,改過埠的見埠衝突

映象網路模式更省事

較新的 Windows 11 上 WSL 支援映象網路。在 %USERPROFILE%\.wslconfig 裡寫:

[wsl2]
networkingMode=mirrored

wsl --shutdown 重啟後,WSL 裡可以直接用 127.0.0.1:7897,和宿主機共用網路棧。Windows 10 沒有這個模式,只能用上面那套。

Docker

容器裡訪問宿主機用 host.docker.internal。構建映象時代理要單獨傳,容器執行時的環境變數不會自動帶進構建階段:

docker build --build-arg http_proxy=http://host.docker.internal:7897 .
說明

開了 TUN 也不一定能接管 WSL2 的流量,虛擬網絡卡的路由歸 Hyper-V 管。要確保走代理,老老實實設環境變數最可靠。

還沒有安裝 Clash Verge?

Windows 64 位安裝包 · v2.5.1 · 免費開源

下載 v2.5.1