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.lede-project.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:

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

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

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

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

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

五、写在最后

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

1,920 条评论

  1. 引用: ar9331路由器LEDE系统仅shadowsocks - outs - 宅…orz

  2. 小姐姐 回复

    飞羽如果有空可以更新一下!最近a大也在更新了,如果是其他原因。也可以暗示一下我们都理解

  3. JIANG 回复

    服务器管理中添加SS服务器只能填写IP地址,不能填写域名,大大有什么好办法不

    1. cokebar 文章作者 回复

      如果是那种IP经常变的,目前没有办法,理由如下:
      1. 虽然可以使用工具先解析域名再执行netfilter的设置(以前aa65535的版本曾经这么干过),然而在开机阶段很有问题,路由器刚开机,luci-app-shadowsocks的开机脚本执行到解析域名的时候,wan口网络、DNS服务都可能没初始化完毕,会造成域名解析失败,从而导致开机自启动失败;而且有的人的DNS防污染方案依赖于shadowsocks,那shadowsocks没启动前如何进行DNS解析?
      2. 这种服务器往往是通过DDNS来指向IP,IP变动频繁;对于电脑的ss客户端可能没问题,因为你每天会关机,第二天再开机会重新解析IP;而路由器一般是一开就不再关,连续运行很多天,那么如果路由器运行期间,服务器IP地址发生了变化,那就需要重启服务来解析新的IP,那么,谁来监控这个IP的变化?交给shadowsocks的init脚本肯定是不合适的,所以对于shadowsocks的init脚本还是要读入IP地址,而你可能需要自行编写一个脚本,每隔一段时间监测一下IP是否改变,如果改变,就将新的IP写入shadowsocks配置文件,并重启shadowsocks

  4. 五名独慧 回复

    你好,路由器我设置好了,电脑可以科学上网,但是手机不可以。请问怎么解决,谢谢!

  5. zxx 回复

    hi,羽哥更新了。我想问一下Chinadns上面的监听地址写什么了,写127.0.0.1吗?

    1. cokebar 文章作者 回复

      是的,127.0.0.1即可。如果想要LAN内其他设备也能访问ChinaDNS的端口,可以填0.0.0.0

  6. ke xiao 回复

    服务端内核和55都配置了tcp fast open,但是我路由器客户端一把tcp fast open的钩打上,透明代理就运行不起来,这是为什么呢

  7. kl 回复

    1、想实现路由访问的所有流量全局走shadowsocks,现在设置方案是路由本身全局+所有连接设备全局代理,dns全部走shadowsocksdns转发,运行正常,但有个问题,假如shadowsocks挂了,或者其他原因没有正常启动,会导致访问路由的机子会走本地流量,怎么才能实现,假如shadowsocks挂了,或者没有正常启动时,连接设备不会走本地流量无法访问网络,实现全局代理的完全隔离!

    2、另外如果在全局代理中间加一层squid缓存是否可以加快一些重复访问数据的速度!有什么综合比较有效的缓存方案么?

    3、楼上问题也同样遇到求解:
    服务端内核和55都配置了tcp fast open,但是我路由器客户端一把tcp fast open的钩打上,透明代理就运行不起来,这是为什么呢?TCP快速打开,TCP无延时对速度究竟有多大的提升?测试过开启好像会导致网络不稳定,是不是会卡一下!

  8. Leon 回复

    你好,请问下我的小米路由器3g刷了pandorabox,查看框架的时候显示的是“mipsel_1004kc_dsp”,在手动下载的那个源中找不到这个框架的ipk,潘多拉自带的源不包括“dns-forwarde”,哪里可以下的到?(之前刷lede可以用mipsel_24kc的ipk);现在只有ss和chinadns,科学上网随缘,单用这两个怎么设置毕竟稳定呢?

1 2 64 65 66 67 68

发表评论

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

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