Networking
為什麼主機名和 ping 報告的網路地址之間存在差異?
我已經嘗試過
hostname
在ping
集群機器中使用不同的輸出。我想知道兩者有什麼區別?例如,在同一台機器上,hostname
輸出node4.XXX
和ping -c 1 $(hostname)
輸出
pc333.XXX
。
該
hostname
命令從系統本地主機名配置中輸出系統的主機名(可以是 /etc/hostname 或 /proc/sys/kernel/hostname 或其他取決於作業系統)。該命令
ping -c 1 <hostname>
將通過指定的 libc 解析器(可能是也可能不是 DNS。例如,/etc/hosts 不是 DNS)<hostname>
執行查找,然後對返回的 IP 地址執行反向 DNS 查找並報告該名稱在 ping 命令的輸出中。作為一個具體範例,假設本地系統主機名是fred,如
/etc/hostname
. 該hostname
命令將返回**‘fred’**。該命令ping -c 1 fred
將執行 DNS 查找fred
(無論是完全限定的fred
還是fred
完全限定的,例如fred.domain.com
預設域是domain.com
)。假設 DNS 返回 IP 地址x.x.x.x
。ping
然後將執行 IP 地址的反向 DNS 查找x.x.x.x
,如果沒有返回名稱ping
將輸出 IP 地址x.x.x.x
,否則ping
將輸出從反向查找返回的任何名稱,可能是不同的名稱,例如ethel.domain.com
.