Shadowsocks + ChnRoute 实现 OpenWRT / LEDE 路由器自动科学上网

本站发布的三种使用 shadowsocks 在 OpenWrt / LEDE 上的自动科学上网方案:

1、Shadowsocks + ChnRoute 实现 OpenWRT / LEDE 路由器自动科学上网
2、Shadowsocks + Redsocks 实现 OpenWRT 路由器自动科学上网 (停止更新)
3、Shadowsocks + GfwList 实现 OpenWRT / LEDE 路由器自动科学上网

这篇文章介绍的方法基于aa65535的luci-app-shadowsocks/openwrt-shadowsocks,介绍了如何在OpenWRT / LEDE下配置自动科学上网,新版本支持在Luci下图形化配置,大大简化了配置过程。配置完成后,路由器本身获得自动科学上网能力,所有连入该路由的设备都可无障碍访问被墙的站点。是运行于路由器的透明代理。

方案简介
本文changelog

注:本文不再提供OpenWrt 15.05及以下版本的说明;仅支持LEDE 17.01, OpenWrt 18.06及后续版本

一、安装

适用于 openwrt-shadowsocks 3.0.1及以上版本,搭配 luci-app-shadowsocks 1.6.0及后续版本。

所需软件列表

方法一: 添加作者的软件源,直接利用opkg命令安装 (此方式快捷方便,推荐!)

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

前提是所用网络环境直连sourceforge.net和downloads.openwrt.org没有问题。

接下来可以直接使用作者的一键脚本,执行:

此方法手动的步骤

方法二: 手动下载软件包,上传至路由器后安装

如果直连遇到困难(无法连接或者过程中下载总是中断),请继续下面的步骤来安装。实测国内许多ISP,执行 opkg update 和 opkg install 下载安装的时候都可能会遇到卡住、中断的情况,请多试几次。如果尝试多次仍然失败,请参考下面的依赖列表,手动至官方下载站点手工下载。

详细步骤点击展开
二、shadowsocks 配置

登录Luci,指向“服务”,此时应该能够看到shadowsocks(中文界面下显示“影梭”)了。接下来进行shadowsocks的配置。

I. 添加服务器
II. 设置代理方案
III. 开启代理服务
IV. 额外的优化
三、DNS配置

到此虽然shadowsocks配置完成,不过还没有进行DNS部分的配置,只有完成了DNS的配置才能解决DNS污染并优化DNS解析,接下来的部分来对DNS的配置进行说明。

PS:DNS的调试可以使用dig

I. DNS转发链图示
II. DNS转发链的基本配置
III. DNS转发链的优化配置
四、按域名指定是否走代理(可选)

这一部分的配置用于替代 “三.III.2. 添加gfwlist和China-List配置文件”中的步骤。请在完成“三.III.2. 添加gfwlist和China-List配置文件”前面的配置后进行这一部分的配置。

下面的步骤会使用我编写的脚本来自动生成配置文件,脚本放在github维护,可能随时更新,可到gfwlist2dnsmasq, openwrt-scripts查看最近更新的动态。

先使用dnsmasq-full替换掉原有的dnsmasq,由于先卸载dnsmasq后很可能会导致后面下载dnsmasq-full包的时候无法域名解析,从而导致下载失败,因此这里使用一个取巧的办法,先尝试安装dnsmasq-full:

然后会收到错误信息(原因是文件冲突),dnsmasq-full也不会成功安装;但是不用管,因为此时dnsmasq-full的依赖包应该已经装好了。接下来到openwrt官网下载dnsmasq-full的包,举例:https://downloads.openwrt.org/releases/packages-18.06/arm_cortex-a9_vfpv3/base/dnsmasq-full_2.80-1_arm_cortex-a9_vfpv3.ipk

然后将ipk包上传到路由器/tmp目录,并执行如下命令:

I. China-List强制直连 自定义域名强制直连
II. GFWList强制走代理 自定义域名强制走代理
四、其他

一些强烈推荐的额外设置项(涉及到更新、维护)可以参考:《Shadowsocks for OpenWRT / LEDE 拾遗》

需要自己搭建服务器的,可以参考:shadowsocks – libev 服务端的部署

推荐的VPS商家见:https://cokebar.info/about

本博客有关 shadowsocks 文章合集目录

五、写在最后

本人作为一名普通使用者,水平有限,且文章也缺乏校审,肯定有错误存在,也有很多能改进的地方,如有意见或建议,请留言指出,万分感谢! 如果使用时遇到问题也欢迎留言,本人如果有空都会回复,不过请一定要将出错信息贴出来,有些错误信息需要到系统日志中查看。

2,082 条评论

  1. 头像小小白 回复

    lede17.01.4型号是newifi mini mt7620 安装的是mipsel 24kc的相关ipk,确定了没有少装.但是ss一直启动不了。

    1. 头像小小白 回复

      发现问题了是obfs-local的事情,老大如何填写obfs-local的参数了

      1. 头像小小白 回复

        config servers
        option alias ‘sample’
        option fast_open ‘0’
        option no_delay ‘0’
        option server ‘xxx.xxx.xxx.xxx’
        option server_port ‘xxxx’
        option timeout ‘600’
        option password ‘xxxxx’
        option encrypt_method ‘xchacha20-ietf-poly1305’
        option plugin ‘eg:obfs-local’
        option plugin_opts ‘eg:obfs-local;obfs-host=www.bing.com’
        或者是这样
        option encrypt_method ‘xchacha20-ietf-poly1305’
        option plugin ‘obfs-local’
        option plugin_opts ‘obfs-local;obfs-host=www.bing.com’
        但是结果是一样的启动不了,只要不配置option plugin和option plugin_opts 就启动正常,不知道是什么问题,是我的服务写错了吗。

  2. 头像小小白 回复

    option plugin_opts ‘obfs=http;obfs-host=www.bing.com’
    写的是这个但是还是启动不了

  3. 头像huto 回复

    两台一样的路由器,一台可以,一台不可以。也是去掉obfs就行,加上就不行。

  4. 头像小小白 回复

    我回去试一下发现有一个没有安装(教程要改一下了)如果开启了混合要安装simple-obfs_0.0.5-1_mipsel_24kc.ipk这个。

    1. cokebarcokebar 文章作者 回复

      加混淆安装simple-obfs即可,不过超出本文讨论范围了

  5. 头像小小白 回复

    问题反馈17.01.4 现在安装不了 shadowsocks-libev.ipk等一系列的ipk。以前17.01.2安装没有任何问题。
    root@LEDE:~# cd /tmp
    root@LEDE:/tmp# opkg install shadowsocks-libev.ipk
    Collected errors:
    * wfopen: shadowsocks-libevv.ipk: No such file or directory.
    * pkg_init_from_file: Failed to extract control file from shadowsocks-libevv.ip k.
    root@LEDE:/tmp# opkg install shadowsocks-libev*.ipk
    Unknown package ‘shadowsocks-libev’.
    Collected errors:
    * pkg_hash_fetch_best_installation_candidate: Packages for shadowsocks-libev fo und, but incompatible with the architectures configured
    * opkg_install_cmd: Cannot install package shadowsocks-libev.
    root@LEDE:/tmp#

  6. 头像小小白 回复

    老大打扰了,

    我太粗心了sorry。。老大是无敌的我自己的锅,构建错了,,

  7. 头像小小白 回复

    hi
    飞羽老大打扰了,一方面obfs的问题因为安装好了simple-obfs而已经解决,相关格式是:插件名称(obfs-local),插件参数(obfs=http;obfs-host=www.bing.com)http和www.bing.com随便填写;
    问题是另外一方面在DNS优化方面:III. DNS转发链的优化配置,按照相关教程执行出现如下反馈:
    Google search domains… Added
    Blogspot domains… Added
    twimg.edgesuite.net… Added
    Ipset rules not included.
    Converting GfwList to DNSMASQ_RULES… Done

    Cleaning up… Done

    Job Finished.

    root@LEDE:~# /etc/init.d/dnsmasq restart
    udhcpc: started, v1.25.1
    udhcpc: sending discover
    udhcpc: no lease, failing
    结果是连不了网了(国内外都不行)系统17.01.4没有优化DNS转发链的优化配置时联网没有问题,打扰了飞羽老大

    1. cokebarcokebar 文章作者 回复

      请排查dnsmasq的配置是否正确、是否正常启动并工作。/etc/dnsmasq.d文件夹下除过dnsmasq的配置文件外不能有任何其他文件

  8. 头像小小白 回复

    谢谢老大这么快回复我。dnsmasq.d权限是755,文件夹下就2个文件,分别是dnsmasq_gfwlist.conf(644)和accelerated-domains.china.conf(644),但是因为是III. DNS转发链的优化配置部分,所以没有dnsmasq full安装。启动方面是启动了的。重启命名后出现如下反应:
    root@LEDE:~# /etc/init.d/dnsmasq restart
    udhcpc: started, v1.25.1
    udhcpc: sending discover
    udhcpc: no lease, failing
    root@LEDE:~#
    问一下飞羽老大这个查看是否正确。
    我又重新配置了一下
    This script will try to convert some of the regex rules. But you should know this may not be a equivalent conversion.
    If there’s regex rules which this script do not deal with, you should add the domain manually to the list.

    Google search domains… Added
    Blogspot domains… Added
    twimg.edgesuite.net… Added
    Ipset rules not included.
    Converting GfwList to DNSMASQ_RULES… Done

    Cleaning up… Done

    Job Finished.

    root@LEDE:~# /etc/init.d/dnsmasq restart
    udhcpc: started, v1.25.1
    udhcpc: sending discover
    udhcpc: no lease, failing
    现在问题是重新配置这一步,在配置的过程中路由器可以连接外网下载相关的配置文件,但是电脑连上路由器不能去外网。

    1. cokebarcokebar 文章作者 回复

      你看一下那句话的意思你就应该明白了,说的是目录中已经有了一个配置文件(/etc/config/dhcp),且和ipk包里的原配置文件不同,所以安装时候没有覆盖现有的配置文件,而是将ipk包里的配置文件保存为了(/etc/config/dhcp-opkg)。这条error用不着理会

  9. 头像小小白 回复

    飞羽老大,按照三、按域名指定是否走代理(可选)一切正常。目前成功爬墙谢谢老大。我不知道III. DNS转发链的优化配置是我个人设置的问题还是教程要更新。希望可以帮助老大和自己一起排除错误。
    谢谢飞羽大大

发表评论

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

请输入验证码 * 请输入正确的验证码