DD-WRT 路由器拦截广告教程

原理自然很简单,就是把送广告的域名都指向 127.0.0.1,然后定期自动更新广告域名列表。你可能想到 hosts 文件,原理是一样的,这里用到路由器上广泛存在的 dnsmasq 服务。

首要问题是,广告域名列表从哪里来。国外确有一些更新频繁的广告域名列表,可我们连自己的广告都看不完,哪有时间看他们的。好在我们有 chinalist,尤其是 chinalist lazy,可从里面把纯域名的摘出来,中文为主英文兼顾还定期更新,理想列表。做成启动脚本定期更新就好了。

下面就是具体实现了,全网络界面操作,不沾命令行,逃不过会稍微解释一下:

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

2. 进入 DD-WRT 网页管理界面,Administration -> Commands,贴入如下脚本后,Save Startup:

#!/bin/sh

logger WAN up script executing

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. 上面其实是做了一个启动脚本,在路由器每次启动时运行。意思是,下载 China List Lazy,转换生成 dnsmasq 配置文件,再告知 dnsmasq 调用。

4.进入 DD-WRT 网页管理界面,Administration -> Management, 找到 cron,enable, 然后在下面”Additional Cron Jobs”贴入

* 1 * * * root /tmp/.rc_startup

页面滚到底,保存,重启路由器。成功。可清空浏览器缓存后访问几个大网站看看,虽然效果没有 Adblock Plus 彻底,但也相当明显的。何况,可以打开 Adblock Plus 拦截漏网之鱼么。

[via]

评论

Popular Posts

如何成为骇客

让我给你讲个笑话吧

Serv00进入伪root模式的方法

MineCraft客户端,服务器及相关工具

献给曾经青春有过感伤的你

教你读暗码了解牛奶的真正生产日期

你的名字。 君の名は。 (2016)

使用 Nginx 状态码 444 提升 HTTPS 服务安全性,屏蔽 HTTP 497 访问提示