如何在 Linux 上使用 /etc/resolv.conf 解析多个域?

如何在 Linux 上使用 /etc/resolv.conf 解析多个域?

我正在运行 Ubuntu 12.04 并尝试 ping 以下系统:

  • system0.oldcompany.com
  • system1.fing.oldcompany.com
  • system2.newcompany.com
  • system3.thing.newcompany.com

我的 resolv.conf

# internal dns servers
nameserver 1.1.1.151
nameserver 1.1.1.152
search oldcompany.com fing.oldcompany.com newcompany.com thing.newcompany.com
#domain thing.newcompany.com
domain oldcompany.com
#domain fing.oldcompany.com
#domain newcompany.com
#nameserver 8.8.8.8 #commented out due to other issues

如果我取消注释所有这些行,我将无法 ping 系统 0 或系统 1。如何设置才能仅使用其域名 ping 所有 4 个系统?在 Windows 中,它可以解析每个系统。

ping system0
ping: unknown host system0
ping system1
ping: unknown host system1

我一直在尝试阅读手册页在 resolv.conf 上,但我仍然无法解决此问题。我公司没有人使用 Linux,所以很遗憾,我只能靠自己了。

编辑:更新搜索,现在只有 1 行,现在我可以 ping system0,但仍然无法 ping system1。但是,我可以 ping system1.fing,因为它位于 oldcompany 域中。

答案1

在关注了@webmarc 和@dan-hook 之后,它才开始工作,直到我删除了那domain行,我仍然不完全理解。

根据这个答案,则domain成为第一个search字符串。我发现不用domain字符串会更简单。

脚步:

  1. 所有search域名都放在一行上
  2. domain删除了多行
  3. 新公司域名置于旧公司名称之前

这是我的新产品/etc/resolv.conf,它运行完美。

# internal dns servers
nameserver 1.1.1.151
nameserver 1.1.1.152
search newcompany.com thing.newcompany.com oldcompany.com fing.oldcompany.com

另外如果你的/etc/resolv.conf意愿被覆盖那么修改/etc/network/interfaces

auto eth0
iface eth0 inet static
    address 10.59.2.50
    netmask 255.255.255.0
    gateway 10.59.2.1
    dns-nameservers 1.1.1.151 1.1.1.152
    dns-search newcompany.com thing.newcompany.com oldcompany.com fing.oldcompany.com

如果新公司有新的 DNS 服务器 IP,请确保该 IP 也位于旧公司的 IP 之前,以便首先查询新的 DNS 服务器。

答案2

您的文件存在一些问题:

  1. 应该只有一条搜索行,search domain.com domain2.com domain3.com最多 6 个域。
  2. 应该仅有一行域名,且仅指定 1 个域名。

修复这些问题后,看看是否仍然有问题,如果是,则更新您的问题。

您可以找到有关此文件所需格式的信息在手册页中

答案3

将搜索行放在名称服务器行后面。

相关内容