实验性方案,没有折腾精神的小伙伴看个热闹就好了。
最近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),你只需要下载下来即可
[btn type=”success” url=”https://github.com/atrandys/trojan/raw/master/trojan-cli-haproxy.zip”]客户端下载[/btn]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算是固定的,所以只会访问一台服务器,当服务器不可用时才会切换其他。
待补充……