youland 发表于 2016-6-9 20:09

利用haproxy做ss多线路的负载均衡

如果你手上有多个ss,某条线路有故障了,就得重新切换,很是麻烦,可以利用haproxy来做ss多线路的负载均衡。

有个前提,每个ss的服务器端口和密码必须一样。也就是说,如果你有A,B,C,D四个ss,这四个的端口号和密码必须一致,才可以用haproxy。

方法如下

1,安装haproxy
sudo apt-get install -y haproxy2,在haproxy里配置多线路ss,老规矩,备份一下原始的配置文件,不要了删了事
sudo mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak我们重新编辑这个文件sudo rm -rf /etc/haproxy/haproxy.cfg
sudo nano /etc/haproxy/haproxy.cfg
按下面的格式,改好后贴进去global
    ulimit-n 51200
    log /dev/log local0
    log /dev/log local1 notice
    chroot /var/lib/haproxy
    pidfile /var/run/haproxy.pid
    user haproxy
    group haproxy
    daemon
defaults
    log global
    mode tcp
    option dontlognull
    timeout connect 5000
    timeout client 50000
    timeout server 50000
frontend ss-in
    mode tcp
    bind 0.0.0.0:8001
    default_backend shadowsocks
backend shadowsocks
    mode tcp
    balance roundrobin
      server ss1 8.8.8.8:8000 maxconn 20480
      server ss2 8.8.8.4:8000 maxconn 20480
      server bwg 8.8.8.5:8000 maxconn 20480
      server bwg1 8.8.8.6:8000 maxconn 20480最后四行就是四个线路的ss,端口号一样。请注意,bind 0.0.0.0:8001,这里的8001,是本地服务器的端口,相当于haproxy是一个服务端。

3,启动haproxy
sudo service haproxy start//启动4,我们这里要改一下ss的config.json的配置
sudo nano /etc/shadowsokcs/config.json新的配置如下
{
    "server":"192.168.0.2",
    "server_port":8001,
    "local_address":"192.168.0.2",
    "local_port":2000,
    "password":"你密码",
    "timeout":600,
    "method":"aes-256-cfb"
}server这里写你的树莓的ip,server_port这里写hapxory里面的端口号,别的不用动
重启ss使之生效
sudo supervisorctl reload在chrome试试你的ss是不是ok了?


youland 发表于 2016-6-9 20:20

实测,我登录ss1的服务器,停掉ss的服务,然后测试,显示ip为ss2的,也就是说,当第一条线路挂了以后,haproxy会马上切换到第二条线路。

看到资料说haproxy会多个ss加速,如果会抓包的同学测试一下看看,我觉得应该不行。

boss 发表于 2016-6-13 01:27

如果可以多路聚合的话,用在openwrt路由器上最合适了

boss 发表于 2016-6-13 01:28

话说我的几个ss倒是都是一样方便记忆

youland 发表于 2016-6-13 09:08

boss 发表于 2016-6-13 01:28
话说我的几个ss倒是都是一样方便记忆

这个不是方便记忆的问题,是你正在使用的断了,你得登录或者客户端重新设置,用haproxy就不用折腾,如果你有四条线路,就算三条断了,也没事,haproxy会自动找一第能用的,就是在四条线路之间任意切换。

youland 发表于 2016-6-13 09:10

boss 发表于 2016-6-13 01:27
如果可以多路聚合的话,用在openwrt路由器上最合适了

理论上openwrt也适用。
页: [1]
查看完整版本: 利用haproxy做ss多线路的负载均衡