![什么原因会导致 DNS 查找忽略主机文件条目?](https://linux22.com/image/501291/%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E4%BC%9A%E5%AF%BC%E8%87%B4%20DNS%20%E6%9F%A5%E6%89%BE%E5%BF%BD%E7%95%A5%E4%B8%BB%E6%9C%BA%E6%96%87%E4%BB%B6%E6%9D%A1%E7%9B%AE%EF%BC%9F.png)
我遇到了 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 文件这个人类背后的溃烂伤口应该被取出来,大声枪毙。