host 命令解析 IP 地址但给出主机未找到错误

host 命令解析 IP 地址但给出主机未找到错误

我在使用 EC2 实例时遇到了问题,其中应用程序死亡了,因为它无法解析同一 VPC 中的其他系统。

当我host ip-10.123.22.100在服务器上运行命令时,我得到了此响应。

ip-10.123.22.100.corp.domain.com has address 10.123.22.100
Host ip-10.123.22.100.corp.domain.com not found: 3(NXDOMAIN)
Host ip-10.123.22.100.corp.domain.com not found: 3(NXDOMAIN)

当我这样做时ping 10.123.22.100,我得到了回应。

我怀疑 DNS 系统出了问题,但我无法弄清楚是什么原因造成的。

您能给我指明正确的方向吗?

答案1

显然,这可能是因为host除了 A 和 AAAA 记录之外还查找 MX 记录。

来自host手册页:

-t 选项用于选择查询类型。类型可以是任何可识别的查询类型:CNAME、NS、SOA、SIG、KEY、AXFR 等。当未指定查询类型时,主机会自动选择适当的查询类型。默认情况下,它会查找 A、AAAA 和 MX 记录,但如果给出了 -C 选项,将查询 SOA 记录,如果名称是点分十进制 IPv4 地址或冒号分隔的 IPv6 地址,则主机将查询 PTR 记录。如果选择了 IXFR 查询类型,则可以通过在起始序列号后附加等号来指定起始序列号(例如 -t IXFR=12345678)。

或者更简单地说:

主机命令请求三条记录:

  • 一个记录
  • AAAA 记录
  • MX 记录

如果没有 AAAA 记录,并且未启用 IPv6 NoError Response,您将看到其中一条错误行。如果没有 MX 记录,将显示第二条错误行“未找到:3(NXDOMAIN)”。


所以看起来您的主机没有关联的 MX 或 AAAA DNS 记录?

这就是为什么@fpmurphy询问 dig 命令的输出是什么,因为dig默认情况下只查找A记录:

类型表示需要什么类型的查询 - ANY、A、MX、SIG 等。类型可以是任何有效的查询类型。如果未提供类型参数,dig 将执行 A 记录查找。

相关内容