项目二十一--便携式广告过滤路由器

来自Microduino Wikipedia
跳转至: 导航搜索

大家都有这样的经历,经过一个星期紧张而忙碌的上班时间,终于到了周末,打开电影网站,追一下漏掉的美剧或者电影。要等30s秒的广告!顿时 心情不好了,想看的意愿都减半了。遇到这种情况,我们能不能装个广告过滤插件呢?当然可以。但是问题又来了,是把插件装载电脑上还是装载路由器上呢? 作为一名geek,安装在路由器上才会更有成就感。好吧,本项目就是介绍如何让MicroWRT变成一个带有广告过滤功能的路由器。

广告过滤方案

目前在openwrt上实现广告过滤功能,有多种方案,总的来说有dnsmasq和nginx,一种是走代理,一种是重定向。而开源的过滤广告方案有openGG,adbyby等。 本教程主要使用adblockplus提供的过滤列表。


固件定制

延续我们以前教程的思路,我们首先介绍一下,如何在openwrt上配置实现广告过滤功能的软件。在这个方案中,我们要用到dnsmasq,所以先要配置它,具体如下图所示:

文件:Dnsmasq.png
dnsmasq configuration

将编译好的固件烧写到microWRT上,重新启动。

配置MicroWRT

1. 登陆到MicroWRT,并运行下面的命令,从adblockplus官网上下载列表,当然前提是要参考我们的基础教程,将microWRT设置成可以上外网。

 wget --no-check-certificate -qO - https://easylist-downloads.adblockplus.org/chinalist+easylist.txt | grep ^\|\|[^\*]*\^$ | sed -e 's:||:address\=\/:' -e 's:\^:/127\.0\.0\.1:' > /etc/adblock.conf
 

通过下面的命令,将列表写入dnsmasq

 grep conf-file /etc/dnsmasq.conf || echo -e "\nconf-file=/etc/adblock.conf" >> /etc/dnsmasq.conf

重启dsnmasq

 /etc/init.d/dnsmasq restart
 

2. 修改crontab

通过SSH登陆到microWRT上,crontab -e 编辑计划任务,加入如下内容:

每天19.30自动更新列表:

 30 19 * * * wget --no-check-certificate -qO - https://easylist-downloads.adblockplus.org/chinalist+easylist.txt | grep ^\|\|[^\*]*\^$ | sed -e 's:||:address\=\/:' -e 's:\^:/127\.0\.0\.1:' > /etc/adblock.conf   
 

每天6.30自动重启dnsmasq

 30 6 * * * /etc/init.d/dnsmasq restart
 

当然,玩家也可以对照自己的需求更改即可,其中,时间参数分别如下:

 [minute] [hour] [day of month] [month] [day of week] [program to be run] 
 

具体的cron用法,可以问问“度娘“

通过上面的设置,我们的MicroWRT就能实现广告过滤的功能的。赶快动手试试吧。。