You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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的情况)
  1. 编辑systemd-resolved的配置文件:
sudo vim /etc/systemd/resolved.conf
  1. 找到DNS=这一行,去掉前面的注释(#),改成你需要的DNS服务器列表,注意把127.0.0.53放最前面(这是systemd-resolved的本地stub resolver):
DNS=127.0.0.53 8.8.8.8 1.1.1.1
  1. 重启systemd-resolved服务让配置生效:
sudo systemctl restart systemd-resolved
如果你用NetworkManager管理DNS(桌面版默认情况)
  1. 打开系统设置里的「网络」选项,找到你正在使用的有线/无线连接,点击齿轮图标进入编辑界面;
  2. 切换到「IPv4设置」标签,在「DNS服务器」输入框里填入:127.0.0.53,8.8.8.8,1.1.1.1;
  3. 点击「保存」,然后重启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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:43:00