我的(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 文件夹中)。
到目前为止,我已采取以下步骤:
- 重新启动(3 次)
- 从命令行
ipconfig /flushdns
运行 - 从命令行
ping wiki
运行,响应是
Reply from 10.0.36.100: bytes=32 time=1ms TTL=63
我已经清除了所有我能想到的缓存(IE、FF)。
我有一个在我的机器上运行的 ISA 防火墙客户端,我已经在禁用和启用的情况下尝试了所有这些。实际上,防火墙使用旧的 hosts 文件自行解析:
10.0.2.126 isa3
即使新的主机文件不包含该行,它仍然可以正常工作。
有任何想法吗???在此先感谢您的帮助!
您是否有机会使用代理服务器进行浏览?如果是这样,可能是代理服务器正在为您解析 dns 名称。
这就是为什么您在命令行中使用 ping 而不是在浏览器中得到不同结果的原因。
偶然的流量被拦截和改变。机会很渺茫...
防火墙响应 Ping?
这与您提供的 ip 地址相差甚远,但是当您直接 ping 新 ip 时会发生什么,这行得通吗?
我问的原因是,如果 10.0.36.100 恰好是响应 ping 的防火墙,它会从那里回复,即使您正在 ping 不同的 IP....
大主机文件?
此外,这让我和另一个 IT 人员有一次,窗口主机文件中有很多空白行,然后在下面的条目中 - 我们没有注意到滚动条 :-)
主机文件真的是主机文件吗?
最后,查看注册表并确保主机文件在您认为的位置,以下键指定实际主机文件的位置:
尝试使用 Start -> Run... 刷新您的 DNS 缓存
还尝试为您的网络适配器停用 NetBIOS 和 LMHOSTS。您可以在高级 -> WINS 下更改所用网络连接的 TCP/IP 属性中的设置。
事实证明,我的公司 DNS 在我的主机文件之前被击中。所以我:
现在我的主机文件工作得很好......从命令行。但是,如果我在 www.google.com 中输入一个指向 172.17.1.107 的条目,当我从命令行 ping 它时,它会从我在 hosts 文件中指定的 IP 地址返回。但是如果我从浏览器中点击它,它仍然会显示谷歌而不是我的本地站点。但是,如果我在“fredspc”中输入一个指向 172.17.1.107 的条目并从浏览器中点击它,它会将我带到 172.17.1.107。
我想出了这一点,因为如果我在我的主机文件中输入“tedspc”(即永远无法解析的内容)并给它一个 IP 地址并对其进行 ping,它将解析为该 IP 地址。问题是 www.wiki.com 和我输入到主机文件中的任何其他内容在我的公司 DNS 服务器中有一个条目,这导致它解析,这意味着它从未查看我的主机文件(因为公司 DNS 服务器在 hosts 文件之前先查看)。所以我已经从命令提示符循环中删除了公司 DNS,但我猜没有从浏览器循环中删除......有什么想法吗?
根据http://technet.microsoft.com/en-us/library/bb727005.aspx它可能在您的本地 NETBIOS 名称缓存中。您可以使用nbtstat查询/清除此缓存。
显示可以清除的缓存条目
每次我将主机文件用于我的 DNS 条目(始终如此)时,我都会关闭(禁用)本机运行的 DNS 服务(services.msc)。然后执行 ipconfig /flushdns 如果失败重新启动所述服务器/桌面,这将清除缓存。哪些 DNS 条目不在主机文件中,服务器/桌面将求助于已设置的网络接口的默认 DNS 设置。这也允许测试不同的防火墙等。
当%SystemRoot%被定义为C:\WINNT而不是C:\windows时,我刚刚赶上了更改C:\windows \system32\drivers\etc\hosts ...我不知道为什么这个特定的服务器有一个完整的Windows 安装在 C:\windows 和 C:\winnt 但至少我不再感到疯狂了。
我觉得有点愚蠢,但这只是对遇到此问题的其他人的另一个快速检查!
您确定您正在编辑 RIGHT hosts 文件吗?通常它位于
%SystemRoot%\system32\drivers\etc\hosts
在尝试了许多不同的建议解决方案后,我检查了“etc”文件夹的安全性并将其权限与“es-ES”文件夹的权限进行了比较,发现用户组没有像他们在其他。在(再次)获得“etc”文件夹的所有权后,我授予组用户读取和执行权限,并让它们由文件夹内容继承。这解决了我的问题——系统的任何部分查询主机文件显然都受到用户组的限制。在尝试修改主机文件时,我一定是在某个时候意外删除了该组的权限。
删除 Windows 上的原始文件并用新文件替换它很重要!
我知道这个问题已经得到解答,但很明显有许多不同的原因和可能的解决方案。对我来说,诀窍是删除文件,而不是覆盖它。
我也知道@olefebvre 已经发布了类似的东西,但我没有用它的缩写识别它,而且它不(仅)与奇数字符有关,它是让窗口完全识别文件。