在这个秋风送爽手脚冰凉的夜里我又不出意外地失眠了,拿 Pad 下棋。因 iPhone 不在身边,狂输不止。期间底部广告频弹,不时误点,跳到浏览器还要再切回。往复如是,心生厌念,磨刀霍霍向广告。臭棋篓子多少都是这样,拉不出屎怪茅坑歪。说到茅坑,有一次一只熊在坑上蹲着,旁边一只兔子。熊问你掉毛么兔子骄傲地说不掉熊说我没带纸就拿兔子擦了屁屁。过了几天熊又来蹲坑,旁边一只棕色松鼠,熊又没带纸感叹到最近没看见兔子啊。松鼠听见了说尼玛我就是前几天那只兔子!
天是越来越冷了,秋裤得穿啊。听说,不穿秋裤的,冬天能冻出尾巴来。到时候还要到医院去剪掉;疼不说,还要在不知多大岁数的女护士面前脱裤子,多难为情。这都是题外话,咱们书归正传,剪掉以后在伤口上贴个创可贴比较好,不然容易冻疮。
好了,来看农村魔幻现实主义的可以回栏了,下面是技术内容了。
那为什么要用路由器挡广告呢?别的不行么?
一说挡广告,有那么一小撮人,最先想到“Adblock Plus”这类浏览器扩展。方便,装上不用管。清静,装上不用管。且不提还有装不上这扩展的 I 什么啊 O 什么啊,除了浏览器那可还有好几车软件连着网呢。那下载的、聊天的、输入的、卫士的,没十几个广告那么大用户界面上放什么?放少了都没面子。丢人。连图片儿,带链接,那一定得用广告,把窗口给填满了。这些,多牛掰的浏览器扩展都歇菜。
稍微有点儿钱,再买个手机,别管苹果鸭梨的,反正能上网。装几个免费的 App,广告就跟贞子一样一个劲儿从屏幕里头往外拱,一不小心就钻出来了。
再有点儿闲钱,买个平板,别管苹果鸭梨的,反正能上网。要不挡挡广告,就跟把电梯间那块儿大屏幕从墙上掰下来,挂身上,差不多。
所以,把广告拦截在路由器上,对各种设备上各种程序各种 App 的广告统统管用,客观上也减少流量增快网速。
手头儿是价值一百二十块钱的 Buffalo g300nv2,小,破,丑,旧。这路由器就一好处,刷不死。当然如果有人愿意拿 Linksys E4200 跟我把 g300nv2 换去练手,我大概也会完全同意吧。
这个牛叉闪闪的闪光点有一个辛酸的来源,它其实是一个致命的安全缺陷。此路由在开机后几秒会毫不抵抗地接受任何数据,于是碰上行家,刚通电的时候,随便灌点数据进去,就能让它彻底瘫痪丢失所有配置,还要找正确的 firmware 再灌回来。自然和大多数领域一样,不懂行的更让人恐惧。只要不懂行的高跟鞋踩上一脚,或者浇上半杯可乐,灌什么也救不回来了。
于是给它灌了 DD-WRT,下面就以 DD-WRT 为例,讲讲如何用路由拦截广告。
原理自然很简单,就是把送广告的域名都指向 127.0.0.1,然后定期自动更新广告域名列表。你可能想到 hosts 文件,原理是一样的,这里用到路由器上广泛存在的 dnsmasq 服务。SpeedTao
首要问题是,广告域名列表从哪里来。国外确有一些更新频繁的广告域名列表,可我们连自己的广告都看不完,哪有时间看他们的。好在我们有 chinalist,尤其是 chinalist lazy,可从里面把纯域名的摘出来,中文为主英文兼顾还定期更新,理想列表。做成启动脚本定期更新就好了。
下面就是具体实现了,全网络界面操作,不沾命令行,逃不过会稍微解释一下:
1. 进入 DD-WRT 网页管理界面,Services(服务) -> Services(服务),DNSMasq 和 Local DNS(本地 DNS) 均设置成 Enable (启用)。滚到页面底部保存。SpeedTao
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 调用。SpeedTao 最高.
4.进入 DD-WRT 网页管理界面,Administration -> Management, 找到 cron,enable, 然后在下面”Additional Cron Jobs”贴入
* 1 * * * root /tmp/.rc_startup
页面滚到底,保存,重启路由器。成功。可清空浏览器缓存后访问几个大网站看看,虽然效果没有 Adblock Plus 彻底,但也相当明显的。何况,可以打开 Adblock Plus 拦截漏网之鱼么。
via Truth Telling
这个很牛逼啊……不错……回去试试
沙发没了,蹲板凳慢慢看。顺带也介绍下硬件嘛
很强大,这个‘灌DD-WRT’是不是先要刷路由的固件啊..
太强大,只能依葫芦画瓢,但没教程也不敢瞎折腾..求指导!
是要刷 DD-WRT 固件,根据你路由器型号网上搜教程吧。
牛逼啊,晚上学着试试看
求教 OpenWrt如何让防广告
@inns, 原理一样啊。你都用 OpenWRT 了应该能看明白脚本是怎么回事啊。
我是来看农村魔幻现实主义的
@scavin, 我只能看懂 农村魔幻现实主义
关于这个,我一开始也是这么做的,还自己写了个定时更新翻墙hosts的脚本,但是很多浮动的元素没有过滤掉,后来干脆在路由器上装了和squid,用正则表达式过滤广告
@kevi, 额如果要精密了做有很多做法。包括 pixelserv 什么的,但是小破路由器跑 squid 会死的。
@kevi, 浮动元素一半是广告联盟,一半是广告的某个JS导致..如果是后者,你找到具体地址就可以拦截了.
@Thruth 喂喂。。。 Speedtao的广告不要到处贴~ 第三步最后面的“ speedtao最高” 是恶意卖萌吗?
@cyr1l, 就是在看你们有没有认真看而已。。
第一次看见这么小众这么长的文
+65535,在GR里看到这么长,下意识的滚上去看看到底是不是小众的文章==
Apple的Time Capsule可以这么玩么?
http://code.google.com/p/chnroutes/
类似的思路。
卖萌呐。。。SpeedTao还得反选才能看见,还是在rss里不小心看到的
对内容修改了下…
结果PC不能DHCP获取IP了,路由是941 V3@DD15778,最后是貌似基本拦截不到广告…
#!/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 – https://adblock-chinalist.googlecode.com/svn/trunk/adblock.txt |
wget -O – https://easylist-downloads.adblockplus.org/easylist.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.con
别乱改啊亲,China lazy list应该已经包含easylist了。另外不同版本 DDWRT sed 命令版本和行为也不一样。telnet/ssh 到路由器上看看发生了神马吧。
@Thruth, 严格安装教材操作了,配置也确认了几次,dnsmasq.conf 里有conf-file=/tmp/dnsmasq.ads 这一行
dnsmasq.ads大小0。。。。
我也知道这个脚本不影响DHCP,可问题就是我手机和PC都不能获取IP了,要手动指定。。。无解,只能认为是路由器固件的BUG。。
@named, 补充,用上面的配置,依旧不行,不能DHCP获取IP,广告更多了。。看来我上面的规则是有效的,不过我用WINSCP进路由看dnsmasq.ads大小是0,很奇怪。。。
@named, 此脚本和 DHCP 完全无涉,不过你开启 Local DNS 了么?看 dnsmasq.conf 里面有没有 conf-file=/tmp/dnsmasq.ads 这一行,另外你最上面给出的脚本最后少了一个 f. 是 conf 不是 con.
有一个问题是,如果路由器启动连不上网,那必然 .ads 文件生成不了,那就只能等以后 cron 定期处理了。
@named, 可 ssh/telnet 进去逐行运行看看问题出在哪里。 🙂
@Thruth,
之所以會為0是因為要把前面的管道
可能是因為網頁顯示問題
必須粘貼後自己編輯
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
把這三句粘在一起 |之前各有一個空格
@named, 後面一句也是
前面加個sleep等待完全啟動
好方法!
不过鉴于我很懒,还是直接用adblock算了。以前用某o时,是用adblock++什么的。现在偶尔用某i时,看到满屏防测漏的广告条就有一种身为ff用户的优越感。
原来是truthtelling的文章。
在小众圈待久了,觉得几个面孔都是熟的。比如xbeta什么的。无论是g+还是小众还是善用上面……反正就是这么个圈子里。
话说如何检测是否成功了呢?搞了不知道成功没有…
@注册失败, 见文章最后一句。
@Thruth, 兄弟qq多少??
@注册失败, 不用QQ,也不提供技术支持。
@Thruth, 我只是看见我贴的脚本位置和你贴的图不一样…
用路由来过滤广告是个不错的思路,但是这种方法有一定的局限性。
比如路由必须要支持DD,其次是只能在有管理权限的路由上操作。
所以直接在PC端、手机等移动终端过滤最好。
好东西,我就是烦手机上的广告,无奈死了……
我喜欢这个小编 ^_^
可以多来点路由器应用的文章,正好可以学习下
下一讲来讲用路由器实现无人值守bt下载的吧
@eesa, 路由脱机是最简单的,如果你有seedbox的经验会发现这就是一样的
本地跑了 Apache 的表示重定向到 127.0.0.0/8 里会在
/var/log/http/
里留下大量 404 错误。所以建议还是指向 10.0.0.0/8 或者 172.16.0.0/16 之类的段吧。(其实一直想不通为啥广告拦截都喜欢指向 loopback 而不是其他的保留段?)
@wzyboy, 自己回复自己一下。发现小众的
/out/
不支持 https:// 开头的 URI。这条用 http:// 试试……偶的G300N V2在家里用着原厂固件呢。。。刷了OpenWRT之后DNS经常出问题,不熟悉DD,没再折腾。。现在HG255D刷着OpenWRT做脱机,PT爽歪歪。。
另外,过滤规则偶还是喜欢稻米鼠博客里绵羊大神的。。。。
进来就看到右下角的大闸蟹swf广告,应该是被武汉电信推送的,真恶心啊
看到效果了
solidot.org/的rss文章跳转到da.feedsportal.com被阻挡了,变得太麻烦了
前面都是浮云,后面才是重点。
hostx无压力
貌似不错,只是担心把路由器刷坏了。。。
这个东西真心不错啊。在下着实喜欢
这作者活在哪个平行世界线上,opera早就能装扩展了
而且opera不装扩展一样能过滤广告,FF Chrome还要纠结adblock更新不及时,youku之类要么有广告,要么就是黑屏30s。opera自带urlfilter完全没有压力
@xwdon, 在卖萌吗?
@xwdon, 少装逼吧,作者可是opera的员工
@hans, 除了最后一句稍微夸张了点,其他的都是实话,踩到你的JB了?
这个不错,公司和家里的路由器都刷了系统,看看怎么弄。
求屏蔽运营商桌面广告教程
请问Tomoto的路由应该怎么设置啊? 第四、第五步没有啊?
基本上我常用软件都是vip,木有广告的,而且hosts就可以,还折腾到路由器是吃饱了撑着
蠢死了。等你家里有5台电脑,2个平板3个手机的时候,hosts累不死你。
我也用的这款路由器,挺薄的,就是没有流量控制,DDWRT的吸引力也就在这里了? 刷了之后没什么变化吧?
v24 mini 可以用这个脚本 去广告吗
mini不行,拖慢路由器太明显,会导致不稳定。
有整理好的广告域名放出来啊,修改那个chinalist累死了
额,,不知道TP-LINK的路由器怎么设置的说???
不懂,就算看懂了也不敢拿自家那个路由器刷去~~~无奈
认真按上面说的一步一步来了,没作用。失望。
OpenWrt没有类似的设置么 期待OpenWrt的版本。。。
刚买了个 841 V3
不错不错
在841v7上面试了下,。有点效果。网页打开却是变慢了。哈哈。谷歌浏览器adblock屏蔽的广告,IE上存在。
广告还是挺多的,要是能把android上的广告也拦截就好了。
挖坟中。。。。图挂了,呼叫站长
@文龙 图挂了,基本上木有了
小编,现在chinalist已经不能使用了。有什么好的list啊?
表示弄了以后感觉有影响,打开网页明显速度变慢了