日期:2014-05-17  浏览次数:20732 次

能不能用hosts文件将某个域名指定到其他IP地址
rt,比如我用ping查到百度的IP地址为61.135.169.105,然后我要使域名hao.360.cn指定成百度的IP,修改hosts如下:

# 127.0.0.1 localhost
61.135.169.105 hao.360.cn
# ::1 localhost

但是出来的结果就是变成hao.360.cn直接无法访问,难道hosts指定某域名到其他IP吗,一定要正确的IP才能指定?
(理论上我输入该域名,首先查找hosts,hosts找到映射的IP,直接连接该IP,应该没问题啊?)
疑惑很久了,请大神们指教,万分感谢啊!!!

------解决方案--------------------
很多朋友可能碰到了这样的问题,用来屏蔽某些恶意网址的时候,修改了hosts 文件,但是却总是不生效。上网搜索了一下,Windows7系统、Vista系统、XP系统都碰到了此类情况,看来问题还很普遍。今天特别附上一则解决办法,未必通杀,但确实是解决了很多这种情况下的问题。

解决这个问题之前,我们先来简略谈下hosts文件,很多新手朋友可能还不了解,网络反黑文件,就是通过修改hosts文件来实现对恶意网址的屏蔽甚至转向的。

简单的说,hosts文件是用于本地dns服务的,采用如下格式写在一个文本文件当中

ip 域名

Windows系统上一般存放在系统盘的\windows\system32\drivers\etc\目录下,本地主机一般都被定义为:

127.0.0.1 locahost

根据微软的相关文档,hosts文件必须是ascii编码方式也就是ANSI方式,如果你存为unicode格式将不会被正确读取,不过在win 7中似乎转而使用UTF-8了(不过我现在用的win 7 sp1仍然不认unicode的)。

回到今天的主话题,修改hosts将域名指向新的ip是总是无法生效,试过很多办法,问题却依然存在,于是上微软的网站寻找答案,最终发现一个“DNS Client ” 服务的问题,“DNS CLient ”服务是缓存dns用的,所以说修改了hosts的文件是不能马上生效的,需要一段时间的延时,通常可以用ipconfig /flushdns来刷新dns缓存,但这个方法似乎没有什么效果,于是干脆打开控制面板–管理工具–服务,在其中找到“DNS Client ”将其停用并改为手动模式。

于是问题就解决了,hosts文件随时修改随时生效。注意,本文说的无效,是指的设置后无效,不是指的没有权限修改hosts。


------解决方案--------------------
C/C++ code
117.79.93.222    www.baidu.com
#输入www.baidu.com  -》跳到CSDN

#117.79.93.222 www.google.com
#google.com  -》会跳转

119.75.217.109    www.google.com
#google.com  -》不会跳转到百度,连接错误