主题:【原创】hosts文件导致不能访问某些网站,及解决办法 -- 铁手
kk 碰到一个问题,说是上其他网站没有问题,但是就是不能上百度。我也曾经碰到过这个问题,化了不少时间来解决,写下来,供大家参考,万一碰到类似情况的时候可以迅速解决问题。
症状基本上就是无法访问百度,但是很多其他网站都没有问题,无论是用ie还是firefox都是一样的结果。
因此,不是浏览器的问题。查了防火墙,也不是防火墙的问题。最后想到 windows 的 hosts 文件。
hosts 文件,简单的说,就是把域名和ip对应的文件。通常情况下,比如你要访问百度,首先需要到互联网上合适的DNS来解析域名到它的ip地址,然后通过ip地址获得内容。有了hosts文件,就可以直接在本地就获得相关的ip地址,因而提高访问速度。但是问题也出在这里。如果hosts里面的记录有错误,那么域名访问也会出错。
我发现的问题是,在hosts中有这么一行:
127.0.0.1 www.baidu.com
这意味着每次访问 百度的时候,实际上是访问本机,因为本机没有内容,所以导致出错。
解决方法很简单,就是把这行内容给删除了。
windows vista 之前可以直接修改hosts文件(具体位置可通过查找来获得),但是vista 中修改 hosts 文件就不那么容易了。下面是具体的步骤。中文部分为翻译,不一定和中文系统同名。
1、Start (开始) -> All programs (所有程序)-> Accessories (附件)
在 Notepad (记事本)上右键点击,选择 Run as administrator (以管理员身份运行)
2、运行 Notepad 后,打开 C:\Windows\System32\drivers\etc\hosts 文件来编辑。这个文件是隐蔽文件,不能直接看到。不管它,打开编辑就是。
3、删除错误的域名、ip记录。保存。需要访问的域名就可以正常访问了。
为什么在 hosts 文件中出现这样的错误记录?
经过排查,是因为运行 Spybot-Search & Destory 后,执行 search for problem 后,它会自动添加很多的域名到hosts中,以达到屏蔽这些域名的作用。你想访问的域名可能就在这个屏蔽列表中。
Spybot-Search & Destory 是一个比较常见的,免费的查木马的软件。
花一朵!
个人认为浏览中文网站必备
改完以后,可以把文件属性改为只读,再去安全里把user的写入文件权利设成拒绝。
个人还是认为应该用 127.0.0.1 否则,那些域名都到了一个实际的网址的话,会产生很多的误解。也很可能对将来的安全造成问题。
举个例子说,你原来访问某个域名,后来用这种方式屏蔽(导向)了,原来域名的cookie也会因此到新的ip。反之也是这样。
建议一般情况下,不要动那个 hosts 文件。实在有必要的话,还是手工操作比较好。
不知道坐着干嘛导到不同的几个ip上去?和那个网站有仇,增大他们的流量成本?
也许是一种新创的广告方式也不一定。
我说怎么以前做测试,访问不同的服务器时,总要改host文件。原来是这么回事。
我发现的问题是,在hosts中有这么一行:
127.0.0.1 www.baidu.com
多谢铁手指点。
我的症状没说全,用ie访问百度的时候没反应。用firefox则可以正常访问。
我按图索骥,在hosts的文件中没找到
127.0.0.1 www.baidu.com
这行。
苦苦思索,不得其解。