HOST文件在调试中的作用
HOST文件是本机上的一个域名与IP映射表,在DNS客户端与远程的DNS服务器进行域名前会先查阅这个文件。如果查找到了结果,那么就不去DNS服务器查了。因此HOSTS文件具有更高的优先级,这恰恰我们调试创造了一个极好条件。
比如我们在希望在本机跟踪网络服务或网页代码。通常我们用
http://localhost/advdbg/default.aspx
这样的链接来启动调试过程。
但是有时,调试一些与域名有关的问题,我们希望用正式的域名也可以进行跟踪。这时便可以使用HOSTS文件将本来要发动远程服务器的请求定向到本地来。方法就是在HOSTS文件中加入相应的重定向,如下例所示:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
#127.0.0.1 www.advdbg.org
#127.0.0.1 advdbg.org
#127.0.0.1 www.advdbg.com
#127.0.0.1 advdbg.com
例子中,我将本网站的几个域名全都定向到我的调试本机上。
但是有时这种机制也会被恶意的人所利用。以下是瑞星公司的一个公告。
一、什么是Hosts表文件
Hosts表文件是一个没有扩展名的文件,但是它属于文本文件格式的文件。你可以使用记事本程序对其进行编辑。Hosts表文件中存放的是一些常用的网站主机的域名和其对应的IP地址。当我们在使用浏览器浏览一个网站时,在地址栏中输入网站的域名并回车后,系统必须通过某种渠道将这个域名转换为其对应的唯一的IP地址,这项工作通常是由DNS(域名解析服务器)服务器来完成的。而在系统将域名给DNS服务器处理之前总是先检查本地的Hosts表文件,看其中是否已经有相应的域名与IP地址的对应关系,如果有就会直接采用,因而会节约大量时间。
正因为这个原因,假如Hosts表文件中的某个域名与IP地址产生了错误的对应,当你在浏览器中输入这个域名试图打开其对应的网页时,就会出现打不开的情况,而那些没有映射错,或是没有在Hosts表中有相应记录的网站则可以正常地打开。这就是上面我们提到的为什么有些网址不能打开,而在其他电脑中可以顺利地打开的原因之所在。很多恶意程序经常会闹这样的恶作剧。
二、中招后的解决方案
知道了原理后,假如我们的浏览器中招而导致某些网站不能正常打开的话,我们就可以通过修改Hosts表文件来解决了。Hosts表文件在系统中的位置,Windows 9X系统存放在C:\Windows目录,Windows NT/2000系统,其保存在c:\winnt\system32\drivers\etc目录,Windows XP系统保存在c:\windows\system32\drivers\etc,如果找不到的话,可以通过系统的搜索工具进行搜索。找到后,直接用记事本将其打开,然后将除了“#”开头的其它行内容全部删除,例如“127.0.0.1 onlinestore.smgbb.cn”,最后单击“文件→保存”将其保存即可。当然,你也可以选择性地删除那些被屏蔽了的而你又想访问的网站,这样其他被屏蔽的网站则不会受影响。
这个方法是利用了Hosts文件优先于DNS查询的原则,把该电影网站的域名指向一个可能不存在的IP地址0.0.0.0,避开该网站,自然也就不会遇到这个可恶的提问窗口了。
如果有多个这样的需屏蔽的网站,可以依据上述方法将其域名与一虚假的IP地址或局域网内的任一IP相连,就可以解决问题。
三、经验之谈
当你遇到某些网站打不开,而有些网站可以顺利地打开,除了在IE浏览器中设置了网址过滤之外,Hosts表文件被动了手脚就是最可疑之处了。通过上面的方法,一般都可以轻松地解决。鉴于此,一些烦人的网站(例如,百度插件安装页),我们倒可以利用这个特性将其“屏蔽”掉,方法很简单,只要在Hosts表文件中的尾行中追加类似于:127.0.0.1 bar.baidu.com(127.0.0.1与bar.baidu.com之间用空格分隔开)一行,最后保存并退出Hosts表文件即可。你也可以使用上网助手的Hosts表文件编辑功能来操作,在图1所示的窗口中单击“添加”按钮,然后在下面的“IP地址”和“域名”栏中分别输入127.0.0.1 和bar.baidu.com,最后单击“立即保存”即可。按同样的方法,可以将其他不想让其在本台电脑中可以访问的网站“屏蔽”掉。