Networkmanager 使用错误信息填充 resolv.conf,导致 DNS 查询失败

Networkmanager 使用错误信息填充 resolv.conf,导致 DNS 查询失败

自从我通过 VPN 服务安装客户端后,如果不使用 VPN 连接,我就无法使用互联网。我发现这是因为/etc/resolv.conf在断开 VPN 会话后填充了错误的名称服务器。

而不是nameserver 192.168.8.1nameserver <ipv6>它指向nameserver 192.168.1.1,它在网络上不存在。

我尝试添加不同的名称服务器,/etc/resolv.conf.head/etc/resolv.conf.tail没有结果。

/etc/resolv.conf即使有 root,我也无法更改。它失败了[ Error writing /etc/resolv.conf: Operation not permitted ]

运行时sudo resolvconf -u也失败并出现多个错误:

/etc/resolvconf.conf: line 8: nameserver: command not found
/etc/resolvconf.conf: line 9: nameserver: command not found
/usr/lib/resolvconf/libc: line 230: /etc/resolv.conf: Operation not permitted

我猜这是因为网络管理员使用该文件,并锁定它无法编辑。所以这让我相信网络管理器是解决这个问题的唯一方法。继续尝试编辑网络管理器配置sudo vim /etc/NetworkManager/NetworkManager.conf

更改dns=defaultdns=192.168.8.1dns=dnsmasq,重新启动sudo systemctl restart NetworkManager.service。不幸的是,它仍然填充/etc/resolv.conf到错误的配置。

我觉得我已经没有选择了。如何确保网络管理器填充resolv.conf正确的名称服务器设置?

答案1

如果分区是ext2/3/4,则设为/etc/resolv.conf不可变。这样,VPN 客户端就不会修改它。

修复/etc/resolv.conf内容,然后运行:

chattr +i /etc/resolv.conf

答案2

谢谢@罗伯托·帕斯。我首先必须删除文件保护,sudo chattr -i /etc/resolv.conf然后才能/etc/resolv.conf使用正确的配置正常保存。或者,我可以保存该文件,以免再次使用sudo chattr -i /etc/resolv.conf.

相关内容