解决wsl2 无法访问外网,但是可以ping通主机
问题重现解决办法终极解决办法
之前用wsl2的时候,一切都很正常,没有出现过无法访问外网的问题,但是最近重装系统之后,发现wsl2竟然无法访问外网了,但是可以ping通主机。在网上找了很多办法,都没有什么卵用。最后在不屑努力之下,终于解决了。
问题重现
在使用sudo aptitude update时,一直无法连接 ![在这里插入图片描述](https://img-blog.csdnimg.cn/13ad673be86c42b09acc3922e3b661c0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU3NzEzMQ==,size_16,color_FFFFFF,t_70)
解决办法
找到 /etc/resolv.conf,可以看到如下内容
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.23.199.1
注意看上面那句话,意思是,这个文件是wsl自动生成的,如果要停止生成这个文件,需要将下面的配置添加到 /etc/wsl.conf下面;我还是太年轻了,当我按照上面说的那样照做之后,并且将nameserver 改为 8.8.8.8,TMD重启之后,nameserver 还是172.23.199.1,已经快崩溃了。可以看下当时我wsl.conf 和 resolv.conf 的配置:
# wsl.conf
[network]
generateResolvConf = false
# resolv.conf
nameserver 8.8.8.8
终极解决办法
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
|