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

我在我的本地机器上浏览时,遇到了一个DNS解决问题,它影响了我的本地托pipe网站的性能。 如果我在浏览器中访问我的url时将networking的DNS后缀附加到本地计算机名称,则该网站的加载时间(比使用DNS后缀慢100倍)会非常糟糕。

我想我可以通过使用我的主机文件来解决这个问题,以避免查找的需要。 我添加了一个条目到我的主机文件这样

127.0.0.1 myMachine.MyDnsSuffix 

但是这并没有改变加载时间,即使在重新启动之后。 虽然解决这个问题并不重要,但我真的很想知道为什么会发生这种情况。

另外,当我在域myMachine.MyDnsSuffix上运行nslookup时,我注意到它使用我的networking的DNS服务器来查找IP。 这可能是有关我的问题,或者我只是误解了nslookup如何工作?

我相信nslookup是用来testing一个DNS服务器本身,而不是利用你的HOSTS文件。 http://support.microsoft.com/kb/200525似乎表示尽可能多。

尝试一个简单的平。 ping myMachine.MyDnsSuffix是否parsing为您在HOSTS文件中指定的环回地址?

DNS查找不使用主机文件。 永远。

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

从数据包捕获中,我们希望看到如果A)有一个DNS请求出去,如果是的话,它是什么名字请求。 B)如果有NETBIOS请求出去。 有可能通过NETBIOS而不是正确的DNS来parsing这个名字。

如果我们没有看到上述任何一个,即使你刷新了caching,那么很可能是从主机或lmhosts中取出了这个名字。

当使用完整的DNS名称时,浏览器试图通过您的代理服务器 – 点击IE浏览器 。

主机文件或名称parsing顺序与这个问题无关,并且作为主机文件的人类背面的溃烂疼痛应该被取出并大声地射击。

networking论坛上的一些人声称,创build一个新的主机文件并重新启动DNS客户端服务可以解决这个问题,但是我不确定为什么如果您已经尝试重新启动,这将工作。

我意识到这是一个很长的过程,但是在主机文件条目中没有像MSDN,Microsoft或MSN这样的Microsoft相关单词,在那里? 微软已经编写了dnsapi.dll来忽略与特定名称匹配的主机文件条目。 例如,如果添加以下条目,则Windows会跳过该条目并使用DNSparsing条目中的两个主机名:

 127.0.0.1 www.microsoft.com www.mysite.com 

http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx

这似乎是真正的原因。 把它留给微软突然没有任何警告地忽略了一个25岁的约定。