有關WSL2的安裝及其代理設置
一直都裝着雙系統,需要Linux環境的時候也就進到Arch中,不需要的時候就去到Win10。但雙系統是多有不便啊,不能同時享受Windows對外設的完美適配以及豐富穩定的軟件和Linux環境。於是最近又重新折騰起了WSL。但花費我最多時間的就是WSL2的網絡代理了。
安裝WSL2
首先需要最新的Win10系統,並更新到最新吧!(2333333)(可以考慮開啟開發者選項)
然后去設置-應用-可選功能-更多windows功能開啟適用於linux的windows子系統和虛擬機平台,並等待安裝完畢、重啟。(注意,不安裝虛擬機平台的化只能啟用WSL1,因為WSL2是基於虛擬機的。)
重啟完畢后,在win10商店里搜索linux,會出現Ubuntu,Kali等常見發行版,選一個自己喜歡的安裝吧。(其實這一步還沒有正式把Linux子系統安裝到windows里)
以Ubuntu為例,在windows全局搜索欄中搜索Ubuntu,或者在cmd中輸入Ubuntu並回車,就會自動安裝。待安裝完畢就可以按照提示輸入用戶名和密碼。(動手安裝過Arch的用戶應該會很熟悉)之后子系統就會自動進入c盤的用戶目錄下了。
但是現在還不知道安裝的是WSL2還是1。為了確認,新開一個cmd窗口輸入:
wsl -l -v
輸出內容就是子系統發行版分別對應的WSL版本。若要修改為WSL2,以Ubuntu為例:
wsl --set-version Ubuntu 2
若要以后默認你為WSL2,則輸入:
wsl --set-default-version 2
配置WSL2
其實配置WSL和配置普通發行版機會沒有什么區別,更新下系統里的包,安裝下自己所需要的工具包就好了。
我遇到的主要問題在代理的配置上。
配置WSL2的代理
在國內使用Github的話,總是遇到許許多多的問題,這往往需要通過代理來提升代碼管理的體驗。我主要聊一聊git相關的代理設置吧。
如果是給Git設置全局代理,直接百度就可以了。但我覺得這個非常不方便,因為有時候不一定會使用GitHub(比如用gitee的話,訪問反而會變慢)。
所以我的方案是,在ZSH的配置文件中設置一個別名proxy,這樣就可以按需使用了。
准備
首先,要在你windows中的代理軟件中開啟允許LAN連接或允許來自互聯網的連接的選項。因為WSL和VMware(或者Virtualbox)不一樣。WSL默認只支持NAT模式(默認不啟用橋接模式,具體區別可以百度),也就是相當於在Windows用虛擬網卡又做了一次NAT(又路由了一次,或者說又分配了一次ip地址,也就是WSL的位置是“內網中的內網”)。也就是說,WSL2無法使用127.0.0.1這個地址(Localhost)來代理,那應該使用哪個ip地址呢?
不是在wsl中通過ifconfig獲得的ip地址哦,那個是wsl的ip地址。(我們所需要監聽的ip地址和端口是在windows中的,所以要在windows中通過'ipconfig'來查看。)打開cmd:
ifconfig
找到vEthernet (WSL),這一項里的ip地址就是對於WSL來說的windows的ip地址。
在zsh配置文件中進行配置
在wsl中使用cd命令,來到默認用戶目錄,
vim .zshrc
在這個配置文件中添加一個新的別名proxy:(ip地址和端口,按照剛剛在cmd中獲得的以及在代理軟件中的來)
alias proxy='http_proxy=http://127.0.0.1:1080 https_proxy=http://127.0.0.1:1080 '
使用測試
然后輸入zsh來重啟zsh(這不廢話嘛!)需要代理的時候,就在git前面加上proxy:
proxy git clone https://github.com/xxx.git
