我的台式计算机配置了静态 IP 地址:
然而,/etc/resolv.conf不断被覆盖:
nameserver 127.0.0.1
search localdomain example.com
这似乎会定期发生或在我跑步时发生sudo resolvconf -u
。
我真的很想从 dns 搜索域列表中删除它。我以前有它,但现在它造成了问题。我似乎无法将它删除。我不知道它来自哪里,也不知道为什么它总是被放回去。据我所知,在我的example.com
dns 搜索域列表中找不到任何指向example.com
/ETC目录。
将此搜索域放入我的解析配置文件文件以及如何阻止它这样做?
答案1
对于 ipv4,@stalet 建议的编辑/etc/dhcp/dhclient.conf
应该有效;还可以尝试从 中删除domain-search
和。验证 中的设置是否有效。domain-name
request
/var/lib/NetworkManager/dhclient-[connection-uuid]-[ifname].lease
但是,不需要的搜索域可能来自 ipv6 dhcp 服务器,正如我在 16.04/Xenial 上发现的那样。如果 NetworkManager 的dhclient -6
命令成功执行并且 dhcp 服务器设置了搜索域,NetworkManager 会将这些搜索域合并到 ipv4 搜索域列表中。
逐个连接修复此问题的简单方法是将连接的 IPv6 设置配置为“方法:自动,仅地址”甚至“方法:忽略”。
为每个连接设置这个可能会很烦人,我费了好大劲也没找到全局修复的方法。添加supersede dhcp6.domain-search
和删除request dhcp6.domain-search
似乎/etc/dhcp/dhclient.conf
没有帮助。此外,将该文件复制到会/etc/dhcp/dhclient6.conf
导致 NetworkManager 正确地将其模板化为/var/lib/NetworkManager/dhclient6-[ifname].conf
,但 NetworkManager 坚持添加also request dhcp6.domain-search;
,并且仍然添加了不需要的搜索域。
答案2
该search
内容由 dhcp 提供,可以/etc/dhcp/dhclient.conf
通过用空值取代这些变量来覆盖。
在底部添加以下几行/etc/dhcp/dhclient.conf
supersede domain-name "";
supersede domain-search "";
supersede search "";
要使更改影响您的系统,您可以重新连接到您的网络或只需重新启动网络管理器服务。
sudo service network-manager restart
答案3
我今天看到了 resolveconf 1.78ubuntu5 的更新(https://launchpad.net/ubuntu/xenial/+source/resolvconf/+changelog),引用此 Launchpad 错误,https://bugs.launchpad.net/maas/+bug/1711760。也许这个问题现在已经解决了?