HaProxy

中继加速(也叫中转,因为国内VPS效果最好所以一般都叫国内中转),是一种技术难度低,但是颇费钱的一种方法。而且要选好的服务器,加速效果才明显。

HaProxy是其中的方法之一,使用方便,但是只支持TCP转发。

Socat:

优点:支持 TCP/UDP 转发。缺点:不支持端口段(多个端口需要开启多个转发)

HaProxy:

优点:支持 TCP 转发,支持 端口段 转发。缺点:不支持 UDP 转发。

iptables:

优点:支持 TCP/UDP 转发,支持 端口段 转发。缺点:配置麻烦,容易莫名其妙出错。

安装HaProxy

Debian/Ubuntu系统:

1
apt-get -y install haproxy

Centos系统:

1
yum -y install haproxy

安装完之后就是配置HaProxy的配置文件了。

配置文件

打开 /etc/haproxy/haproxy.cfg文件,打开后把里面的内容全部删除,换成下面的内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
vi /etc/haproxy/haproxy.cfg
global
defaults
log global
mode tcp
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend ss-in
bind *:6666
default_backend ss-out
backend ss-out
server server1 233.233.233.233 maxconn 20480

其中 12 行的,把 6666 改成你被中转的VPS服务端的端口,这个端口是你要转发的端口,然后修改一下 16 行(最后一行),把 233.233.233.233 改成你要中转(被中转/远程服务器)的 VPS IP。还有,你的中转端口和被中转端口是一致的,你的中转端口和被中转端口都是 6666 。

多端口配置

如果你需要中转多个端口,那你修改 bind 配置项为 *:端口段 格式。

也就是把连接中转VPS的 10000-30000 端口TCP数据转发到 233.233.233.233 的 10000-30000 端口上面。

1
2
3
4
5
6
frontend ss-in
bind *:10000-30000
default_backend ss-out
backend ss-out
server server1 233.233.233.233 maxconn 20480

HaProxy 1.5版本后也支持了ipv6,把这里的 233.233.233.233 换成 ipv6地址 就行了。
然后按 Exc键 退出vi编辑模式,输入 :wq 保存并退出,并执行下面代码运行HaProxy。

启动haproxy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 启动haproxy
/etc/init.d/haproxy start
# 停止haproxy
/etc/init.d/haproxy stop
# 如果你是 CentOS 7 系统,那么用这些命令:
# 启动haproxy
systemctl start haproxy.service
# 启动haproxy
systemctl stop haproxy.service