【发布时间】:2012-06-21 08:49:05
【问题描述】:
我在我公司的 VPN 上,注意到 nslookup 和 host 返回了我们服务器的公共 IP 地址,而 resolveip 和 curl(以及我的浏览器)返回了正确的内部地址。为什么不同的 Unix 程序会以不同的方式解析相同的主机名?
【问题讨论】:
我在我公司的 VPN 上,注意到 nslookup 和 host 返回了我们服务器的公共 IP 地址,而 resolveip 和 curl(以及我的浏览器)返回了正确的内部地址。为什么不同的 Unix 程序会以不同的方式解析相同的主机名?
【问题讨论】:
nslookup、dig 和 host 是直接查询 DNS 的客户端。 getent 实用程序、curl 和大多数应用程序(可能包括您正在谈论的这个 resolveip,虽然我不熟悉它)是 C 库地址解析服务的客户端。 C 库的地址解析服务使用/etc/nsswitch.conf 配置,默认情况下咨询/etc/hosts,如果在/etc/hosts 中找不到答案,则咨询DNS。它也可以配置为根本不咨询 DNS(或其他一些服务)。
在您的情况下,您可能在/etc/hosts 中有正确的内部地址。
【讨论】: