之前用wsl2的时候,一切都很正常,没有出现过无法访问外网的问题,但是最近重装系统之后,发现wsl2竟然无法访问外网了,但是可以ping通主机。在网上找了很多办法,都没有什么卵用。最后在不屑努力之下,终于解决了。
问题重现
在使用sudo aptitude update时,一直无法连接
解决办法
找到 /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'