什么原因会导致 DNS 查找忽略主机文件条目?

什么原因会导致 DNS 查找忽略主机文件条目?

我遇到了 DNS 解析问题,这影响了我在本地计算机上浏览本地托管网站的性能。如果我在浏览器中访问 URL 时将网络的 DNS 后缀附加到本地计算机名称,则网站的加载时间会比没有 DNS 后缀时长长(慢 100 多倍)。

我认为我可以通过 hosts 文件来解决这个问题,这样就不需要查找了。我在 hosts 文件中添加了一个条目,如下所示

127.0.0.1    myMachine.MyDnsSuffix

但这并没有改变加载时间,即使重启后也是如此。虽然解决这个特定问题并不重要,但我真的很想知道为什么有时候是这样的。

此外,当我在域上运行 nslookup 时myMachine.MyDnsSuffix,我注意到它使用我网络的 DNS 服务器来查找 IP。这可能与我的问题有关,还是我只是误解了 nslookup 的工作原理?

答案1

我相信 nslookup 用于测试 DNS 服务器本身,而不是利用您的 HOSTS 文件。 http://support.microsoft.com/kb/200525似乎表明了这一点。

尝试简单 ping 一下。它能ping myMachine.MyDnsSuffix解析到您在 HOSTS 文件中指定的环回地址吗?

答案2

DNS 查找永远不使用 hosts 文件。

答案3

好的,全新的方法。让我们清除您的 IP 和 NETBIOS 缓存。 ipconfig /flushdns然后nbtstat -R启动像 Wireshark 这样的数据包嗅探器,并在运行时执行 ping。

从数据包捕获中,我们想要查看 A) 是否有 DNS 请求发出,如果有,请求的名称是什么。B) 是否有 NETBIOS 请求发出。有可能该名称是通过 NETBIOS 而不是正确的 DNS 解析的。

如果尽管您清除了缓存,我们仍没有看到上述任何一项,那么很可能是从主机或 lmhosts 中提取名称的。

答案4

使用完整 DNS 名称时,您的浏览器会尝试通过代理服务器 -IE 版

hosts 文件或名称解析顺序与此问题无关,hosts 文件这个人类背后的溃烂伤口应该被取出来,大声枪毙。

相关内容