当需要一个 IP 地址时,hostname 命令会输出两个 IP 地址

当需要一个 IP 地址时,hostname 命令会输出两个 IP 地址
# hostname --help | grep ip
    -i, --ip-address       addresses for the host name
    -I, --all-ip-addresses all addresses for the host

根据上述,-i应该只输出一个IP地址,而-I应该输出全部。就我而言,情况恰恰相反。

# hostname -i
127.0.1.1 123.123.123.123
# hostname -I
123.123.123.123

这是为什么?

这是我的/etc/hosts文件,以防万一:

127.0.0.1       localhost
::1     localhost       ip6-localhost   ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

127.0.1.1       tmp-1   tmp-1

123.123.123.123 tmp-1

123.123.123.123我真实的 IP v4 地址在哪里。)

答案1

hostname(1)联机帮助页完整描述了这些选项,这应该可以澄清混乱:

-i,--ip-address

显示主机名的网络地址。请注意,这仅在可以解析主机名的情况下才有效。避免使用此选项;代替使用hostname --all-ip-addresses

-I,--all-ip-addresses

显示主机的所有网络地址。此选项枚举所有网络接口上的所有配置地址。环回接口和 IPv6 链路本地地址被省略。与 option 相反-i,此选项不依赖于名称解析。不要对输出的顺序做出任何假设。

(无论如何,帮助文本-i显示“地址英语”,因此可以预期那里有多个地址。)

相关内容