Skip to content

Latest commit

 

History

History
82 lines (56 loc) · 6.02 KB

03.6.md

File metadata and controls

82 lines (56 loc) · 6.02 KB

OpenWrt自动更新设置和屏蔽广告

OpenWrt路由器自动更新国内重要网站名单

登陆路由器后:

root@OpenWrt:~# cd /usr/bin
root@OpenWrt:~# touch updatednsmasq
root@OpenWrt:~# chmod +x updatednsmasq
root@OpenWrt:~# vi updatednsmasq

增加如下内容:

#!/bin/sh                                                                                                                                                               
cnlist() {                                                                                                                                                              
	wget -4 --no-check-certificate -O /etc/dnsmasq.d/accelerated-domains.china.conf https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf
	wget -4 --no-check-certificate -O /etc/dnsmasq.d/bogus-nxdomain.china.conf https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/bogus-nxdomain.china.conf
} 		
cnlist

国内广告屏蔽

dnsmasq支持基于域名的广告屏蔽方式,这种屏蔽方式比较粗糙,屏蔽效果会比浏览器广告屏蔽插件差很多,并且可能导致有些网站不能顺利打开。

在updatednsmasq文件中加入:

adblock() {                                                                                                                                                             
    wget -4 --no-check-certificate -O - https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt |                                                     
    grep ^\|\|[^\*]*\^$ |                                                                                                                                           
    sed -e 's:||:address\=\/:' -e 's:\^:/127\.0\.0\.1:' | uniq > /etc/dnsmasq.d/adblock.conf                                                                        
                                                                                                                                                                        
    wget -4 --no-check-certificate -O - https://raw.githubusercontent.com/kcschan/AdditionalAdblock/master/list.txt |                                               
    grep ^\|\|[^\*]*\^$ |                                                                                                                                           
    sed -e 's:||:address\=\/:' -e 's:\^:/127\.0\.0\.1:' >> /etc/dnsmasq.d/adblock.conf                                                                              
} 

最后完整的updatednsmasq就是这样:

#!/bin/sh                                                                                                                                                               
cnlist() {                                                                                                                                                              
	wget -4 --no-check-certificate -O /etc/dnsmasq.d/accelerated-domains.china.conf https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf
	wget -4 --no-check-certificate -O /etc/dnsmasq.d/bogus-nxdomain.china.conf https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/bogus-nxdomain.china.conf
} 		
adblock() {                                                                                                                                                             
    wget -4 --no-check-certificate -O - https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt |                                                     
    grep ^\|\|[^\*]*\^$ |                                                                                                                                           
    sed -e 's:||:address\=\/:' -e 's:\^:/127\.0\.0\.1:' | uniq > /etc/dnsmasq.d/adblock.conf                                                                        
                                                                                                                                                                        
    wget -4 --no-check-certificate -O - https://raw.githubusercontent.com/kcschan/AdditionalAdblock/master/list.txt |                                               
    grep ^\|\|[^\*]*\^$ |                                                                                                                                           
    sed -e 's:||:address\=\/:' -e 's:\^:/127\.0\.0\.1:' >> /etc/dnsmasq.d/adblock.conf                                                                              
} 
cnlist
adblock

计划任务:定时更新dnsmasq配置文件和自动重启 ss-redir

root@OpenWrt:~# crontab -e

输入以下内容:

*/30 * * * * isfound=$(ps | grep "ss-redir" | grep -v "grep"); if [ -z "$isfound" ]; then echo "$(date): restart ss-redir...">>/tmp/log/ss-monitor.log && /etc/init.d/shadowsocks restart; fi
* 12 * * * /usr/bin/updatednsmasq

计划任务说明:

  • 每半小时检查shadowsocks-libev 客户端,如果退出就自动重启
  • 每天中午12点更新dnsmasq配置文件

计划任务注意事项(2014-09-24)

目前的预编译固件是启用了计划任务的,这会有潜在的不确定性,如果更新时下载的文件存在错误,导致dnsmasq无法读取,可能造成dnsmasq无法启动,翻墙功能自然失效。

如果你刷了预编译固件后,某一天突然不能翻墙了,这时设置客户端的IP地址为和路由器同网段,登陆路由器,用ps命令查看dnsmasq进程是否启动了,如果没有启动,就重刷固件或者 用原来的文件代替 路由器里/etc/dnsmasq.d/下的文件。

第一次刷预编译固件后,建议立即禁用自动更新 dnsmasq.d目录下的文件,运行稳定一段时间后,需要时再加上计划任务。

下次发布固件时,将默认不启用计划任务。

参考: