在我的站点,我们刚刚移动了一项重要服务,并在内部和外部进行了适当的 DNS 更改以使其正常运行。
当您在浏览器中打开该网站时,它运行良好。(在 Safari、Chrome、Opera、Firefox 中均可运行,适用于已上网一段时间的计算机和已断网一段时间的计算机。)
确实,这很好。但是当我输入nslookup <hostname>
或 时dig <hostname>
,我会获得该服务的旧 IP。(如果我在浏览器中输入所述 IP,我会获得该服务的前一个服务器)。
我很困惑。为什么浏览器可以解析新服务,而 nslookup 却不能?[不,/etc/hosts 中没有关于该网站的任何信息]。
[顺便问一下,有没有什么办法可以知道浏览器为某个网站提供了哪个 IP?]
答案1
另一种可能性是,网络上的客户端计算机正在通过 HTTP 代理服务器,该服务器在客户端计算机之前就已经发现了 IP 地址的变化。
答案2
在 Solaris 和 Linux 上有getent
(例如 ' getent hosts www.google.com
')。它使用系统库进行解析,而不是直接转到名称服务器 (如nslookup
)。当有多个命名服务 (本地文件、nis、dns) 在使用时,其中任何一个都可以有答案,这尤其有用。