上一篇文章說到瞭如何在OPENWRT上安裝SHADOWSOCKS使用透明代理+去DNS污染,可是只完成了配置還是有諸多弊端的。
比如說屏蔽列表是死的,互聯網內容千變萬化,恐怕過不了幾週你的列表就過時了;
比如說軟件更新,總不能每次都這麼麻煩去手動上傳,SCP ......等等等等等等......
所以,我們必須要有一個一勞永逸的辦法,讓一切自動化!
首先,就是
自動更新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
跪了自动重启那部分受教了,我拿去改改能用在别的程序上