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,423 条评论

  1. vvxiang 回复

    大师,我重新按步骤刷了一次。在我设置到 《在Luci中切换至“网络”-“DHCP/DNS”设置,如下图,在”DNS转发”中填入:127.0.0.1#5353》这一步时,就不能正常翻了。前面透明代理正常可以使用。请问是什么原因

    1. cokebarcokebar 文章作者 回复

      忽略解析文件勾选后,保存应用后才可以

      1. vvxiang 回复

        我测试了一下,DNS转发”中填入:127.0.0.1#5353 我填写完这一步后还可以,然后勾选了忽略解析文件后,就不正常了。

    2. cokebarcokebar 文章作者 回复

      如果怀疑DNS转发链有问题,可以使用dig工具测试,本博客有一篇写了windows下的dig工具,你也可以直接在路由器上安装dig来测试。
      主要排查:
      1. 配置文件是否设置正确。
      2. 软件是否成功启动。
      3. DNS转发链每个环节是否正常。

      1. vvxiang 回复

        很感谢,今天有空又重新走了一遍。可以正常代理了。按照你的教材设置没再出问题。我不知道是不是我开始在端口转发那里没有启用起来,所以导致后面DNS转发一设置就不能正常上网。再请问一下。我现在设置到了 –添加可信根证书并安装支持ssl的wget: 这一步完成后。后面的几步就没有弄了。这样子也可以吗。我用的是一个乐视的路由。性能一般般。

        大师如果可能,可不可以发一个lede 下面安装广告屏蔽大师的教材 adbyby.我昨天尝试安装一次后整个后台进不去,网络也不通了。

  2. dummy 回复

    ”DNS 转发” 上游DNS 无法使用自定义的端口,比如VPS自建PDNSD改了端口,就在这里的“上游DNS”输入不了了。

    1. cokebarcokebar 文章作者 回复

      没有必要自建DNS,直接使用dns-forwarder转至8.8.8.8即可。

  3. cokebar fans 回复

    博主大人,LEDE也可以在dnsmasq.conf里面加入cache-size=10000 min-cache-ttl=1800吗?

  4. 四季豆老爹 回复

    这个下载的链接http://openwrt-dist.sourceforge.net/packages/LEDE/可以直接wget 下载对应的ipk,并不需要WinSCP,因为这个还需要安装服务才可以使用。

    1. cokebarcokebar 文章作者 回复

      1. 本文写手动上传是考虑到部分ISP网络下直连sourceforge过慢或者不通,需要手动挂代理下载,当然用wget也是可以的,只要下载下来放到路由上即可;
      2. WinSCP可以直接使用

  5. coderXu 回复

    dns-forwarder 这个东西老是自启动不了,是什么情况?
    rc.d文件夹里有链接,不知道为什么每一次重启后都要手动执行启动才行,不然国外的dns解析压根没反应。
    系统是:LEDE rc2

    1. cokebarcokebar 文章作者 回复

      看看系统日志里面能不能看出点什么。可以到github发issue。

  6. wang l 回复

    博主大人 ,我这样配置完后,用访问墙外网站时,提示代理服务器出现问题或者地址有误,您知道是哪里出了问题吗

    1. cokebarcokebar 文章作者 回复

      关闭本机代理软件 取消浏览器代理设置

      1. wang l 回复

        请问浏览器现在又提示找不到www.google.com的服务器DNS ,是哪里出了问题呢

  7. fanofcokebar 回复

    参考版主的大作,收获很大!谢谢

  8. Danielssssss 回复

    楼主大大你有一条太坑, 建议赶紧改正:
    opkg remove dnsmasq && opkg install dnsmasq-full

    remove dnsmasq 断网, 根本就无法再安装dnsmasq-full

    GG思密达

    1. cokebarcokebar 文章作者 回复

      回头我测试一下 按理说应该不会 因为dnsmasq只是负责LAN区域的DHCP和DNS解析,对于路由器自身联网是不影响的,除非你强制指定了WAN口DNS为127.0.0.1(如果是这样,先临时改回“使用端局通告的DNS”,安装完dnsmasq-full以后再改回127.0.0.1)

  9. cantooo 回复

    一直用你的方法翻墙,但是chromecast一直无解,没法连接上网络,网上的方法都用过了,还是不行,麻烦您给支个招?

    1. cokebarcokebar 文章作者 回复

      建议不要完全按照我贴出的那个链接的规则,因为他劫持了所有LAN的53端口流量。这里只劫持chromecast的流量即可,假设路由器IP是192.168.1.1,chromecast是192.168.1.101,那么规则是:
      iptables -t nat -A PREROUTING -s 192.168.1.101 -p udp –dport 53 -j DNAT –to 192.168.1.1

      未测试 不保证能用

1 2 42 43 44 45 46

发表评论

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

请输入正确的验证码