我遇到了一个无法理解的小问题。我们开发了一个现有网站的新版本。这是在本地开发的,然后转移到新服务器。最后的更改是更新域名的 DNS,以便它能够解析为新服务器的 IP。我的客户说他现在可以看到该网站,但我看不到。我认为这很奇怪,但也许更改尚未完全传播到互联网上,所以我决定等待。然后我决定从运行 ubuntu 的另一台计算机上查看该网站。该网站在那里运行,我看到了新版本。这更奇怪,对吧?特别是考虑到它们都连接到同一个网络并使用同一个互联网连接访问网络。因此,我决定在我的平板电脑上查看该网站,它也可以正常工作。然后是我的手机,它使用运营商的互联网服务连接到互联网。该网站也可以在我的手机上运行。
问题是,为什么它不能在一台电脑上运行?让我们暂时忘掉平板电脑和手机。
我有两台计算机,一台运行 Ubuntu,另一台运行 Windows 7。运行 Windows 7 的那台将域名指向其旧 IP,而运行 Ubuntu 的那台将域名解析为新 IP。它们都连接到同一个互联网接入点。我想也许我在某个时候更改了 Ubuntu 上的 DNS,我不记得了,但我从未在平板电脑上更改过它们,它也解析为新 IP。所以,我唯一的猜测是 Windows 7 有自己的 DNS,这是真的吗?或者发生了什么?
答案1
Windows 执行本地 DNS 缓存。在提升的命令提示符下执行以下命令:ipconfig /flushdns
然后尝试访问您的站点。
事实上,如果您想验证,在刷新本地解析器缓存之前,请运行以下命令:ipconfig /displaydns
。我敢打赌,有问题的域名是使用内部 IP 地址缓存的。
nslookup
要进行双重验证,请在提升的命令提示符中打开,键入server 208.67.222.222
并按回车键。然后set type=all
键入并按回车键。最后,键入domain.com
并按回车键。您可能会看到带有正确 IP 地址的 A 记录。
以上内容证明了什么?您的本地 PC 缓存了内部 IP 地址,而外部公共 DNS 服务器具有正确的外部 IP 地址。
要关闭 Windows DNS 缓存功能(以便 Windows 像文明操作系统一样运行),请转到并将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\MaxCacheEntryTtlLimit
DWORD 值设置为 1。
答案2
检查 Windows 7 机器上的 hosts 文件:c:\Windows\System32\drivers\etc\hosts
。