用路由器统筹HOSTS文件(支持泛域名解析)


由于众所周知的原因,大量国外网站和网络服务无法在国内直接访问。相对于使用代理服务器,修改hosts文件使用dropbox相对方便的多。但如果手头电脑众多,分别修改hosts文件的确是件麻烦的事(每次修改就要弄n便)。如果这些电脑都使用路由器(固件为tomato,dd-wrt等系统),今天就请各位跟我一起用路由器统筹管理HOSTS文件吧。

一,用路由器统筹HOSTS的原理:

我们在系统目录中的c:\windows\system32\drivers\etc目录下将能够看到HOSTS文件的存在,HOSTS文件在功能运行时的优先级是高于DNS解析的,说白了这里存在的域名对应关系将直接被使用,所以将站点对应的IP地址在HOSTS文件中进行指定后,再访问这些站点时将自动转发到指定的未被墙掉的IP地址。利用这个方法也可以屏蔽恶意网站,将其域名指向127.0.0.1等IP即可。

clip_image001

利用这个方法也可以屏蔽恶意网站,添加到HOSTS文件中的对应关系类似“127.0.0.1 www.sex.com”这样的格式,这样该计算机在本机访问www.sex.com时将自动指向127.0.0.1,从而避免被www.sex.com站点上的流氓插件和病毒程序所感染。

clip_image002

不过这样的单纯修改HOSTS文件的方法效率太低,对于局域网内部有多台计算机的情况,我们需要反复编辑HOSTS来达到过滤的目的。整体实施效率比较低,而且一旦要添加新条目时又要重新执行上述全部操作。

实际上我们完全可以从路由器下手统筹管理HOSTS文件的解析功能,这样一方面避免了反复编辑HOSTS到各个主机的繁重工作,另一方面也为日后更新HOSTS文件的对应条目提供了更加便利的方法。另外最大的好处,路由器可以实现泛域名解析,这是hosts不可能实现的.

二,用路由器统筹HOSTS:

一般来说路由器中都会有专门针对DHCP和DNS的设置功能,我们可以通过这些功能来完善DNS解析过滤,通过DNS解析过滤功能实现统筹管理HOSTS文件。

笔者以图形化管理界面的路由器为例进行介绍,使用的固件程序是TOMATO,当然如果实际环境中是其他诸如DD-WRT的固件的话通本文介绍的方法来实施也是没有任何问题的。具体操作步骤如下。

小提示:

如果要在命令行模式的路由器下统筹HOSTS文件我们必须参考说明文档中的相关命令来实施。

第一步:进入到路由器管理界面,然后选择Advanced->DHCP/DNS。

clip_image003

第二步:在这里我们会看到名为dnsmasq custom configuration的区域,在这里输入要进行过滤的域名和IP地址。具体格式为address=/domain.name/127.0.0.1。

clip_image004

Tips:

对于ddwrt固件来说相关功能选项在Administration->Services->DNSMasq下,我们可以在该参数下进行设置,具体实施结果和步骤与TOMATO中类似。

当然如果要针对多个域名和站点的话,我们只需要按照上文介绍的方法依次添加多个条目即可,每个过滤条目单独一行显示,我们可以通过复制粘贴等操作快速添加过滤条目。最终实现的效果和对单一站点进行过滤是一样的。

clip_image005

DNSMasq是tomato/ddwrt都带的dns服务器,通过他我们可以顺利实现转发/dns cache等信息,本文正是利用此功能来实现统筹HOSTS的。最后还需要额外说明几点的是——

(1)在路由器中配置一次,内网所有机器各种系统都将生效。

(2)通过此方法可以实现泛域名解析,这是hosts不可能实现的。例如输入*.domain.name->127.0.0.1则将会把所有domain.name下的域名都指向127.0.0.1,从而实现过滤功能。

Tips:

例如过滤时输入*.www.abc.com->127.0.0.1,那么不管我们访问wireless.abc.com还是safe.abc.com都将被过滤掉而无法顺利显示相应页面。而编辑HOSTS时我们则需要针对wireless.abc.com和safe.abc.com两个地址添加两个不同的条目才能实现过滤规则。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据