1. 个人知识库首页
  2. 记录历程
  3. 学术上网

稳上加稳,trojan+haproxy本地负载均衡连接多条trojan服务端,高可用or分散流量多种模式

视多爱护眼仪提醒您,本文共计1596个文字,预计阅读时长需要4分钟,请调低您使用的屏幕亮度,保护眼睛健康。

实验性方案,没有折腾精神的小伙伴看个热闹就好了。

最近tg群里有同学谈到在openwrt中使用trojan,他讲到了一款叫做passwall的软件,看名称你就能知道它是做什么的,它是支持trojan的,同时也支持负载均衡,它的负载均衡厉害的地方在于你后端可以同时用任何代理,例如你添加了多条路线,包含ss/v2ray/trojan等,passwall可以把流量很好的转发到这些代理端,其实这也是路由器科学上网的好处。因为trojan官方已经有了openwrt版,所以最近也在想做一个trojan的openwrt luci插件,方便管理,这看看有时间做吧。

这也让我想到了之前玩过的trojan+haproxy在windows PC中负载均衡的方式,简单说就是本地使用trojan客户端的流量通过haproxy负载均衡到后端的多个trojan服务端。这里就记录一下过程。

trojan负载均衡说明

1、trojan的负载均衡主要靠配置haproxy来实现,haproxy有多种算法,我们需要里找到不同场景下最合适的算法,所以不同需求场景会有不同的配置。

2、trojan的服务端需要有相同的密码配置。

trojan负载均衡服务端搭建一键脚本

1、这个脚本在之前的基础上改了一下,需要手动输入参数,支持Centos7+/ubuntu16.04+/debian9+

wget https://raw.githubusercontent.com/atrandys/trojan/master/trojan4balance.sh && chmod +x trojan4balance.sh

2、然后执行脚本,此时需要输入两个参数,第一个是你绑定到VPS的域名(举例:s1.atrandys.com),第二个是密码(举例:atrandys),这个密码所有负载均衡的server端都必须一样。

./trojan4balance.sh s1.atrandys.com atrandys

3、搭建完成检查是否成功,使用这个命令看到nginx进程和trojan进程就基本确认安装成功。

ps -aux | grep -e trojan -e nginx | grep -v grep

trojan负载均衡客户端下载

1、trojan的客户端已经包含了负载均衡软件haproxy(1.7windows版,集成cygwin),你只需要下载下来即可

客户端下载

2、编辑客户端trojan的配置文件config.json和haproxy的配置文件haproxy.conf

修改config.jason,将password中的atrandys修改为你设置的密码

修改haproxy.conf,将s1.atrandys.com/s2.atrandys.com/s3.atrandys.com分别修改成你后端trojan服务器的域名,我这里是三个,如果你的数量不同自行增减行数即可。

haproxy负载均衡算法与适合的场景

1、统计与健康检测

统计

你可以在本地浏览器中访问127.0.0.1:2080,进入haproxy的统计页面,查看统计信息。

tcp模式健康检测

tcp模式的haproxy健康检测通过tcp握手检测,配置为check即可。

http模式健康检测

这个我们没用到,用了最简单的tcp模式,谷歌关键词“haproxy http健康检测”

2、负载均衡算法

roundrobin:简单轮询,按照权重分配,适合流量分散到不同后端,后端server访问慢的情况有点问题,待研究。

source:同一访问地址固定访问同一台服务器,本机IP算是固定的,所以只会访问一台服务器,当服务器不可用时才会切换其他。

待补充……

本文章由 brokenway 发布在 个人知识库 ,文章所述不代表本站观点,法律风险由发布者自行承担,转载请注明出处!