树莓派 Ubuntu 实现 sslocal 负载匀衡
由于某些原因,我配置了多个 ssserver,windows 客户端可以简单配置负载匀衡,而在 linux 上面需要借助 haproxy。
首先,因为我的服务是 aes-255-gcm 加密方式,需要升级 ss 客户端。
pip install https://github.com/shadowsocks/shadowsocks/archive/master.zip -U
修改 sslocal 配置,server 连接的是本地 haproxy 端口,增加/etc/shadowsocks/default.json
{
"server": "127.0.0.1",
"server_port": 8888,
"local_address": "127.0.0.1",
"local_port": 1234,
"password": "password",
"timeout": 50,
"method": "aes-256-gcm",
"fast_open": true,
"workers": 2
}
为 sslocal 增加 service,增加/etc/systemd/system/sslocal.service
[Unit]
Description=Shadowsocks
After=network.target
[Service]
ExecStart=/usr/local/bin/sslocal -c /etc/shadowsocks/default.json
Restart=on-abort
[Install]
WantedBy=multi-user.target
好了,sslocal 的部分说完了,接下来 apt 安装 haproxy,修改/etc/haproxy/haproxy.cfg,增加以下行。
listen status
bind *:1111
mode http
stats refresh 30s
stats uri /status
stats realm Haproxy
stats auth admin:admin
frontend ss-in
mode tcp
bind *:8888
default_backend ss-out
backend ss-out
mode tcp
option tcp-check
balance roundrobin
server xxx <server>:<port> check
server yyy <server>:<port> check
server zzz <server>:<port> check
配置完成还要改一下 systemd,/etc/systemd/system/haproxy.service,修改 After 和 Wants 字段,用 network-online.target 替换 network.target。
最后用 systemd 启动 haproxy 和 sslocal。
sudo systemd enable haproxy
sudo systemd enable sslocal
参考链接
求教如何让 ss 客户端支持 aes-256-gcm 加密方式