Shadowsocks + ChnRoute 实现 OpenWRT / LEDE 路由器自动翻墙

本站发布的三种shadowsocks在openwrt上的自动翻墙方案:

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

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

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

方案简介
一、安装

此部分针对openwrt-shadowsocks 3.0.1及以上版本,搭配luci-app-shadowsocks 1.6.0及后续版本。

所需软件列表:

安装过程中如果出现错误提示无法解决,可以留言。LEDE即将发布正式版,建议从OpenWrt更新至LEDE。

OpenWRT CC 15.05.1 及更早版本安装步骤
LEDE / OpenWrt trunk 安装步骤
二、shadowsocks 配置

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

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

(这一部分基本完工,但仍需要进一步完善)

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

PS:DNS的调试可以使用dig

I. DNS转发链图示
II. DNS转发链的基本配置
III. DNS转发链的优化配置

三、按域名指定是否走代理(可选)

(这一部分基本完工,但仍需要进一步完善)

请在完成前面的配置后继续下面的配置。

先使用dnsmasq-full替换掉原有的dnsmasq:

添加可信根证书并安装支持ssl的wget:

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

一些推荐的额外设置项可以参考:《Shadowsocks for OpenWRT / LEDE 拾遗》

1,417 条评论

  1. WU JUNHUA 回复

    期待Dns的后续。
    重建服务器后,以前的那个服务器也不能使用China dns里的指针压缩选项了。服务端的pdnsd摸索了很久,依然没能找到解决方案。
    期待

  2. 引用: 计划任务 – Jack cheng

  3. Frankie Leung 回复

    求教了,我用网件的3800做一个二级路由器,也用你的配置,但是怎样都没办法访问外网,已经显示RUNNING,但是就是不行,我的主路由分出来的线,我是插在二级路由器的LAN口上,插WAN口连网都不能上。可否帮我一下,感谢,我想设置好这样的一个路由器,以后去哪里,我就带一个二级路由就好了,一接上就可以翻墙。不知道能否实现,可否与我邮件联系,谢谢,对了,我是安装了新版1.37的,我无意中发在了老版本的页面评论里,见谅

    1. cokebarcokebar 文章作者 回复

      3800 WAN口不接,连管理页面,改LAN口网段,不要是默认的192.168.1.X;WAN口协议改成DHCP客户端。改好后重启。用的时候一级路由LAN口接3800WAN口即可。ss的配置没有不同,就只注意DNS设置中国内DNS最好设成国内公共DNS。
      作为二级路由时,千万不要用二级路由LAN口接上级路由LAN口!

      如果路由改成无线AP/交换机模式(关DHCP),则应该LAN口接LAN口。

      1. Frankie Leung 回复

        万分感谢,你解决了我的大问题,哈哈,目前对于用SS玩PS4的情况,DNS还可以优化吗,我意思说,是否用香港的DNS更好,而不是用8.8.4.4?

  4. earth 回复

    按新的配置重建以后,发现,速度慢了很多啊。
    另外,能不能这样:国外屏蔽站 走SS,国内未屏蔽站 不走SS?

  5. keboge 回复

    太好了,教程有更新了,不知道作者您有没有研究过kcptun?在垃圾VPS上表现极其优异,如果可能的话,能不能写一个kcptun结合SS+CHINADNS的教程?

    1. cokebarcokebar 文章作者 回复

      需要有kcptun的openwrt移植版 如果发现有人在做 请告知

      1. keboge 回复

        https://zhongyue.site/openwrt_kcptun/
        这里有个教程
        另外https://blog.kuoruan.com/上也有openwrt的kcp客户端,但是今天(17.1.24)网站打不开,可能服务器有点小问题

        1. cokebarcokebar 文章作者

          今天看了一下kcptun。kcptun是golang所写,并没有移植的问题,不过对于大部分路由来说体积过大,因此暂不考虑。arm CPU,ROM大的可以搞一下,用linux系统,下载arm的源码包,用build-release.sh编译就能生成二进制文件,直接复制到路由里可直接运行。

  6. earth 回复

    ShadowSocks – Access Control/Zone WAN/Bypassed IP List:ChinaDNS CHNRoute
    忘记选择ChinaDNS CHNRoute了!
    然后OK了,到目前为止。

  7. 王啸雨 回复

    安装chinadns后显示服务正常运行,但是在service界面没有显示。(能显示出来redsocks页签)请问这个问题怎么解决?
    新创建了文件touch /etc/config/chinadns,但是里边的配置文件应该怎么写?这样写是否有用?

  8. xuefliang 回复

    我目前用cdns,速度快,还没看到污染情况

  9. mk47 回复

    指定只走22,80,443端口这样写option ipt_ext ‘-m multiport –dports 22,80,443’,是否可行?

    1. cokebarcokebar 文章作者 回复

      可行 本质上就是为iptables添加的额外参数

  10. muronghan 回复

    想请教,luci-app-shadowsocks只支持openssl的ss版本,对吗?如果是mbedtls版本的shadowsocks,该如何在luci里配置,或者有其他使用方法?

    1. muronghan 回复

      嗯,我试了一下,mbedtls版本也是用的同样的luci-app-shadowsocks

发表评论

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

请输入正确的验证码