hostname -i
Debian 9 框上的命令给出了 2 个不同的 IP。hostname -I
命令给出了正确的 IP。
根据手册页,-i
不应使用参数。只有主机名可以解析时它才有效,这是否意味着问题出在 DNS 服务器上?
在本地机器上我无法在任何地方找到其他 IP。
答案1
我认为这里的混乱在于对开关的解释。注意:
-i, --ip-address addresses for the host name
-I, --all-ip-addresses all addresses for the host
小写字母 i (-i) 将列出所有可以使用主机名解析的地址,因此,例如,除了 DNS 解析的任何内容之外,您的 hosts 文件也会做出贡献。在某些(企业)网络中,通常在本地 LAN 上运行主机名的内部名称服务器。这些地址不必是“真实的”或正在使用的,它们只是针对该主机名的记录。
大写 i 开关(-I)将返回与主机关联的当前接口地址,该地址应与“ip 地址”命令匹配。
答案2
也许您的 /etc/hosts 文件中有两个不同的 IP,但主机名相同。
像这样:
/etc/主机名:
myhostname
在 /etc/hosts 中:
172.16.0.1 myhostname
192.168.1.1 myhostname
至少,这可以产生你所看到的效果。