有关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