Resolv.conf:存在“search localdomain”导致无法进行正确的 DNS 查找

Resolv.conf:存在“search localdomain”导致无法进行正确的 DNS 查找

设想:

  • 尝试解析域“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,而不是替换它。我希望这对任何人都有帮助。

相关内容