NAP6官方旗舰店
搜索
发新帖
午饭无线 推广广告R7800 完胜 华硕路由器NETGEAR Vs ASUS T-Mobile定制版NETGEAR团购
开启左侧

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

[复制链接]
2087 13

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 盖世小神童 于 2016-6-8 07:34 编辑

本方案在openwrt上运行ss-local(相当于 shadowsocks 客户端以及本地socks5服务端),然后利用 redsocks (相当于socks5客户端)可完成openwrt的自动翻墙。该方案同样使用aa65535提供的包,并且redsocks具有luci界面,方便开关和配置。

本方案适合那些不喜欢国外IP全走代理,而是被墙才走代理的人使用;redsocks2无需chnroute也无需gfwlist,采用自动判断机制,省心省力;但缺点也很明显,自动判断机制会先尝试连接站点,需要等待一个时间连接失败才会转到代理上,等待时间会让有些人难受;而且可能无法应对gfw的中间人攻击,对于非http/https的应用的自动判定可能支持也不太好。

此方案同样推荐搭配ChinaDNS使用,做防DNS污染以及解析优化。

本方案主要涉及到的开源项目
https://github.com/aa65535/openwrt-shadowsocks
https://github.com/aa65535/openwrt-chinadns
https://github.com/aa65535/openwrt-dist-luci
https://github.com/madeye/shadowsocks-libev
https://github.com/clowwindy/ChinaDNS


一、安装
首次安装的话,先安装必要的包,确保路由器联网,先更新软件包列表(下载有问题的请手动到openwrt.org下载所有需要的包并上传到路由器上使用opkg install XXX.ipk命令安装):
  1. opkg update
复制代码
shadowsocks有openssl和polarssl两个版本选择,ROM空间吃紧的就选择后者吧。

如果要用polarssl版本的shadowsocks(polarssl体积更小):
  1. opkg install libpolarssl
复制代码
如果要用普通版本(openssl)的shadowsocks,那么(openssl兼容性更好):
  1. opkg install libopenssl
复制代码
然后需要根据自己CPU型号选择包,请选择不带spec的包:

shadowsocks-libev: http://sourceforge.net/projects/openwrt-dist/files/shadowsocks-libev/

chinadns-openwrt: http://sourceforge.net/projects/openwrt-dist/files/chinadns/

luci-app-chinadns: http://sourceforge.net/projects/openwrt-dist/files/luci-app/chinadns/

redsocks2: http://sourceforge.net/projects/openwrt-dist/files/redsocks2/

luci-app-redsocks2: http://sourceforge.net/projects/openwrt-dist/files/luci-app/redsocks2/

最后当然是安装了
  1. cd /tmp
  2. opkg install shadowsocks-libev_x.x.x-x_ar71xx.ipk
  3. opkg install ChinaDNS_x.x.x-x_ar71xx.ipk
  4. opkg install luci-app-chinadns_x.x.x-x_all.ipk
  5. opkg install redsocks2_x.x.x-x_ar71xx.ipk
  6. opkg install luci-app-redsocks2_x.x.x-x_all.ipk
复制代码
特别提醒:2015.1.8,由于ChinaDNS-C更名为ChinaDNS,所以包名有变化,此前安装过ChinaDNS-C的,需要手动卸载并重新安装新版。

二、配置

游客,如果您要查看本帖隐藏内容请回复

2、配置Redsocks2

此步骤可以在luci中完成,指向服务应该就可以看到redsocks2的配置了,保留默认即可,勾选启用,点击“保存并应用”生效。

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

3、配置DNS转发

先转到Luci中的DNS/DHCP设置中,配置转发DNS为127.0.0.1#5353:

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙


其中,5353是ChinaDNS的端口,如果你在之前设置界面里改了,这里记得别填错。

然后切到HOSTS和解析文件选项卡,勾中“忽略解析文件”

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙


接着配置ChinaDNS,对配置的选项做出说明:
ChinaDNS参数说明:
1、虚假IP列表:默认值:/etc/chinadns_iplist.txt
     是GFW常见的DNS污染用IP列表,解析出列表中的IP结果时候,ChinaDNS会自动抛弃,保留默认即可;
2、chnroute文件:默认值:/etc/chinadns_chnroute.txt
     此文件标识哪些IP属于国内。用于ChinaDNS判断解析结果。ChinaDNS要求解析结果与DNS要匹配,国内网站采用国内DNS解析的结果,国外网站采用国外DNS解析结果,等等规则;确保以上两个文件内容完整无误,否则会造成无法启动;
3、本地端口:默认值:5353
     ChinaDNS所监听的端口。根据实际情况更改,注意不能和其他服务的端口重复(特别是dnsmasq和shadowsocks);
4、上游服务器:默认值:114.114.114.114,8.8.8.8
     可填入一系列的上游DNS服务器,根据实际情况来,可以保留默认,注意逗号后面不能有空格。有些ISP会封杀公共DNS,此时请将114DNS改为ISP的DNS;此处必须至少填入一个国内IP的DNS和一个国外IP的DNS,否则会造成ChinaDNS启动失败。
4、等待时间: 默认值:0.3
     为防止GFW的DNS污染抢答,而设置一个等待时间,请根据自己填写的国外DNS延迟值来填写,留下一定的裕度。GoogleDNS在国内延迟一般在100-200ms,留0.3比较合适。过大的值会造成DNS解析较大的延迟时间,过小的值可能导致无法接收正确的解析结果。
5、双向过滤: 默认:勾选
     勾选时,当国外DNS服务器返回的查询结果是国内IP,或者当国内DNS服务器返回的查询结果是国外IP,则过滤掉这个结果(较为严格的模式);去掉勾选的话只是过滤国内DNS的国外IP结果。
6、启用压缩指针: 默认:不勾选
     利用GFW遇到压缩指针时的一个bug来精确识别来自GFW的抢答污染,从而极大提高识别的准确性和识别的效率,推荐启用,启用后,IPList和等待时间将禁用(因为用不到了)。

接下来的步骤会有区别,通过ChinaDNS进行防DNS污染及解析结果优化,方案有三:

1、对于shadowsocks是用自己服务器搭建的,推荐方案一,在自己服务器上搭建DNS服务;

2、如果没有这个条件,但服务器支持UDP转发(较新版本Shadowsocks均支持),那么方案二;

3、如果服务器Shadowsocks版本老,不支持UDP转发,那么可用方案三,要求版本>=1.2.0

前两种方案,目前来说是绝对没有DNS污染现象的,此时ChinaDNS的作用完全就是为国外站点做解析优化,因为DNS查询由代理服务器转发,DNS查询的发起者相当于代理服务器,获得的解析结果都是就近于代理服务器的;而方案三则会直面DNS污染,此时ChinaDNS的防污染功能发挥作用,同时方案三无法做到国外网站解析结果优化,因为获得的IP是就近于你的位置的。
然而对于前两种方案,也可能存在一些问题(很少见):

方案一
在代理服务器上搭建DNS服务来解析国外网站,可用dnsmasq或者pdnsd,监听非53端口。

比如说服务器IP是:3.4.5.6,dns服务端口是5050,那么,把ChinaDNS的上游服务器更改为:

114.114.114.114,3.4.5.6:5050,等待时间改为0.1,其他酌情:

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙


最后,确保shadowsocks的设置页面里面的UDP转发是关闭状态。保存并应用,确认shadowsocks和chinadns都显示已启动后,就可以测试一下了~

方案二
使用ss-tunnel转发DNS请求。修改 /etc/init.d/shadowsocks ,加入ss-tunnel;如需修改上游DNS,请修改 DNS=8.8.8.8:53 字段,本地端口修改 TUNNEL_PORT=5151 ,注意不要和ChinaDNS的重复:
  1. #!/bin/sh /etc/rc.common

  2. START=95

  3. SERVICE_USE_PID=1
  4. SERVICE_WRITE_PID=1
  5. SERVICE_DAEMONIZE=1
  6. SERVICE_PID_FILE=/var/run/shadowsocks.pid
  7. CONFIG=/etc/shadowsocks.json
  8. DNS=8.8.8.8:53
  9. TUNNEL_PORT=5151

  10. start() {
  11.         # Client Mode
  12.         service_start /usr/bin/ss-local -c $CONFIG -b 0.0.0.0 -f $SERVICE_PID_FILE
  13.         # Proxy Mode
  14.         #service_start /usr/bin/ss-redir -c $CONFIG -b 0.0.0.0 -f $SERVICE_PID_FILE
  15.         # Tunnel
  16.         service_start /usr/bin/ss-tunnel -c $CONFIG -b 0.0.0.0 -u -l $TUNNEL_PORT -L $DNS
  17. }

  18. stop() {
  19.         # Client Mode
  20.         service_stop /usr/bin/ss-local
  21.         # Proxy Mode
  22.         #service_stop /usr/bin/ss-redir
  23.         # Tunnel
  24.         service_stop /usr/bin/ss-tunnel
  25. }
复制代码
然后配置ChinaDNS的上游DNS服务器为: 114.114.114.114,127.0.0.1:5151,等待时间填0.1,其他酌情填写:

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

保存并应用,Enjoy~

方案三
填入上游服务器地址,可以保留默认的114.114.114.114,8.8.4.4,勾选“启用压缩指针”,保存并应用即可:

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙


或者不勾选“启用压缩指针”,但要酌情填写延迟时间,默认0.3秒:

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙

Shadowsocks + Redsocks 实现 OpenWRT 路由器自动翻墙


精彩评论13

fiby2000  班长  发表于 2016-6-27 01:24:27 | 显示全部楼层
看足球,学技术,越夜越开心。
aleckjiang  班长  发表于 2016-7-15 10:22:42 | 显示全部楼层
很详细,正是我想要的新手入门篇。
henrywan  班长  发表于 2016-9-15 20:52:44 | 显示全部楼层
多谢分享!详细,入门必看。
wqh966  班长  发表于 2016-9-15 22:14:13 | 显示全部楼层
好像有些地方设置不太一样
dczxcz  班长  发表于 2016-9-16 05:18:32 | 显示全部楼层
顶楼主啦..希望楼主多发精品好帖啦.....
天羽人体01  班长  发表于 2016-9-16 08:52:18 | 显示全部楼层
学习学习。。。

举报 使用道具

回复
耶稣割肉喂鹰  班长  发表于 2016-9-16 12:37:25 | 显示全部楼层
感谢楼主分享~~~~~~~~~~~
cansum  班长  发表于 2016-9-28 08:42:30 | 显示全部楼层
不知道要学习一下
pizizhang  排长  发表于 2016-9-28 09:14:32 | 显示全部楼层
好的 看看  咋样
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表