设想:
- 尝试解析域“puppet.mydomain.com”中名为“puppet”的主机
- 如果 resolv.conf 文件满足以下条件,则解析成功不是包括“localdomain”的搜索指令和仅有的域名‘mydomain.com’。
Resolv.conf 工作:
nameserver 1.2.3.4
search mydomain.com
Resolv.conf 失败:
nameserver 1.2.3.4
search localdomain mydomain.com
- 系统是多宿主的
- 两个接口在 /etc/network/interfaces 中都有“domain-name mydomain.com”和“domain-search mydomain.com”指令。
附加域名解析为何会失败?难道不应该尝试解析所有列出的域名吗?
我需要配置什么来防止 localdomain 被添加到 resolv.conf 文件中?
答案1
我需要配置什么以防止
localdomain
被添加到 resolv.conf 文件中?
首先确保 resolvconf 包已安装,并且 /etc/resolv.conf 是 的符号链接../run/resolvconf/resolv.conf
。
其次确保/etc/resolvconf/resolv.conf.d/ 中的任何文件中都没有domain
或行。search
第三,找出它的localdomain
来源。如果您的接口是通过 DHCP 配置的,那么它可能是由 DHCP 服务器发送的。然后修复 DHCP 服务器配置。如果涉及 NetworkManager,请使用连接编辑器确保它localdomain
不在任何活动连接的选项卡Additional search domains
上的字段中IPv4 Settings
。
答案2
我有一个类似的问题,其中没有点的解析尝试解析为 localdomain,而我不想要它。根据文件注释,localdomain 被添加到 Ubuntu 18.04 上的符号链接 /etc/resolv.conf 文件中,该文件由 systemd-resolved 管理。
我找到了一些关于如何设置搜索域的信息,但它并没有解释这个特定域的存在,我猜测它是某种默认的。
可以像这样设置搜索域:
sudo systemd-resolve --set-domain=local --set-domain=prod.ldap --interface=enxxxxxxxxx
如果有人能解释 localdomain 始终存在的位置和原因,我们将不胜感激。上述命令可用于设置每个接口的搜索域,这似乎是一个很好的解决方法 - 但在重新启动后它无法继续存在。
设置搜索域的另一种方法是使用隐藏的网络管理器 GUI,从终端运行:
nm-connection-editor
您可以在那里设置搜索域,这些域将附加到 localdmain,而不是替换它。我希望这对任何人都有帮助。