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及后续版本。

使用OpenWrt 19.07及后续版本的用户可能要安装 luci-compat 才可以正常使用 luci-app-shadowsocks 

所需软件列表

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

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

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

参照 http://openwrt-dist.sourceforge.net/ 里的说明:

首先添加 a65535 的 gpg key,只有这样,第三方的包才能通过签名验证。执行:

打开Luci,定位到“系统”-“软件包”-“配置”选项卡,在“自定义feeds”末尾加入两行并点击“提交”:

请根据自己的CPU架构(可以执行 opkg print-architecture 查看,或者参考“发行版软件源”里的URL里的文本),将mipsel_24kc替换成相应的文本,最后点击提交。

然后执行命令 opkg update 更新软件列表,然后执行下列命令安装依赖包以及shadowsocks相关的软件:


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

如果直连遇到困难(无法连接或者过程中下载总是中断),请继续下面的步骤来安装。实测国内许多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,158 条评论

  1. 头像小白 回复

    又和飞羽大佬来聊天了:
    大佬trojan更新1.15.1了支持透明代理,目前配置文件增加了(”run_type”: “nat”,)nat模式。
    https://trojan-gfw.github.io/trojan/config.html 这个模式和ss很相似,并且恩山上面有人出了一篇教程,是基于这个nat模式的,我尝试配置了一下路由器(OP19.07.2)目前手机端已经成功(使用的是大佬的gfwlist to dnsmasq rule file with ipset),我想大佬可以尝试出一下教程吗!或者优化一下恩山的教程,有个时候没有luci也是可以的。
    附上恩山地址: https://www.right.com.cn/forum/thread-3708391-1-1.html
    还是来打扰大佬了。晚安大佬

    1. cokebarcokebar 文章作者 回复

      你暂时用那个教程就好了 不用uci的话,gfwlist模式那个就差不多够了。更进一步的用上uci、甚至luci的虽然有,但是没发现适合我的。最近正在收集研究新的东西,发现新东西真的不少。如果能最终搞出一个自己满意的我会出教程的。这个站点毕竟还是根据我自己折腾的经历总结写出的文章,如果方法不适合我自己,即使这个方法对其他人有用我应该也不会写毕竟精力有限

    2. cokebarcokebar 文章作者 回复

      找到了一个功能非常完整的透明代理的配置脚本,目前研究中:https://github.com/zfl9/ss-tproxy
      配合https://github.com/zfl9/chinadns-ng

      1. 头像小白 回复

        大佬编译了几个常见的IPK:链接:https://share.weiyun.com/59BH9Tt 密码:g69uwc
        老大笑啦基于op19.07.2

      2. 头像小白 回复

        大佬你好trojan的防污染DNS借用了你的gfw模式下面的防污染,但是目前还有一个不完美的地方是gfwlist列表更新,我想写一个dash文件然后计划更新,因为不懂所以照葫芦画瓢请您看一下错误地方
        #!/bin/sh

        set -e -o pipefail

        wget -O- ‘https://cokebar.github.io/gfwlist2dnsmasq/dnsmasq_gfwlist_ipset.conf’ | \
        /tmp/dnsmasq_gfwlist_ipset.conf

        mv /tmp/dnsmasq_gfwlist_ipset.conf /etc/dnsmasq.d/dnsmasq_gfwlist_ipset.conf

        if pidof ss-redir>/dev/null; then
        /etc/init.d/dnsmasq restart
        fi

  2. 头像小白 回复

    大佬谢谢了,我也去研究一下,到时候再见。一定会再见的

  3. 头像小白 回复

    大佬好像有人(openwrt-chinadns-ng和luci)https://github.com/pexcn/openwrt-chinadns-ng/tree/luci
    可以高一下啊!

  4. 头像deconf 回复

    大佬,求助!
    ss-server 报错
    ss-server[728]: 2020-04-03 20:22:46 ERROR: getpeername: Transport endpoint is not connected
    全篇都是这个报错,求助!

    1. cokebarcokebar 文章作者 回复

      如果不是异常频繁,可以无视这个错误,网络程序经常会遇到的一个错误,引发的原因有好几种

  5. 头像jhon Smith 回复

    朋友,咱们刚开始就一起,梯子账号失效了,我现在进不去,还是一起开车吧,非常感谢!

  6. 头像N 回复

    IPv6和IPv4双网的怎么同时翻墙呢?现在是ss填IPv4但是v6的不能翻墙,填v6地址v4不行

  7. 头像狐狸 回复

    最近梯子被拆得厉害,想把shadowsocks换成v2ray,要怎么操作呢?已经有v2ray的服务器了,手机单独上也是没问题的,想在路由里面搞一下。

    1. 头像Ryan 回复

      你至少要先说说自己的路由器是什么型号,CPU如果没有足够的主频,跑v2ray就是受罪。MT7621勉强可以跑,再差就基本不要想了。

  8. 头像Perphist 回复

    最近搬瓦工机场ip变更非常频繁 每次变更需要手动更改ss服务器配置 很蛋疼 尝试过换ssr plus之类的 但总觉得没这套方案好用( 这套方案最大的优点是轻量 我唯一的痛点就是ss服务器配置不支持域名了)
    本人受益于这套方案好几年了 相信也有人跟我有同样的痛点
    于是花了点时间学了下shell脚本和插件的代码 基于https://github.com/shadowsocks/luci-app-shadowsocks 加入了服务器地址的域名支持

    新的luci-app-shadowsocks下载地址:
    https://github.com/Perphist/luci-app-shadowsocks/releases/

    配合 https://cokebar.info/archives/850#part3
    可以做到无痛上网了

    ps. 当初偷懒不想折腾没搞自己的服务器 现在就要折腾插件 这是守恒定律

    1. 头像Perphist 回复

      对了 博主可以把这个更新到文章里 方便大家

  9. 头像Huto 回复

    大神想请教一下,按你的教程配置好,备份配置,然后使用imagebuilder编译openwrt19.07,ss,chinadns都提示如下package chinadns version 1.3.3-1 has no valid architecture, ignoring.
    我查了一下,大概是因为软件包里的cpu型号和固件包里不一致,imagebuilder里型号是vfpv3-d16,软件包里是vfpv3,刷好后可以修改opkg.conf,想请教编译imagebuilder时怎样修改。

  10. 头像小小白 回复

    楼主网站几天打不开吓得我以为楼主去喝茶了,楼主在这个加速的时代还是稳定一点好

1 2 76 77 78 79 80

发表评论

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

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