首页 > 程序 > Shadowsocks+ChinaDNS+redsocks2+openwrt自动分流上网

作者:ghostry 发布时间:2015-03-23 浏览: 23319

转载注明出处: https://blog.ghostry.cn/program/584.html

为了学习先进的编程技术.使用了多种方法科学上网,之前的GoAgent,名气太大,经常被干,不是失效了就是速度慢.
后来换了ipv6科学上网.可是有些没有ipv6的站点,照样打不开.而且我的ipv6出口带宽有点小.实在忍不了.
就想着另外找别的办法.
于是放狗搜了好久.终于敲定了方案.
Shadowsocks+ChinaDNS+redsocks2+openwrt科学上网.为什么是这几个呢?
首先,openwrt,太省心了.各种客户端都不用设置了.直接用,零配置.
然后ChinaDNS这个也很不错.解决污染的同时不会把你误解到海外去.这个很重要,要不我上个百度难道还要出国溜一圈?
然后是Shadowsocks,新型的SOCKS,非标准类型的.可以说一千个人一千个哈姆雷特.缺点也很明显,你得有个海外的服务器,好在我有.
再来看看redsocks2,这个更牛逼.以前的各种方式,都是采用列表形式的.有一个被维护的ip列表.如果哪天列表更新没跟上.完蛋了.这个不同.他是尝试型的.先尝试直连,能通就直连,直连不通的走代理.
说了这么多.来说说先决条件吧.
1,你有一个海外可用的服务器.或者你购买一个别人做好的Shadowsocks服务.
2,你有一个openwrt的路由器.我的是双频水货路由,哦,错了,是双频水星路由.三天线怪兽.8m空间
以上是要花钱的.
下面是要花时间的.

第一步
在服务器上安装Shadowsocks服务.我的ubuntu,so easy.

apt-get install python-pip
pip install shadowsocks

这就安装上去了.
配置一下

vi /etc/shadowsocks.json

{

"server":"my_server_ip",
"server_port":8388,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false 

}

my_server_ip写自己服务器的ip,端口自己改一个.越乱越好,比如443,12345,密码可以用生成器生成一个32位大牛逼密码(如果你不嫌烦的话).加密方式自己选个,你服务器和客户端都支持就行.

aes-256-cfb: Default aes-128-cfb aes-192-cfb aes-256-ofb aes-128-ofb
aes-192-ofb aes-128-ctr aes-192-ctr aes-256-ctr aes-128-cfb8
aes-192-cfb8 aes-256-cfb8 aes-128-cfb1 aes-192-cfb1 aes-256-cfb1
bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb
chacha20 idea-cfb rc2-cfb rc4-md5(这个据说速度不错安全性不够) salsa20 seed-cfb

fast_open如果服务端和客户端都是linux内核3.7版本以上开起来能让速度更快.需要这个

echo 3 > /proc/sys/net/ipv4/tcp_fastopen

然后服务开起来

ssserver -c /etc/shadowsocks.json
ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

然后防火墙开放端口就完成了.
第二步
客户端配置.我的openwrt是自己编译的,所以装这些客户端我也选择了使用源码自己编译.
地址如下

https://github.com/aa65535/openwrt-dist-luci
https://github.com/aa65535/openwrt-chinadns
https://github.com/aa65535/openwrt-redsocks2
https://github.com/shadowsocks/openwrt-shadowsocks

这个openwrt-shadowsocks这个,如果是用我这方案记得选shadowsocks-libev,另外还可以用shadowsocks-libev-spec方案或者shadowsocks-libev-spec+chinadns

git clone https://github.com/shadowsocks/openwrt-shadowsocks.git package/shadowsocks-libev
git clone https://github.com/aa65535/openwrt-chinadns.git package/chinadns
git clone https://github.com/aa65535/openwrt-redsocks2.git package/redsocks2
git clone https://github.com/aa65535/openwrt-dist-luci.git package/openwrt-dist-luci

最后

make menuconfig

勾选需要的luci界面和程序.界面在luci的app下,程序都在network下.啧啧,哪位大神能把这些打包到一个git库里做feeds然后再弄个依赖关系自动勾选就Beautiful了.

make V=99

编译完成后刷机.编译期间如果有下载不过来的文件,用别的科学上网工具代为下载一下.
刷机后开始配置了.
首先是ChinaDNS,简单,我这啥都没改,他自己就开启了.开启后需要在dnsmasq里边把解析都指向ChinaDNS的端口,默认是

127.0.0.1#5353

这样dns部分就完成了.
之后配置shadowsocks,写配置文件

vi /etc/shadowsocks.json

{

"server":"my_server_ip",
"server_port":8388,
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false 

}

其中server,server_port,password,method,fast_open要和服务端对应.local_port这里默认就行,如果改了等下redsocks2也要改
redsocks2配置也很简单,不过我走了弯路,其实刷机后默认配置就行.我搞了半天,后来发现原来得重启路由才能生效的.redsocks2的等待超时是说如果超过多少秒就跳转走代理.我开始以为是请求多少秒超时.写了个60秒...真蛋疼.现在写了3秒.代理端口要和local_port对应,本地端口随机.这个的luci只点保存应用是不行的.得重启.
这些都做完,打开你的局域网内的设备,试试有土逼能不能打开,如果能说明成功了.如果不能,继续奋斗.反复放狗反复尝试.反复推测反复验证.

20150331更新.
打包了一个仓库,做了依赖关系,一次性装好.省的麻烦了.

https://github.com/ghostry/openwrt-gmod

国内地址

http://git.oschina.net/ghostry/openwrt-gmod

标签: openwrt shadowsocks chinadns redsocks2 科学上网

上一篇: zpanel汉化成中文的方法
下一篇: Broadcom Corporation BCM43228 802.11a/b/g/n ubuntu 驱动

已有 6 条评论 »

  1. 已看,目前在用 VPN+路由表 方案。收藏,以后研究。

    1. 可以看看这个https://github.com/aa65535/openwrt-shadowvpn

  2. 已阅,已右键另存,顺便求送能用路由器

  3. 学习了

  4. 内容已观,已收藏
    就差路由器+服务器了 咋办

    1. 服务器每月80.路由 最便宜的hg255d淘宝能买到25元的.

添加新评论 »

*
*

欢迎评论!歡迎評論!Comments welcome!komentoj bonvenaj!댓글 오신 것을 환영합니다!
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :cold: :cryy: :cute: :shy: :sleep: :struggle: :tea: :yahou: