Haproxy让Shadowsocks变的更强大

悲剧开始

8月初的时候发现上外网就非常困难,只是那会没注意,国庆节后回家,发现封网更是凶狠,用mtr命令跟踪后发现几乎连境外所有ssl请求都被抛弃,而本地ssh至linode也是时好时坏,VPN各协议均无法接入,后来虽用ssh tunnel的方式连上外网,但网速比较慢体验较差,难道就没有办法解决这个问题了么?

希望燃起

在研究了诸多方案后,最终选择Shadowsocks,因为其客户端和服务端可设置多种加密方法进行通讯,在通过GFW的时只是常规的TCP包,并没有明显的特征码,这样就减少了GFW的干扰,从而实现较顺畅的上网体验,但是本地直连linode服务器还是有干扰,类似以前的Google重置,而此时ssh tunnel的方式又让我想到的新的办法。

最终方案

早在12年左右,当时研究日本的ameba游戏时发现他们在游戏服务器前设置了Haproxy,后来得知他们使用HA做负载均衡,使用HA做转发TCP请求,这点很类似现在web端的nginx,如果我能找到一台打通我与linode之间机器不就可以实现转发了嘛,恰好我手上正有一台这样的机器,下面说下具体操作。

  1. 我们有3台机器,A(内网),B(中转),C(外网),首先在C机器上安装Shadowsocks
    首先查看python版本,如果低于2.6是无法安装的

    安装Setuptools,pip,shadowsocks(wget的版本>1.10)

    编辑配置文件,由于服务端与客户端其实用的是一个配置,所以只要配好各自的就好。

    最后启动,服务端就算搞定,是不是很简单。
  2. 我们开始说到,B机器是做中转,类似这个结构client <--> hub <--> vps,这一部分工作由HA来做,接下来我们来配置HA,具体过程也是比较简单,首先是安装

    接着修改配置

    最后启动HA
  3. 最后一步,配置客户端,更容易了,直接下载客户端程序,将IP,端口,加密方式对应好就行,当然这里的IP是指的机器B的IP,端口也是上面的暴露给客户端的,如果你不用HA中转,直接连机器C的IP和端口就可以了,最后开启客户端,大功告成。

发表评论(已有 2 条评论)

设置头像

*

:wink: :twisted: :smile: :sleep: :shock: :sad: :roll: :razz: :oops: :neutral: :mad: :grin: :evil: :eek: :cry: :cool:

  1. yiluyingxiao 说:

    提前祝您新年快乐。
    乙未年(羊)冬月十九 2015-12-29

  2. 一生一世套图 说:

    三天不来手痒痒!