为什么主机名和 ping 报告的网络地址不同?

为什么主机名和 ping 报告的网络地址不同?

我已经尝试过hostnameping集群机器中使用不同的输出。我想知道两者有什么区别?例如,在同一台机器上,hostname输出node4.XXX

ping -c 1 $(hostname)

输出pc333.XXX

答案1

hostname命令输出主机名来自系统本地主机名配置的系统的信息(可以是 /etc/hostname 或 /proc/sys/kernel/hostname 或其他,具体取决于操作系统)。

该命令ping -c 1 <hostname>将通过<hostname>指定的 libc 解析器(可能是也可能不是 DNS。例如,/etc/hosts 不是 DNS)执行查找,然后对返回的 IP 地址执行反向 DNS 查找并报告该名称在 ping 命令的输出中。

作为一个具体的例子,假设本地系统主机名弗雷德如 中指定的/etc/hostname。该hostname命令将返回'弗雷德'。该命令ping -c 1 fred将执行 DNS 查找fred(只是fredfred完全限定,例如fred.domain.com默认域是domain.com)。假设 DNS 返回 IP 地址x.x.x.xping然后将执行 IP 地址的反向 DNS 查找x.x.x.x,如果没有返回名称,ping将输出 IP 地址x.x.x.x,否则ping将输出从反向查找返回的任何名称,这可能是不同的名称,例如ethel.domain.com.

相关内容