自从我通过 VPN 服务安装客户端后,如果不使用 VPN 连接,我就无法使用互联网。我发现这是因为/etc/resolv.conf
在断开 VPN 会话后填充了错误的名称服务器。
而不是nameserver 192.168.8.1
和nameserver <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=default
为dns=192.168.8.1
和dns=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
.