利用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了?
实测,我登录ss1的服务器,停掉ss的服务,然后测试,显示ip为ss2的,也就是说,当第一条线路挂了以后,haproxy会马上切换到第二条线路。
看到资料说haproxy会多个ss加速,如果会抓包的同学测试一下看看,我觉得应该不行。 如果可以多路聚合的话,用在openwrt路由器上最合适了 话说我的几个ss倒是都是一样方便记忆 boss 发表于 2016-6-13 01:28
话说我的几个ss倒是都是一样方便记忆
这个不是方便记忆的问题,是你正在使用的断了,你得登录或者客户端重新设置,用haproxy就不用折腾,如果你有四条线路,就算三条断了,也没事,haproxy会自动找一第能用的,就是在四条线路之间任意切换。 boss 发表于 2016-6-13 01:27
如果可以多路聚合的话,用在openwrt路由器上最合适了
理论上openwrt也适用。
页:
[1]