HaProxy 实现中继(中转/端口转发) Shadowsocks

96
龜山島
0.1 2017.12.04 09:20* 字数 546

国内中转就是,你在国内买一个VPS,然后让他去连接国外VPS上面的Shadowsocks服务,然后你去链接国内这个VPS,这样子就相当于,用国内VPS的优秀线路和宽度去链接国外的Shadowsocks服务,这样子你去链接国内的VPS延迟必然降低了,稳定性也提高不少!

原理:SS客户端 <=> 国内VPS <=> 美国VPS

安装HaProxy

    # Debian/Ubuntu系统:
    apt-get -y install haproxy
    # Centos系统:
    yum -y install haproxy

配置文件

打开 /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

6666改成你被中转的VPS上面Shadowsocks服务端的端口,这个端口是你要转发的端口。
233.233.233.233 改成你要中转(被中转/远程服务器)的 VPS IP
还有,你的中转端口被中转端口是一致的,你的中转端口和被中转端口都是 6666

多端口配置

如果你需要中转多个端口,那你修改bind配置项为 *:端口段 格式。
也就是把连接中转VPS的 10000-30000端口TCP数据转发到 233.233.233.23310000-30000 端口上面。

    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地址 就行了。

启动服务

systemctl start haproxy
systemctl enable haproxy

不同端口转发配置

global
    ulimit-n  51200

defaults
    log    global
    mode    tcp
    option    dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000

frontend ss-in
    bind *:relay_server_port
    default_backend ss-out

backend ss-out
    server server1 proxy_server_ip:proxy_server_port maxconn 20480

指定一个端口为relay_server_port,如8100等,这个端口将会之后用于客户端与国内VPS的连接。将proxy_server_ip替换为美国VPS的IP地址,proxy_server_port设置为美国VPS的监听端口。

客户端配置

假设我的国内中转VPS IP是 110.110.110.110 ,我的国外被中转的VPS IP是 233.233.233.233 ,我的国外VPS上的Shadowsocks服务端 端口是6666,我设置的中继账号端口是 6666 ,那么我在Shadowsocks客户端就是110.110.110.110。其中密码和加密方式都是和你国外VPS上的Shadowsocks账号配置一样,你只需要改一下 服务器 IP服务器端口 就好了!

Linux类
Web note ad 1