如何使用路由器对广告进行屏蔽
对于每个喜欢上网的朋友来说,几乎登录每个网站都会遭遇各种各样的广告轰炸,即使输入错误的网址,运营商的DNS拦截也会强行推送广告。虽然可以通过浏览器的拦截广告插件对广告进行屏蔽,不过在广告侵入电脑时才进行拦截是不是有些亡羊补牢的意味?如何利用路由器的设置,将广告直接拦截在“窗”外?
小知识:路由器是怎么拦截广告?
使用过浏览器hosts文件拦截广告的朋友都知道,hosts是通过域名转向(将常见广告域名都指向127.0.0.1)功能实现广告屏蔽的。路由器拦截广告类似,它借助路由器上广泛存在的 Dnsmasq服务以及路由器内置的IP地址过滤、域名过滤组件,实现广告网址在路由器就转向到127.0.0.1,从而实现广告的屏蔽。
简单三步——屏蔽运营商DNS广告
使用电信、联通上网的用户都知道,很多时候我们访问一些网站会无故跳转到电信的广告页面上,或者在访问不存在的网址时自动跳转到运营商的广告页面,这些就是典型的DNS广告劫持。现在借助路由器设置可以轻松屏蔽它们。下面以屏蔽电信DNS广告劫持为例,路由器使用的是Tplink WR541G/542G。
1.使用IE浏览器进入路由器设置,接着依次展开左侧窗格的“安全设置→防火墙设置”,勾选其下的“IP地址过滤”,缺省过滤规则中选取:凡是不符合已设IP地址过滤规则的数据包,允许通过本路由器。继续勾选“域名过滤”并保存(见图1)。
2. 在右侧设置窗格,切换到“安全设置→域名过滤”,点击“添加新条目”,按提示添加如下域名(不要输入http://www.格式),将这些DNS广告域名全部过滤,生效时间为“00~24”(即每天),状态为“生效”(见图2):
小提示:
每种运营商广告域名并不相同,只要在浏览器输入一个不存在的网址,此时跳转到的页面就是运营商的广告网址,在地址栏记下它的域名并添加到域名过滤列表即可。
3. 启动命令提示符,输入下列的命令获得上述域名的IP地址并记下。接着在右侧设置窗格,切换到“安全设置→IP地址过滤”,单击“添加条目”,然后在弹出的窗口,在“广域网IP地址”输入框依次填入上述获得的IP地址(如果广告网址是一个网段,则输入起始IP地址段即可),其他参数选择默认设置,点击确定之后重启路由(见图3)。
这样再次上网后,由于运营商的广告域名和P地址全部被自动过滤,在浏览器就再也不会出现DNS广告劫持了。一旦运营商增加了新的广告,操作同上继续添加到域名和IP地址过滤列表即可。同样的,对于常见的危险域名和网址,使用同样的方法可以在路由器中进行屏蔽。
注意:
如果设置不当(比如将防火墙规则设置为“凡是不符合已设IP地址过滤规则的数据包,禁止通过本路由器”)可能会导致无法上网,此时只要再次进入路由器设置,选择“恢复出厂设置”,或者对路由器物理清零,再根据教程进行正确的设置即可。
升级路由器——屏蔽常见网页广告
上述的方法只能手动添加需要过滤的域名和IP地址,因此只适合屏蔽少量、典型的广告网址。对于网上数量庞大的广告页面,我们不可能手动全部添加,如果你的路由器支持刷入DD-WRT,那么利用DD-WRT可以轻松拦截各类广告。
小知识:
DD-WRT是一种可用于某些无线路由器的非商业的第三方固件,支持多种品牌的路由器刷入。它的功能强大而且具有友好的Web管理/配置界面,可以提供很多“原版”路由器不支持的功能。普通的路由器刷入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”代码,最后保存退出即可。
完成上述的设置后,以后每次启动路由器,它都会自动下载自动下载Chinalist并被路由器调用,屏蔽的效果就类似于浏览器安装的Adblock Plus插件,大家可以自行比较一下。
对于无法刷DD-WRT的路由器可以利用Chinalist提供的域名列表,只要在浏览器地址栏定期输入http://easylist-msie.adblockplus.org/chinalist+easylist.tpl,在打开的窗口手动将其中的域名添加到路由器的域名过滤列表也可以实现同样的效果。