Shadowsocks for OpenWRT / LEDE 拾遗

本文是《Shadowsocks + ChnRoute 实现 OpenWRT / LEDE 路由器自动翻墙》的补充,介绍了一些额外的操作,可以解决一些特定的问题。本人也会持续更新这篇文章。

目录:

1、让路由器本身走SHADOWSOCKS

2、使用作者提供的软件源安装及更新SHADOWSOCKS

3、使用计划任务检测连接状态,发生异常时候自动重启SHADOWSOCKS

4、使用计划任务自动更新CHNROUTE(IGNORE.LIST)文件


1、让路由器本身走shadowsocks

首先shadowsocks的访问控制设置中,“代理自身”这一项,根据自己需求选择“正常代理”或者“全局代理”:

然后,切换到WAN口设置→高级设置,取消“


2、使用作者提供的软件源安装及更新shadowsocks

注:由于CC15.05正式版开始加入ipk签名,使用下面的软件源会在opkg update时候遭遇签名验证失败(signature check failed),此时需要找到 /etc/opkg.conf 文件,将 option check_signature 1 这一行注释掉: #option check_signature 1 

软件源位置:http://openwrt-dist.sourceforge.net/packages/

由于该地址被部分ISP所墙,所以要以前面“1”的步骤为基础才能进行这一步。

打开Luci,定位到“系统”-“软件包”-“配置”选项卡,然后在设置中现将下面一行注释掉,如下:

接着在末尾添加软件源:

OpenWrt:

LEDE(请添加到自定义软件源中):

请根据自己的CPU型号将ar71xx/arm_cortex-a9_vfpv3替换成相应的文本。最后点击提交,然后回到“动作”选项卡,点击刷新列表,静待刷新完成(根据网络条件不同,可能会比较久,不要刷新页面)。

接下来可以在过滤器中输入关键词进行搜索,分别输入shadowsocks和chinadns进行搜索,找到最新的shadowsocks-libev-spec, luci-app-shadowsocks-spec, chinadns-c, luci-app-chinadns-c,这四个分别点击安装即可;顺带说明,此软件源同样包含ShadowVPN和Redsocks2极其luci-app,作者都是a65535,有需要的可以自行下载安装。

而如果你需要让系统定期检查自动更新,可以参照:OpenWRT 自动更新软件包脚本


3、使用计划任务检测连接状态,发生异常时候自动重启shadowsocks

这一个也是以完成“1”的步骤为前提的,首先添加可信根证书并安装支持ssl的wget:

然后新建一个脚本文件,比如/root/ss_watchdog:

把执行权限加上

该脚本通过尝试下载google主页(只是尝试下载并不会真的下载到路由器)来检测代理是否连通,如果尝试失败,会再次尝试下载百度主页,如果失败说明网络不通,此时什么都不做,如果下载成功,说明shadowsocks异常,那么就重启shadowsocks。 –timeout=10是指的超时时间,最好根据自己的链接速度调整一下,不要过长或者过短;网址可以根据自己的情况换成其他。

下面的步骤就是向crontab加上计划任务了(可以直接在Luci里面添加),比如每10分钟执行一次检测,就添加如下内容:

倒数第二行,前面的*/10就是每十分钟,接下来的4个* 是指任意小时、天、月、星期,这样一来 就是每10分钟执行一次了;后面是执行的命令/root/tester。

日志会输出到/var/log/shadowsocks_watchdog.log,可以通过它检查计划任务运行状态。

可以在8分的时候,停止shadowsocks,然后静待到时间后,查看shadowsocks是否已经启动,并且查看日志文件。

而最后一行,在周日凌晨1点,定时清空日志文件,否则,如果你长期开着路由不管,日志文件会变得非常大。


4、使用计划任务自动更新chnroute(ignore.list)文件

1.新建一个文件 /root/update_ignore_list 写入如下内容:

2.使用 chmod +x /root/update_ignore_list 添加可执行权限

3.打开路由器管.理页面 系统 - 计划任务 填写如下内容(每天 04:30 执行):

 

159 条评论

  1. abv76 回复

    楼主,计划任务自动更新CHNROUTE(IGNORE.LIST)文件
    里面的/etc/ignore.list 文件,
    应该是改成chinaDNS->CHNRoute File设置里面的 /etc/chinadns_chnroute.txt 名字吧?

    1. cokebarcokebar 文章作者 回复

      文件名根据自己的配置更改

      1. abv76 回复

        明白了,必须根据SS和etc里面list文件修改成chinadns_chnroute.txt或者ignore.list

    2. 哈哈 回复

      lz這個ignorelist跟chnroute.txt不一樣。可以相互替代嗎?

      1. cokebarcokebar 文章作者 回复

        内容是一样的 使用一个即可

    1. rainsun 回复

      编辑/etc/opkg.conf 文件,将 option check_signature 1 这一行注释掉或删除

  2. mk47 回复

    /bin/sh: /root/tester: not found
    请问一下,自动检测ss是否掉线的日志显示这个结果是否正常,是不是tester脚本没给足权限?

    1. rainsun 回复

      找个编辑器如UE32 打开文件把编码改为Unix UTF-8

  3. mk47 回复

    作者你好,“/bin/sh: /root/tester: not found”这个问题已经解决了。脚本和计划任务也正常工作了。但是在遇到ss掉线,日志显示“Problem decteted, restarting shadowsocks”,却没有重新连接ss,只有重启路由后ss才正常。这是不是脚本命令已经对最新版的openwrt或者是ss无效了。

    1. cokebarcokebar 文章作者 回复

      证明问题可能不是ss-redir引起的 检查其他组件

  4. 引用: Shadowsocks + ChnRoute 实现 OpenWRT 路由器自动翻墙 | 清风明月

  5. 引用: Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙 | 清风明月

  6. Jerry 回复

    您好,我现在使用dnscrypt来解析国外的ip,已填入chinadns设置中。
    测试联通性的脚本无论如何都返回的是no problem,请问这个和dnscrypt是否有关?
    如果有关,我应该如何修改?

  7. 引用: 折腾一下斐讯K2用LEDE – Hey Bro, Wassup?

  8. suika 回复

    软件源位置:http://openwrt-dist.sourceforge.net/releases/

    地址过旧,应修改为:http://openwrt-dist.sourceforge.net/packages/

  9. lilunxm12 回复

    去http://openwrt-dist.sourceforge.net/packages/看了看,版本都是最新的啊,作者没有停更

    1. cokebarcokebar 文章作者 回复

      更新了里面的链接以后,段标题忘了改了

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请输入正确的验证码