为什么当我与工作网络断开连接时,名称服务器地址不会从 resolv.conf 中删除?

为什么当我与工作网络断开连接时,名称服务器地址不会从 resolv.conf 中删除?

使用网络管理器和 dnsmasq。

当我在工作时,我有一个静态配置了 IP、dns 服务器和域搜索的 wifi 连接。

当我连接时,resolv.conf同时有服务器和域搜索,以及dnsmasq127.0.1.1 的条目。

当我回家并连接 dhcp wifi 时,域搜索已从中删除resolv.conf,但工作 dns 服务器并未删除。结果,我的所有浏览都变得很慢。我可以手动删除该条目,但resolv.conf重建后它又回到了那里(我预料到会这样)。

我认为真正的问题是,当 NM 连接到工作 wifi 时,它应该将 dns 服务器交给 dnsmasq,而不是将其放在 resolv.conf 中,结果当我断开连接时它不会将其取出。

答案1

您写道:“当我连接时,resolv.conf 同时具有服务器和域搜索,以及 127.0.1.1 的 dnsmasq 条目。”

这是不恰当的行为。

NetworkManager 应该将名称服务器地址提供给 dnsmasq,并不是将它们提交给 resolvconf 实用程序(管理 resolv.conf)和/或将它们直接写入 /etc/resolv.conf。

Ubuntu 中的 NetworkManager 本身运行正常,至少在默认/正常情况下是这样。

您是否在使用 NetworkManager 扩展程序或第三方实用程序来配置 VPN 或类似的东西?该扩展程序或实用程序中可能存在错误,导致软件将工作名称服务器地址语句发送到 resolvconf,并且在您下班后不会将其删除。

第三方软件通常无法与 Ubuntu 正确集成,尤其是经常无法使用 resolvconf 添加和删除名称服务器信息。请阅读 /usr/share/doc/resolvconf/README.gz 以获取有关 resolvconf 的信息。

相关内容