解决wsl2 无法访问外网,但是可以ping通主机


之前用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'
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐