Ubuntu 20.04工作站resolv.conf修改不持久导致网络异常求助
Ubuntu 20.04工作站resolv.conf修改不持久导致网络异常求助
兄弟,我太懂你这头疼的状况了——手动改完/etc/resolv.conf能临时恢复网络,但没过多久就被自动覆盖,连安装软件都搞不了,确实闹心。结合你给出的ls -l结果(显示/etc/resolv.conf是普通文件而非默认的软链接),咱们一步步来解决:
先搞懂根源
Ubuntu 20.04默认是用systemd-resolved或者NetworkManager(桌面版常用)自动管理DNS配置的,正常情况下/etc/resolv.conf是个软链接,指向这些服务维护的动态配置文件。你之前手动修改并把它变成了普通文件,导致服务会定期覆盖你的手动修改,这就是问题所在。
解决方案步骤
第一步:备份当前配置(以防万一)
先把现在的resolv.conf备份一份,避免操作失误搞砸:
sudo cp /etc/resolv.conf /etc/resolv.conf.bak
第二步:恢复默认的软链接
把普通文件改回默认的软链接,让系统服务能正常维护DNS配置:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
注:如果你的系统是用NetworkManager主导网络管理,也可以尝试链接到
/var/run/NetworkManager/resolv.conf,不过先优先用上面的systemd-resolved默认链接。
第三步:配置稳定的DNS服务器
接下来要通过系统的配置文件来设置DNS,而不是直接改resolv.conf,这样修改才会持久:
如果你用systemd-resolved管理DNS(服务器版或手动禁用NetworkManager的情况)
- 编辑
systemd-resolved的配置文件:
sudo vim /etc/systemd/resolved.conf
- 找到
DNS=这一行,去掉前面的注释(#),改成你需要的DNS服务器列表,注意把127.0.0.53放最前面(这是systemd-resolved的本地stub resolver):
DNS=127.0.0.53 8.8.8.8 1.1.1.1
- 重启
systemd-resolved服务让配置生效:
sudo systemctl restart systemd-resolved
如果你用NetworkManager管理DNS(桌面版默认情况)
- 打开系统设置里的「网络」选项,找到你正在使用的有线/无线连接,点击齿轮图标进入编辑界面;
- 切换到「IPv4设置」标签,在「DNS服务器」输入框里填入:
127.0.0.53,8.8.8.8,1.1.1.1; - 点击「保存」,然后重启NetworkManager服务:
sudo systemctl restart NetworkManager
第四步:验证配置是否生效
执行下面的命令检查当前DNS配置是否正确:
cat /etc/resolv.conf
你应该能看到包含127.0.0.53、8.8.8.8、1.1.1.1的nameserver条目,而且后续不会再被自动覆盖了。
备注:内容来源于stack exchange,提问作者Mihira Kasun
相关产品推荐
相关产品推荐

