使用网络管理器和 dnsmasq。
当我在工作时,我有一个静态配置了 IP、dns 服务器和域搜索的 wifi 连接。
当我连接时,resolv.conf
同时有服务器和域搜索,以及dnsmasq
127.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 的信息。