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


13

我遇到一个DNS解决问题,该问题在本地计算机上浏览时会影响本地托管网站的性能。如果我在浏览器中访问URL时将网络的DNS后缀附加到本地计算机名称,则该站点的加载时间(没有DNS后缀)的可怕时间(慢100倍以上)。

我以为可以通过使用hosts文件来解决此问题,而无需进行查找。我这样向主机文件添加了一个条目

127.0.0.1    myMachine.MyDnsSuffix

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

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

Answers:


20

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

尝试简单的ping操作。是否ping myMachine.MyDnsSuffix解析为您在HOSTS文件中指定的回送地址?


您对提出了一个好的观点nslookup。我只是尝试ping通myMachine.MyDnsSuffix,它解析为我在网络上的IP,127.0.0.1不像我的HOSTS文件中指定的那样。
丹·赫伯特

您的操作系统是什么?我认为Windows7和可能的Vista在HOSTS文件上有一些奇怪的UAC保护。您确定更改正确保存吗?
Christopher Karel

我的操作系统是Windows XP。所做的更改似乎已正确保存。
丹·赫伯特

嗯...在该HOSTS条目的开头没有井号,是吗?(这将使其成为注释),并且您确定它在C:\ Windows \ System32 \ drivers \ etc \ hosts中吗?您可以在此处添加一个虚拟条目,然后查看是否按照您指定的方式解析?
Christopher Karel

3
哦,别忘了清除名称缓存。 ipconfig /flushdns。而NETBIOS缓存也:nbtstat -R。(在Windows中区分大小写-WTF,为什么?!?)
Christopher Karel

8

DNS查找不使用主机文件。曾经


2
@BartDeVos不,这没错。通用主机查找(即gethostbyname()可以通过hosts文件或DNS进行,但特定DNS的查找(由执行nslookup)将不使用hosts文件
。– Alnitak

也就是说,gethostinfo / getaddrinfo(gethostbyname的现代版本)是POSIX,不一定是Windows使用的。
适配器

2

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

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

如果尽管刷新了缓存也没有看到以上两种情况,则很可能是从主机或lmhosts提取了该名称。


1

网络论坛上的某些人声称,创建新的主机文件并重新启动DNS客户端服务可以解决此问题,但是我不确定如果您已经尝试过重新启动,为什么这样做仍然可行。

我意识到这是一个冒险,但是在主机文件条目中没有任何与Microsoft相关的词,例如MSDN,Microsoft或MSN,在吗?Microsoft已编写dnsapi.dll来忽略与某些名称匹配的主机文件条目。例如,如果添加以下条目,Windows将跳过该条目并使用DNS解析该条目中的两个主机名:

127.0.0.1 www.microsoft.com www.mysite.com

我的HOSTS文件中没有任何与Microsoft相关的资料。我只分配了一些内部测试域。我的HOSTS文件非常基本。
丹·赫伯特

嗯,有趣。我知道他们对MS域进行了硬编码以忽略该HOSTS文件,但是如果非MS域与MS域共享一个条目,那么即使是非MS域也会被忽略吗?那对他们来说只是糟糕的编程。如果“缩小” HOSTS文件,绝对是要注意的事情。
Synetech

0

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

主机文件或名称解析顺序与此问题无关,因此应将主机文件在人类背面的溃烂疮取出并进行嘈杂的拍摄。


我没有连接到代理。
丹·赫伯特

1
@mh:只要根服务器允许我添加/删除/编辑记录,我会同意您对主机的射击。
伊恩·博伊德

0

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

这似乎是实际原因。立即将它留给Microsoft,而无需发出警告就忽略25年的惯例。


2
请在回答中包括要点/原因。它比链接好得多。
Jacob

这是链接URL的基本部分,但是似乎没有任何作用。直到我看到其他一些示例主机文件,这些文件的格式设置为<ip address> <单个空间> <value>
Tun

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.