`hostname -i`地址与`ifconfig`地址不同

时间:2016-08-01 14:45:40

标签: bash connection ip-address archlinux hostname

解析我的本地主机名(由hostname返回的主机名)不会产生正确的IP地址。为什么会这样,我该如何解决?

$ hostname -i
10.21.16.206

$ ping 10.21.16.206
PING 10.21.16.206 (10.21.16.206) 56(84) bytes of data.
From 10.21.16.159 icmp_seq=1 Destination Host Unreachable

$ ifconfig
(...)
inet 10.21.16.159  netmask 255.255.252.0  broadcast 10.21.19.255
(...)

10.21.16.206!= 10.21.16.159

$ host 10.21.16.159
 Host 159.16.21.10.in-addr.arpa. not found: 3(NXDOMAIN)

$ host 10.21.16.206
 206.16.21.10.in-addr.arpa domain name pointer lxka-czc1166cxw.united.domain.

$ resolveip 10.21.16.159
Host name of 10.21.16.159 is lxka-czc1166cxw

$ resolveip 10.21.16.206
Host name of 10.21.16.206 is lxka-czc1166cxw.united.domain

非常感谢帮助!

编辑:

$ host $(hostname)
lxka-czc1166cxw.united.domain has address 10.21.16.206

2 个答案:

答案 0 :(得分:0)

hostname -i依赖于DNS解析来返回给定主机名的IP地址。您的/ etc / hosts或dns解析程序将该主机名返回到错误的IP地址。

答案 1 :(得分:0)

来自主机名的手册页:

  

选项-i, - ip-address

     

显示主机名的网络地址。请注意,仅当可以解析主机名时,此方法才有效。 避免使用此选项;

使用主机名--all-ip-addresses 或 要使用主机名-I 选项而不是它。