归纳总结一些自己在使用 WSL2 时,遇到的坑(持续更新…)
关于 Remote-WSL 的权限问题
目前 Remote-WSL 还不能支持直接使用 sudo
命令来打开文件,目前最好的办法还是通过设置文件权限来使 VSCode 打开高权限的文件。
1 | sudo chmod -R 777 FILES/ |
如果实在不放心,还是使用终端 sudo
+ Vim
之类的工具吧。
关于网络代理
由于 WSL 新的架构,使得 WSL2 不能使用本地代理 127.0.0.1
来进行设置代理。
这时候需要使用以下方法来寻找代理 IP。
直接在 WSL 中运行:
1 | ipconfig.exe | grep -n4 WSL | tail -n 1 | awk -F":" '{ print $2 }' | sed 's/^[ \r\n\t]*//;s/[ \r\n\t]*$//' |
返回的结果便是我们 win 主机的 IP。
如果以上办法失效,则采用以下手动的办法:
1 | ifconfig -a |
其中 inet 172.28.144.10
字段后部便是我们 WSL2 的 IP,那么我们便可将代理地址设置为 172.28.144.1
以 Git 设置代理为例
在以前的 WSL 中,我们设置代理的方法是:
1 | git config --global http.proxy http://127.0.0.1:1080 |
而现在,在 WSL2 中,应该设置为:
1 | git config --global http.proxy http://172.28.144.1:1080 |
此处为举例,具体的协议、地址、端口以个人为准。
关于 Hyper-V
由于我之前装的有 MUMU 模拟器,MUMU 模拟器是需要关闭 Hyper-V 的,这与 WSL2 的要求相冲突。并且我使用的是 MUMU 模拟器官方一键关闭 Hyper-V 的脚本进行关闭的,但是官方并没有给出开启的办法,所以此处记录一下。
打开编辑查看官方脚本就能看见,使用 Dism 工具关闭了相关服务,所以打开很简单,只需要在 Powershell(管理员模式)运行下列内容:
1 | dism /Online /Enable-Feature:microsoft-hyper-v-all /NoRestart |
之后提示是否重启,按 y
重新启动即可。