Lubuntu 17.10 DNS设置失效求助:重启后网络无法连接
解决DNS配置重启后被重置、网络无法连接的问题
我之前也碰到过一模一样的糟心事——一直用的DNS配置突然失效,重启系统后直接断网,浏览器弹出"This site can't be reached",手动改/etc/resolv.conf没多久就被自动重置,删了系统自动填的DNS地址也没用,只能靠脚本手动救场。结合我踩过的坑,给你几个靠谱的解决方案:
先搞清楚是谁在篡改你的resolv.conf
首先得确定是哪个服务在自动生成/覆盖/etc/resolv.conf,执行这条命令看软链接指向:
ls -l /etc/resolv.conf
常见的指向有两种:
- 指向
/run/systemd/resolve/stub-resolv.conf:说明是systemd-resolved在管理DNS - 指向
/var/run/NetworkManager/resolv.conf:说明是NetworkManager在搞鬼
情况1:systemd-resolved导致的重置
如果是systemd-resolved在管理,按以下步骤改:
- 编辑systemd-resolved的配置文件:
sudo nano /etc/systemd/resolved.conf
把里面的参数改成你需要的配置,比如:
[Resolve] DNS=8.8.8.8 8.8.4.4 # 换成你想用的DNS地址 #FallbackDNS= #Domains= DNSSEC=no DNSOverTLS=no MulticastDNS=no LLMNR=no Cache=no-negative DNSStubListener=no # 关键:关闭Stub监听,避免生成 stub-resolv.conf #ReadEtcHosts=yes
- 重启systemd-resolved服务:
sudo systemctl restart systemd-resolved
- 重新设置resolv.conf的软链接,指向正确的配置文件:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
情况2:NetworkManager导致的重置
如果是NetworkManager在自动覆盖,有两种处理方式:
方式A:禁止NetworkManager管理DNS
编辑NetworkManager的主配置文件:
sudo nano /etc/NetworkManager/NetworkManager.conf
在[main]区块添加一行:
dns=none
然后重启NetworkManager:
sudo systemctl restart NetworkManager
之后你就可以手动编辑/etc/resolv.conf,不会再被覆盖了。
方式B:在NetworkManager连接里指定固定DNS
如果你不想完全禁用NetworkManager的DNS管理,可以针对单个连接设置固定DNS:
- 找到你的网络连接配置文件,一般在
/etc/NetworkManager/system-connections/目录下,文件名是你的连接名称(比如Wired connection 1.nmconnection) - 编辑这个文件:
sudo nano /etc/NetworkManager/system-connections/你的连接名.nmconnection
在[ipv4]区块修改以下参数:
dns=8.8.8.8;8.8.4.4; # 换成你的DNS地址,用分号分隔 ignore-auto-dns=true # 忽略自动获取的DNS
- 重启NetworkManager生效:
sudo systemctl restart NetworkManager
终极应急方案:给resolv.conf加锁
如果你暂时不想折腾服务配置,可以给/etc/resolv.conf添加不可修改属性,阻止任何程序篡改它:
sudo chattr +i /etc/resolv.conf
以后需要修改的时候,先去掉这个属性:
sudo chattr -i /etc/resolv.conf
⚠️ 注意:这个方法是应急用的,长期来看还是建议通过服务配置解决,避免后续网络管理工具出现异常。
内容的提问来源于stack exchange,提问作者Totem
相关产品推荐
相关产品推荐

