我的理解是,unixping
和host
命令应该在给定相同域的情况下生成相同的 IP 地址。如果您查看这两个命令:
$ ping api.dev.myserver.com
PING api.dev.myserver.com (10.11.12.15): 56 data bytes
64 bytes from 10.11.12.15: icmp_seq=0 ttl=64 time=0.303 ms
(...)
$ host api.dev.myserver.com
api.dev.myserver.com has address 69.68.153.135
第一个是我的本地开发虚拟机,显示了我在 /etc/hosts 文件中指定的理想 IP。第二个显示了实时框,绕过了我的 /etc/hosts 文件。我已刷新 DNS 缓存以验证这不会导致差异。
答案1
正如您所发现的,host 命令(和 nslookup 命令)忽略 /etc/hosts。它们针对的是名称服务器(DNS),而不是本地文件。
非常确定getent ahosts (host)
也会使用 /etc/hosts,就像 ping 一样。
答案2
Host 是一个 DNS 查询应用程序,不会查看 hosts 文件。请参阅http://linux.die.net/man/1/host