[OpenWrt] 自动检测丢包率并切换 Shadowsocks Server

手上有两个 VPS,有时候日本丢包会丢到生活不能自理,希望 Openwrt 能够自动把 shadowsocks 切换到美西的 VPS,于是,写了一个每 10 分钟测一次丢包率的 bash,如果其中一个 VPS 丢包率超过 10%,就切换到另一个。

2016/12/13 更新:

做了个简化版,不需要两个丢保值进行对比,只要有一个丢包,就切到另一个。

原版:

以上代码放入/etc/shadowsocks/test2.sh 中,添加 0755 执行权限,再在文件夹下创建两个 log,一个叫 current.log,里面输入 0,一个叫 shadow.log,里面留空,权限不用改。

current.log 用于记录当前是用的第几个 Shadowsocks Server,shadow.log 用于记录切换 Server 的记录,暂时还不知道怎样增量写入并且限制 log 文件大小,决定交给 Michelle 帮忙。

然后加入到 crontab -e 中,注意必须紧跟最后一行,写完这行之后再加一个回车。

启用计划任务:

检测 crontab 是否正常运行,用于 debug:

跑了差不多一周,切换次数并不多,还算理想,主要是周末的晚上偶尔会抽一下:

1 thought on “[OpenWrt] 自动检测丢包率并切换 Shadowsocks Server”

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.