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

shadowsocks 服务器合租招募

本站发布的三种使用 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下图形化配置,大大简化了配置过程。配置完成后,路由器本身获得自动翻墙能力,所有连入该路由的设备都可无障碍访问被墙的站点。是运行于路由器的透明代理。

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

顺便吐槽一下OP/LEDE的包名,这也是各种Linux Distribution的通病了吧,OpenWrt里的ip,到了LEDE里弄成俩:ip-tiny和ip-full,ca-certificates也变成俩,多出来一个ca-bundle,真是日了狗了,搞这篇文章时候被这俩不同系统的不同之处弄得抓狂。

方案简介
一、安装

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

所需软件列表
如果所用网络环境直连sourceforge.net和downloads.openwrt.org/downloads.lede-project.org没有问题的话,可以直接使用作者提供的软件源安装及更新SHADOWSOCKS

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

依赖包要装全!依赖包要装全!依赖包要装全!重要的事情说三遍!遇到安装问题请参考下列以来列表,看自己装全了没有!

依赖列表
安装过程中如果出现错误提示无法解决,可以留言。LEDE已发布正式版,建议从OpenWrt更新至LEDE。本篇文章将逐步放弃更新OpenWrt的步骤,最终将只描述LEDE上的步骤。

OpenWRT CC 15.05.1 及更早版本安装步骤
LEDE 安装步骤
二、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 拾遗》

1,537 条评论

  1. JKs 回复

    我只是做到了 “自此,基本的DNS转发链建立完备,应该可以正常科学上网了,此时可以尝试一下是否成功” 这一步。

    电脑无线网卡,设置了北京联通的DNS(网络环境北京联通),上了那个 whatismyip.com 发现我的IP居然还是联通的IP。。。于是进去路由查了一下,发现 SS 很诡异的没有启动。

    我的SS版本为SS-libev_3.0.4-1_ar71xx.ipk(路由器是网件WNDR3800),是不是版本太高了?这个版本,全局设置多了一个选项叫“自启动延时”的,不管设置为“未启用”或任意一个秒数,SS还是启动不了。我现在准备装回 3.0.4 看看行不行。。。

    1. cokebar 文章作者 回复

      升级一下依赖包;运行ss-redir -h看看输出什么。

      1. JKs 回复

        依赖包升级不了,因为路由器自己上不了网了。

        运行ss-redir,显示: can’t load library ‘libsodium.so.18’

        1. cokebar 文章作者

          那你只能重新配置了,开ss之前一定要装好依赖包,做下一步之前先检查这一步有问题没

  2. JKs 回复

    那个sourceforge.net上的libsodium更新到了github的同步版本:1.0.12(昨天还是1.0.2);所以抛弃了官网的几百年前的版本,重新刷机,按照流程挨个安装依赖包。现在SS正常了,如果设置全局代理+改网卡DNS成ISP,去到国外未被blocked的IP回显站,显示的IP是SS服务器。

    所以继续下一步操作。在以下环境:1外网设置为全局转发,2代理自身也为全局转发的情况下,按下面的操作:把dns-forwarder的监听地址改成0.0.0.0,然后 dig @路由器 -p 5311 http://www.google.com, dig @路由器 -p 5353 http://www.google.com 分别测试dns-forwarder、chinadns是否正常。

    C:\Users\Julian>dig @192.168.1.1 -p 5311 www.google.com

    ; <> DiG 9.11.0-P3 <> @192.168.1.1 -p 5311 www.google.com
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<dig @192.168.1.1 -p 5353 www.google.com

    ; <> DiG 9.11.0-P3 <> @192.168.1.1 -p 5353 www.google.com
    ; (1 server found)
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached

    所以看起来,DNS转发是正常的,但是ChinaDNS好像是有问题。可是ChinaDNS的设置没错,目前路由器PUTTY方式已不能自动使用opkg update更新,使用自带的网络测试工具(LUCI-网络-网络诊断),三个方式均返回错误不能连上openwrt.org。那怎么对 ChinaDNS做调试/优化?

    另外,感觉路由器操作的界面时,反应明显变慢了。

    1. cokebar 文章作者 回复

      能刷LEDE就刷LEDE吧,别用OpenWrt了。LEDE处理package的方式也有变化,包都很新而且一直在更新

  3. lqzh 回复

    三. I. China-List强制直连 自定义域名强制直连
    这个脚本是不是有点问题

    ···
    curl -L -o generate_dnsmasq_chinalist.sh https://github.com/cokebar/openwrt-scripts/raw/master/generate_dnsmasq_chinalist.sh
    chmod +x generate_dnsmasq_chinalist.sh
    sh generate_dnsmasq_chinalist.sh -d 114.114.114.114 -p 53 -s ss_spec_dst_bp -o /etc/dnsmasq.d/accelerated-domains.china.conf
    ···

    生成的 /etc/dnsmasq.d/accelerated-domains.china.conf 里面格式是这样的。

    server=/0-6.com/114.114.114.114#53
    ipset=/114.114.114.114/ss_spec_dst_bp
    server=/0-gold.net/114.114.114.114#53
    ipset=/114.114.114.114/ss_spec_dst_bp

    ipset 后面应该是域名的 变成了 DNS

  4. wang 回复

    智能分流一切正常,除了股票软件时断时续,是udp有问题吗?

    1. cokebar 文章作者 回复

      国外股票软件? udp不玩外服游戏不建议开

  5. wang 回复

    国内股票软件

  6. 篮子 回复

    WNDR4300 Sub Instruction Set: MIPS32 74K series
    是选mipsel_74kc吗?谢谢!

  7. hu 回复

    lede cpu选择头大了,路由网件3800,CPU是什么型号的,以前只需要选ar71xx,现在怎么多了那么多分类?

1 2 45 46 47 48 49

发表评论

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

请输入正确的验证码