ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

wsl中改了 /etc/resolv.conf,一重启就没了?

2026/8/13 21:23:50 拓冰建站 浏览量
wsl中改了 /etc/resolv.conf,一重启就没了?

问题:wsl中改了 /etc/resolv.conf,一重启就没了?

操作步骤

第 1 步:确认禁止 WSL 自动生成 DNS(你可能已经做过)

sudo vim /etc/wsl.conf

内容必须是(注意大小写):

[network] generateResolvConf = false

👉这一条是“告诉 WSL:你以后别碰 DNS 了”

保存退出。

第 2 步:删除旧 resolv.conf,重新创建

sudo rm -f /etc/resolv.conf sudo vim /etc/resolv.conf

写入(建议直接用公网 DNS,最稳):

nameserver 8.8.8.8 nameserver 1.1.1.1

保存。

第 3 步(关键中的关键):把 resolv.conf 锁死

这一步你之前一定没做👇

sudo chattr +i /etc/resolv.conf

解释一下这句的含义(很重要):

  • +i=immutable(不可变)

  • 即使是 root、即使是 WSL 启动脚本

  • 都不能再覆盖这个文件

这一步相当于:
👉给 DNS 文件上了“物理锁”


第 4 步:从 Windows 彻底重启 WSL

Windows PowerShell(管理员)

wsl --shutdown

然后重新打开 Ubuntu。


立刻验证

ping -c 3 google.com

ping -c 3 mirrors.tuna.tsinghua.edu.cn

正确结果应该是:

  • 不再出现Temporary failure in name resolution

  • 域名能解析到 IP

但是按照上面方法修改完重启之后发现还是没有修改成功。

解决方法:关闭科学上网,然后再按照上面方法修改,就可以了。