Unix nslookup、host和resolveip之间的区别?

Unix nslookup、host和resolveip之间的区别?,unix,dns,Unix,Dns,我在公司的VPN上,注意到nslookup和host都返回了服务器的公共IP地址,而resolveip和curl(以及我的浏览器)返回了正确的内部地址。为什么不同的Unix程序会以不同的方式解析同一主机名?nslookup、dig和host都是直接查询DNS的客户端。getent实用程序、curl和大多数应用程序(可能包括您所说的resolveip,尽管我不太熟悉)都是C库地址解析服务的客户机。C库的地址解析服务是使用/etc/nsswitch.conf配置的,默认情况下咨询/etc/hosts

我在公司的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

中拥有正确的内部地址。主机表也可能由NIS或LDAP提供服务。