CFANer
对于每个喜欢上网的朋友来说,几乎登录每个网站都会遭遇各种各样的广告轰炸,即使你输入错误的网址,运营商的DNS拦截也会强行推送广告。虽然我们可以通过浏览器的拦截广告插件对广告进行屏蔽,不过在广告侵入电脑时才进行拦截是不是有些亡羊补牢的意味?何不利用路由器的设置,将广告直接拦截在“窗”外?
屏蔽运营商DNS广告
使用电信、联通上网的用户都知道,很多时候我们访问一些网站会无故跳转到电信的广告页面上,或者在访问不存在的网址时自动跳转到运营商的广告页面,这些就是典型的DNS广告劫持。现在借助路由器设置可以轻松屏蔽它们。下面以屏蔽电信DNS广告劫持为例,路由器使用的是Tplink WR541G/542G。
1.使用IE浏览器进入路由器设置,接着依次展开左侧窗格的“安全设置→防火墙设置”,勾选其下的“IP地址过滤”,缺省过滤规则中选取“凡是不符合已设IP地址过滤规则的数据包,允许通过本路由器”。继续勾选“域名过滤”并保存(图1)。
2. 在右侧设置窗格,切换到“安全设置→域名过滤”,点击“添加新条目”,按提示添加如下域名(不要输入http://www.格式):
search.114.vnet.cn
114.vnet.cn
将这些DNS广告域名全部过滤,生效时间为“00~24”(即每天),状态为“生效”(图2)。
每种运营商广告域名并不相同,只要在浏览器输入一个不存在的网址如www.lokdhhgjfdfds.cxm,此时跳转到的页面就是运营商的广告网址,在地址栏记下它的域名并添加到域名过滤列表即可。
3. 启动命令提示符,输入下列命令获得上述域名的IP地址并记下:
ping search.114.vnet.cn
ping 114.vnet.cn
接着在右侧设置窗格,切换到“安全设置→IP地址过滤”,单击“添加条目”,然后在弹出的窗口中,在“广域网IP地址”输入框依次填入上述获得的IP地址(如果广告网址是一个网段,则输入起始IP地址段即可),其他参数选择默认设置,确定之后重启路由(图3)。
这样再次上网后,由于运营商的广告域名和P地址全部被自动过滤,浏览器就再也不会出现DNS广告劫持了。一旦运营商增加了新的广告,操作同上继续添加到域名和IP地址过滤列表即可。同样的,对于常见的危险域名和网址,使用同样的方法可以在路由器中进行屏蔽。
如果设置不当(比如将防火墙规则设置为“凡是不符合已设IP地址过滤规则的数据包,禁止通过本路由器”)可能会导致无法上网,此时只要再次进入路由器设置,选择“恢复出厂设置”,或者对路由器物理清零,再根据教程进行正确的设置即可。
屏蔽常见网页广告
上述方法只能手动添加需要过滤的域名和IP地址,因此只适合屏蔽少量、典型的广告网址。对于网上数量庞大的广告页面,我们不可能手动全部添加,如果你的路由器支持刷入DD-WRT,那么利用DD-WRT可以轻松拦截各类广告。
DD-WRT是一种可用于某些无线路由器的非商业的第三方固件,支持多种品牌的路由器刷入。它的功能强大而且具有友好的Web管理/配置界面,可以提供很多“原版”路由器不支持的功能,具体支持的路由器品牌可以登录http://www.dd-wrt.com/site/index查看。普通的路由器刷入DD-WRT后就可以利用其自带的DNSMasq服务屏蔽大多数广告页面。
1. 进入DD-WRT路由设置页面,依次展开Services(服务) →Services(服务),在页面下方的DNSMasq设置选项中,将DNSMasq 和 Local DNS(本地 DNS) 均设置成 Enable (启用),然后保存设置(图4)。
2.到http://dwz.cn/cfan28下载所需的脚本文件,使用记事本打开后复制所有内容。返回DD-WRT路由设置页面,继续展开页面上方的Administration(管理员)→Commmands(命令行),在Command Shell(命令行外壳)后的文本框粘贴上述复制的脚本文件,粘贴完成后点击Save Startup,将其保存为开机启动项目(图5)。
上述脚本的作用实际上是实现每次启动路由器自动下载Chinalist(著名反广告扩展Adblock Plus使用的针对国内广告的ChinaList Lazy过滤包,它会定期更新广告列表),下载后转换生成dnsmasq配置文件,再告知dnsmasq调用。
3.继续展开Administration(管理员)→Management(管理),在右侧窗格找到cron选项,将其设置为Enable(打开),接着在下面Additional Cron Jobs文本框输入“* 1 * * * root /tmp/.rc_startup代码,最后保存退出即可(图6)。
完成上述的设置后,以后我们每次启动路由器,它都会自动下载Chinalist并被路由器调用,屏蔽的效果就类似于浏览器安装的Adblock Plus插件,大家可以自行比较一下。
对于无法刷DD-WRT的路由器,我们可以利用Chinalist提供的域名列表,只要在浏览器地址栏定期输入http://easylist-msie.adblockplus.org/chinalist+easylist.tpl,在打开的窗口手动将其中的域名添加到路由器的域名过滤列表,也可以实现同样的效果。
多管齐下防范广告网页
俗话说:道高一尺,魔高一丈。在我们探讨使用各种方法屏蔽广告的同时,网站广告主也在想用各种更高明的方法向我们推送广告。虽然在路由器上屏蔽广告的方法很好,但是面对层出不穷的广告页面,仅仅使用路由器还是远远不够的。路由器设置操作较为复杂,为了更好地屏蔽广告网页,我们们可以结合浏览器的hosts文件,手动添加广告网址到屏蔽列表。此外还可以安装著名反广告插件Adblock(适用IE、搜狗、傲游、火狐等多款浏览器),并且定期更新和手动添加屏蔽规则,这样就可以有效防范各种网页广告。
面对烦人的网络弹窗广告和网页广告,我们总是在想办法对付他们,如果你觉得路由器拦截广告对你的操作有难度,不妨看看2012年第18期刊登的《清除广告 让视频变单纯》和2012年第19期刊登的《就要小清新大战网页漂浮广告》。