WSL 2 配置代理

在 Windows 上設(shè)置好代理,連上了谷歌開開心心,但是 WSL 2 不能共享 Windows 的代理策略,如果在 WSL 上再裝一個代理軟件那可太麻煩了,所以得想想辦法。

其實辦法還挺簡單的,可能有的同學(xué)不知道,在一個局域網(wǎng)下如果有一臺機(jī)器配置好了代理,那么這個代理是可以共享給這個局域網(wǎng)下的其他設(shè)備的,比較類似軟路由哈!

具體方法如下:
Windows 端:
這里以 Clash 為例,打開 Allow LAN 選項,如下圖所示。如果你使用其他軟件,那可能是叫「網(wǎng)關(guān)模式」、「允許來自局域網(wǎng)的鏈接」或者其它的什么,都是一個東西,打開就好了,注意打開這個選項后你的電腦就可以代理整個局域網(wǎng)內(nèi)的機(jī)器了,雖然其他的機(jī)器還需要額外的配置,但也還是注意安全。


image.png

對于 Clash 來說,這個選項是一次性的,下次開機(jī)它就關(guān)了,不過可以在配置文件里改,通常文件的開頭就是。如下圖,改成 true 就行。

開啟這個選項后,仔細(xì)找找,你會找到一個 IP 地址和一個端口號,IP 其實就是本機(jī) IP 啦,這兩個數(shù)一會有用。

Clash 這個端口 http 和 socks 通用

注意如果后文配置后沒有效果,那可能是 Windows 防火墻的鍋,快去配置防火墻放行 Clash

WSL 2 端:
說是 WSL 2,其實其他的手機(jī)電腦都能連上,就在網(wǎng)絡(luò)設(shè)置或者 WiFi 設(shè)置那有個配置代理,把上面得到的 IP 和端口填上就行。

下面就說說在 WSL 2 下怎么操作吧!

## 獲取主機(jī) IP
## 主機(jī) IP 保存在 /etc/resolv.conf 中
export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')

Q: 以上似乎會定位到默認(rèn)網(wǎng)關(guān) 192.168.3.1
A: 切換到 WSL2

export https_proxy="http://${hostip}:7890";
export http_proxy="http://${hostip}:7890";

注意修改成你的端口

如果是 socket5 協(xié)議的話

export http_proxy="socks5://${hostip}:7890"
export https_proxy="socks5://${hostip}:7890"

如果端口一樣就可以合并成一句話,http 的同理

export all_proxy="socks5://${hostip}:7890"

使用 curl 即可驗證是否代理成功,如下有返回值說明成功

?  ~curl google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 Moved</TITLE></HEAD><BODY><H1>301 Moved</H1>The document has moved<A >here</A>.</BODY></HTML>

可以將上面命令選擇你需要的添加到 .bashrc ,這樣會讓代理一直開啟。
使用 zsh 應(yīng)該保存到 ~/.zshrc

更新配置

source ~/.zshrc

或者添加如下,需要代理的時候輸入 setss 即可設(shè)置代理,取消代理就 unsetss ,或者新開一個窗口。
下面第二條的長命令你好像得根據(jù)情況刪掉一部分。

export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
alias setss='export https_proxy="http://${hostip}:7890";export http_proxy="http://${hostip}:7890";export all_proxy="socks5://${hostip}:7890";'
alias unsetss='unset all_proxy'

如下是我在 ~/.zshrc 中添加的配置文件

export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
alias setss='export all_proxy="socks5://${hostip}:7890";'
alias unsetss='unset all_proxy'

驗證:

?  ~setss
?  ~curl google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 Moved</TITLE></HEAD><BODY><H1>301 Moved</H1>The document has moved<A >here</A>.</BODY></HTML>?  ~cedar unsetss?  ~cedar curl google.comcurl: (28) Failed to connect to google.com port 80: Connection timed out

|

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容