首页 > Geeker > 妙用DD-WRT路由器拦截广告

妙用DD-WRT路由器拦截广告

最讨厌广告神马的!商家为了推销商品,使用广告无可厚非,但是动不动就是弹出广告,什么增大加粗人流减肥网页游戏等等等等只让我恶心!

哥用的是一款支持DD-WRT系统的无线路由器,已经刷到最新的r19519版本。

下面就以Buffalo WZR-HP-G300NH2为例,讲讲如何妙用DD-WRT路由器拦截广告。
原理:在路由器上,自动从Chinalist项目上获取最新的广告域名列表并更新,然后利 用 Dnsmasq 服务,把广告的域名都指向不存在的网址,如 127.0.0.1。

赞一下ChinaList Lazy,这是原本用于Adblock Plus 插件(Mozilla Firefox和Google Chrome上最优秀的反广告插件)的广告过滤列表,现在成功移植到DD-WRT路由器上,可以过滤掉大部分的网页广告。

下面就是具体操作步骤,不懂就留言问我吧。确保你使用的是DD-WRT系统的无线路由器,并且能正常上网!

1. 进入 DD-WRT 网页管理界面,Services(服务) -> Services(服务),DNSMasq 和 Local DNS(本地 DNS) 均设置成 Enable (启用),滚到页面底部保存。

2. 进入 DD-WRT 网页管理界面,Administration (管理)-> Commands(命令),贴 入如下脚本后,记得保存为Save Startup(保存为启动指令)。稍微解释下脚本的意思,就是开机之后,自动获取反广告列表,并且在路由器上拦截。

========================== 代码如下 =========================

#!/bin/sh
logger WAN up script executing
sleep 30
if test -s /tmp/dnsmasq.ads
then
rm /tmp/dnsmasq.ads
fi

logger Downloading China Lazy List
wget -O – http://adblock-chinalist.googlecode.com/svn/trunk/adblock-lazy.txt |
grep ^||[^*]*^$ |
sed -e ‘s:||:address=/:’ -e ‘s:^:/127.0.0.1:’ > /tmp/dnsmasq.ads
grep conf-file /tmp/dnsmasq.conf ||
echo -e “nconf-file=/tmp/dnsmasq.ads” >> /tmp/dnsmasq.conf
logger Restarting dnsmasq
killall dnsmasq
dnsmasq –conf-file=/tmp/dnsmasq.conf

========================== 代码如上 =========================

  3.最后进入系统指令页面,Administration (管理)-> Management (管理)找到 Cron ( 计划任务 ), 点击 Enable(启用), 然后在下面“Cron 附加任务”(Additional Cron Jobs)贴入

========================== 代码如下 =========================

* 1 * * * root /tmp/.rc_startup

========================== 代码如上 =========================

在页面底部保存设置,并且重启路由器,搞定!这段代码的作用是每隔一小时自动更新一次反广告列表。

  清空游览器缓存+重启系统,打开新浪、网易等大型网站,应该能看不到大量广告了吧。不过必须申明下,漏网之鱼肯定有的,效果比不上Adblock Plus。