主机文件被忽略


23

我的(Windows XP,Professional,v2002,SP3)工作站完全忽略了我的主机文件。

这是我的主机文件中的代码:

127.0.0.1       localhost

172.17.1.107    wiki

但是,当我打开浏览器并在URL栏中键入“ wiki”并单击“ Enter”时,它将带我到我的Wiki的旧位置,就像它在我的旧主机文件中一样:

10.0.36.100     wiki

即使我已将旧的主机文件重命名为“ hosts_full”并将其移至我的桌面(因此,完全从etc文件夹中移出)。

到目前为止,我已采取以下步骤:

  1. 重新启动(3次)
  2. ipconfig /flushdns从命令行
  3. ping wiki从命令行中,反应是

Reply from 10.0.36.100: bytes=32 time=1ms TTL=63

我已经清除了所有我能想到的缓存(IE,FF)。

我有一个在我的计算机上运行的ISA防火墙客户端,并且在禁用和启用它的情况下都尝试了所有这些操作。实际上,防火墙使用旧的主机文件自行解决:

10.0.2.126      isa3

而且即使新的hosts文件不包含该行,它仍然可以正常工作。

有任何想法吗???在此先感谢您的帮助!


当您为该IP创建新条目(例如172.17.1.107 wikitest)时会发生什么?
shufler

Answers:


24

您是否有可能使用代理服务器进行浏览?如果是这样,则可能是代理服务器正在为您解析dns名称。

这就是为什么您在命令行中使用ping而不是浏览器获得不同结果的原因。

偶然的流量被拦截并更改。机会极少...


1
是的,实际上,我发现有一个公司代理正在拦截我的请求并对其进行响应。不知何故,它绕过了我的主机文件。如果公司代理中有一个条目,它将覆盖我的本地主机文件条目。尽管此答案并没有真正告诉“如何”解决问题,但确实确定了问题的真正根本原因(不是防火墙...)
cmcculloh 2010年

1
当我遇到问题时,这很容易解决。我选择不在该IP上使用代理(在Firefox中处于代理设置下)此修补程序可能不适用于您的问题(防火墙可能会在没有代理的情况下阻止传出HTTP等)。如果您没有Mozilla配置文件的集中管理功能,那么它可能也将推广到多台计算机。由于我们不使用IE,因此无法回答IE。
artifex

3
.. * bitch *推出..哈哈
Manas 2014年

1
才花了4年时间,才有人注意到@silent_warrior;)
artifex 2014年

1
@artifex感谢您的回答和评论,这使我意识到我可以设置解决我问题的异常。任何有兴趣的人都可以在这里看到:stackoverflow.com/questions/37658876/…–
haakym

9

防火墙响应Ping?
这是您提供的IP地址的远景,但是当您直接ping新IP时会发生什么呢?

我问的原因是,如果10.0.36.100恰好是响应ping的防火墙,即使您正在ping不同的IP,它也会说从中答复。

大主机文件?
另外,这一次让我和另一个IT人员进入,在宿主文件的窗口中有很多空白行,然后在下面向下输入-我们没有注意到滚动条:-)

主机文件真的是主机文件吗?
最后,在注册表中查找并确保主机文件位于您认为的位置,以下项指定了实际主机文件的位置:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

1
1:来自172.17.1.107的回复:字节= 32时间<1毫秒TTL = 63 2:不,查看了整个主机文件的滚动条以及所有... 3:DataBasePath,类型=“ REG_EXPAND_SZ”,数据=“%SystemRoot%\ System32 \ drivers \ etc”那%SystemRoot%部分让我感到好奇,所以我打开“环境变量”,然后寻找SystemRoot变量。没有看到一个,所以我创建了一个并将其设置为C:\ Windows,然后我做了一个ipconfig / flushdns并ping通www.wiki.com,但是它仍然响应70.35.23.23而不是172.17.1.107(我在主机文件中设置的内容)。不过谢谢!很好的建议!
cmcculloh

很好,我的系统正在从驱动器E:而不是C:引导。
曼尼

5

尝试使用开始->运行...刷新DNS缓存。

 ipconfig /flushdns

此外,请尝试为您的网络适配器停用NetBIOS和LMHOSTS。您可以在“高级”->“ WINS”下的所用网络连接的“ TCP / IP属性”中更改设置。


这是一个人会尝试的第一件事...
vsync

3

根据http://technet.microsoft.com/zh-cn/library/bb727005.aspx,它可能位于您的本地NETBIOS名称缓存中。您可以使用nbtstat(http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/nbtstat.mspx?mfr=true)查询/清除此缓存。


当我发出“ nbstat”命令时,我得到“'nbstat”未被识别为内部或外部命令,可操作程序或批处理文件”
cmcculloh

nbtstat,而不是nbstat-您缺少第一个“ t” ... :)
Maximus Minimus,2009年

oops:P好吧,做了一个nbtstat -R和nbtstat -RR和nbtstat -r然后是nbtstat -c(它说“高速缓存中没有名称)”
cmcculloh,2009年

而且仍然无法正常工作
cmcculloh

3

事实证明,在我的主机文件之前,我的公司DNS已遭到攻击。所以我:

  1. 打开我的TCP / IP属性(“控制面板”>“网络连接”>“本地连接”>“属性”>(向下滚动)“ Internet协议(TCP / IP)”>“属性”。
  2. 单击“使用以下DNS服务器地址:”(而不是自动获取DNS服务器地址)
  3. 输入“ 172.0.0.1”和“ 172.0.0.2”(并单击“确定”)

现在我的主机文件可以正常工作了...从命令行开始。但是,如果我在www.google.com上输入了一个指向172.17.1.107的条目,那么当我从命令行ping到它时,它将从在hosts文件中指定的IP地址返回。但是,如果我从浏览器中找到它,它仍然会向我显示Google,而不是我的本地站点。但是,如果我在“ fredspc”中输入一个指向172.17.1.107的条目并从浏览器中找到它,它将带我到172.17.1.107。

我想出这是因为,如果我在主机文件中输入“ tedspc”(即永远无法解析的内容)并为其提供IP地址并对其执行ping操作,它将解析为该IP地址。问题是www.wiki.com和我要输入到主机文件中的任何其他文件在公司DNS服务器中都有一个条目,这导致它得以解析,这意味着它从未查看我的主机文件(因为公司DNS服务器)首先在hosts文件之前进行查看)。因此,我将公司DNS排除在命令提示符循环之外,但并未排除于浏览器循环之外,我想...有什么想法吗?


1
你好 很高兴得知您有解决方法。但据我所知,应该始终首先使用hosts文件在dns服务器列表中的每个条目之前进行dns查找。是否有可能使用某些dhcp-options完全停用hosts文件中的查找?也许您可以将公司DNS服务器添加为dns服务器列表中的第三和第四项。
grub

也许您的Web浏览器配置了代理服务器?
奥斯卡·杜夫伯恩

2

每次将主机文件用于DNS条目时(始终),我都会关闭(禁用)本机运行的DNS服务(services.msc)。然后执行ipconfig / flushdns,如果重启服务器/桌面失败,则将清除缓存。主机文件中没有的DNS条目,服务器/台式机将诉诸已设置的网络接口的默认DNS设置。这也允许测试不同的防火墙等。


2

%SystemRoot%定义为C:\ WINNT而不是C:\ windows时,我只是改变了C:\ windows \ system32 \ drivers \ etc \ hosts ...我不知道为什么这个特定的服务器有一个完整的在C:\ windows和C:\ winnt中都安装了Windows,但至少我不再感到发疯了。

我感觉有些愚蠢,但这只是其他遇到此问题的人的另一快速检查!


2

您确定要编辑RIGHT主机文件吗?通常位于

%SystemRoot%\system32\drivers\etc\hosts


2

在尝试了许多不同的建议解决方案之后,我检查了“ etc”文件夹的安全性,并将其权限与“ es-ES”文件夹的权限进行了比较,发现该组用户没有像在“用户”文件夹上那样具有读取和执行权限。其他。再次获得“ etc”文件夹的所有权后,我授予组Users读取和执行权限,并让它们由文件夹内容继承。对于我来说,这已解决了这个问题-无论系统的哪一部分查询主机文件,显然都受到用户组的限制。尝试修改主机文件时,我有时必须不小心删除了该组的权限。


这为我解决了。我只是将Users组直接添加到hosts文件中,刷新了缓存,并立即再次尊重了hosts文件。
user51928

2

在Windows上删除原始文件并将其替换为新文件很重要!

我知道这个问题已经得到回答,但是很明显,有很多不同的原因和可能的解决方案。对我来说,诀窍是删除文件,而不是覆盖文件。

我也知道@olefebvre已经发布了类似的东西,但是我并没有用它的缩写来识别它,并且它(不是唯一地)与奇数字符有关,而是要带窗户来完全识别文件。


谢谢,这节省了我很多时间和沮丧。
安迪·莱斯特


1

您可以检查对主机文件的许可吗?尝试对主机文件“ Wiki”条目使用FQDN。


权限应该是什么(现在文件不是只读的,并且所有权限都设置为允许所有用户使用)?我尝试设置为www.wiki.com,但仍然无法正常工作。(我将行更改为172.17.1.107 www.wiki.com),然后打开命令提示符并尝试ping通www.wiki.com,它返回“ Pinging www.wiki.com [70.35.23.23],其中包含32个字节的数据”,但它说了三遍“请求超时”。然后,我尝试ping的所有操作均返回了Request超时。我现在正进行BIND安装,以尝试解决此问题,我不知道这是否会影响ping ...
cmcculloh 2009年

现在我要么错误地安装了BIND,要么我的计算机也忽略了它,因为它也不起作用...
cmcculloh 2009年

尝试删除该文件并创建一个不复制/粘贴的新文件。也许有些文本编辑器在其中插入了奇数字符(UTF8)。
olefebvre

1

您是否检查过hosts和lmhosts.sam?


是的,lmhosts.sam中的所有内容都被注释掉了,只有我在主机文件中的原始问题中指定的两行...
cmcculloh 2009年
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.