由于公司gitlab搬到了vpn内,虽然Windows运行了Vpn软件,并在对应的VPN网卡上设置了域DNS,但是WSL走的子系统单独的DNS,所以虽然能ping通gitlab所在服务器IP,但是无法解析gitlab对应的域名。

设置WSL子系统DNS

1. 启动WSL,进入目录,创建wsl.conf
bash
cd ~/../../etc
sudo vim wsl.conf
sudo touch wsl.conf
2. 将这些行添加到wsl.conf中
[network]
generateResolvConf=false
3. 退出WSL,关闭WSL
exit
wsl --shutdown

此时,由于有了wsl.conf,run/resolvconf应该不再存在,并且将不再被创建

4. 删除现有的符号链接文件
cd ~/../../etc
sudo rm resolv.conf
5. 创建一个新的resolv.conf
sudo vim resolv.conf
sudo touch resolv.conf
将自己的DNS,添加到resolv.conf
nameserver 8.8.8.8 // 用您喜欢的功能名称服务器替换8.8.8.8。
重启WSL
exit
wsl --shutdown
再次启动WSL
bash

此时WSL解析内网域名就OK了

参考

https://github.com/microsoft/WSL/issues/5256#issuecomment-666545999