上一篇文章说到了如何在OPENWRT上安装SHADOWSOCKS使用透明代理+去DNS污染,可是只完成了配置还是有诸多弊端的。
比如说屏蔽列表是死的,互联网内容千变万化,恐怕过不了几周你的列表就过时了;
比如说软件更新,总不能每次都这么麻烦去手动上传,scp……blablabla……
所以,我们必须要有一个一劳永逸的办法,让一切自动化!
首先,就是
自动更新DNS转发列表
在目录/usr/bin目录下做如下命令:
1 2 3 4 5 6 |
touch updatednsmasq //创建一个空文件 chmod +x updatednsmasq //给予执行权限 vi updatednsmasq //编辑它: |
然后给updatednsmasq输入以下内容:
1 2 3 4 5 |
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 |
输入:wq然后回车退出保存。
这样就新建了一个用来更新那两个列表的脚本,然后我们新建一个计划任务,让它每天中午12点跑一次。
在你的路由器管理web页面,找到“系统”→“计划任务”,如下图
然后在空白的框框里输入如下内容:
1 |
* 12 * * * /usr/bin/updatednsmasq |
这样,每天中午12点,只要有网,那么DNS这两个列表就都会更新一次!
软件更新
软件的作者提供了更新源,那么以后你可以在OpenWRT上直接使用包管理工具进行更新了!包括CLI和web页面!
http://openwrt-dist.sourceforge.net/releases/
然后,打开路由器管理页面,找到“系统”→“软件包”→“配置”选项卡,在其中添加如下两行:
1 2 |
<del>src/gz openwrt_dist http://openwrt-dist.sourceforge.net/releases/brcm63xx/packages src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/releases/luci/packages</del> |
不过,由于sourceforge.net是被点名的域名,所以你需要配置成功SS之后,才能更新到这两个列表。
这个更新源已经下架,就不要再更新了……
长时检测SS状态,跪了自动重启
长时间挂着SS,难免会跪,所以我们同样可以写一个脚本,让它能够在规定的时间之后检测SS的连接状态,如果正常,则退出;如果断了,则重启SS服务。
我们使用wget命令来测试,让wget尝试下载一下Google日本的首页,就是尝试一下,不是真的下载下来,一旦成功连接则说明SS正常,然后一旦失败,则测试百度主页,成功说明SS跪了,重启服务;如果也不成功,说明网跪了,退出。
代码如下,按照上边写脚本的过程在目录/usr/bin目录下创建脚本并予以执行权限,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/sh LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") wget -4 --spider --quiet --tries=1 --timeout=3 www.google.co.jp if [ "$?" == "0" ]; then echo '['$LOGTIME'] No Problem.' exit 0 else wget -4 --spider --quiet --tries=1 --timeout=3 www.baidu.com if [ "$?" == "0" ]; then echo '['$LOGTIME'] Problem decteted, restarting shadowsocks.' /etc/init.d/shadowsocks restart else echo '['$LOGTIME'] Network Problem. Do nothing.' fi fi |
同样,将下面语句加入计划任务,包括每隔十分钟检测一次SS并且每天凌晨1点清空日志文件避免日志过长塞满你的路由器那点可怜的内存╮(╯▽╰)╭
1 2 |
*/10 * * * * /root/tester >> /var/log/shadowsocks_watchdog.log 2>&1 0 1 * * * echo "" > /var/log/shadowsocks_watchdog.log |
本文由 落格博客 原创撰写:落格博客 » 路由器刷OpenWRT使用ShadowSocks透明代理进阶配置
转载请保留出处和原文链接:https://www.logcg.com/archives/868.html
跪了自动重启那部分受教了,我拿去改改能用在别的程序上