1. 首页
  2. 学术上网
  3. Trojan

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

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

最近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修改为你设置的密码

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

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

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

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

1、统计与健康检测

统计

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

tcp模式健康检测

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

http模式健康检测

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

2、负载均衡算法

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

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

待补充……

原创文章,作者:atrandys,如若转载,请注明出处:https://www.atrandys.com/2020/2307.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论列表(25条)

  • infos 2020年3月6日 下午1:19

    请atrandys大神指导下:
    1、全新环境安装trojan成功
    curl -O https://raw.githubusercontent.com/atrandys/trojan/master/trojan_mult.sh && chmod +x trojan_mult.sh && ./trojan_mult.sh
    2、稳上加稳,trojan+haproxy安装失败
    wget https://raw.githubusercontent.com/atrandys/trojan/master/trojan4balance.sh && chmod +x trojan4balance.sh
    上一步ok,接下输入脚本:
    ./trojan4balance.sh s1.atrandys.com atrandys(s1.atrandys.com atrandys已经更改为自己的)
    脚本执行后报错:
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
    软件包 net-tools-2.0-0.25.20131004git.el7.x86_64 已安装并且是最新版本
    无须任何处理
    =============================================================
    检测到443端口被占用,占用进程为:19168/trojan,本次安装结束
    =============================================================

    • infos 回复 infos 2020年3月6日 下午1:30

      补充:执行两个命令之后安装成功
      1、service stop trojan
      2、service stop nginx
      执行./trojan4balance.sh s1.atrandys.com atrandys(s1.atrandys.com atrandys改为自己的)成功安装脚本
      service start以上1、2的服务
      执行ps -aux | grep -e trojan -e nginx | grep -v grep检查
      到此一切正常!

    • infos 回复 infos 2020年3月6日 下午1:53

      补充:发现这里又埋了一个坑!
      tcp模式健康检测
      tcp模式的haproxy健康检测通过tcp握手检测,配置为check即可。
      ——请教atrandys,如何配置?
      是在服务器端/etc/haproxy/haproxy.cfg中添加tcp模式的配置段吗

    • atrandys 回复 infos 2020年3月6日 下午5:15

      已经有了server加上check了

  • infos 2020年3月6日 下午12:57

    根据atrandys大神的指导,我重新准备一台阿里云香港服务器和一台谷歌云香港服务器来尝试这个方案。
    坐标是广东,电信200M,谷歌云大约30ms,不稳定,约有20~30%的掉包。阿里云20ms,非常稳定,不掉包。

  • infos 2020年3月6日 上午11:53

    =============================================================
    检测到443端口被占用,占用进程为:881/trojan,本次安装结束
    =============================================================

    在vps上执行第二步显示这个信息

    • atrandys 回复 infos 2020年3月6日 下午12:13

      你安装过trojan了啊

    • infos 回复 atrandys 2020年3月6日 下午12:38

      atrandys 您好!大家可能误会为新加一个服务就可以了,这个教程其实是一个适合全新系统的吧。如果是要提醒可能误解就会少。另外如果是的话还漏了一个加速器的安装呢。

  • test 2020年2月22日 下午8:00

    请问用一件脚本搭建的trojan,访问谷歌youtube什么的,一直被鉴定 流量异常 要机器人验证,是我没搭建好还是?

    • a 回复 test 2020年3月1日 上午11:40

      是你的IP有问题吧?

  • aquacode447 2020年2月20日 下午10:00

    先生,您可以为Clash编写脚本吗?

    这是参考链接

    https://www.lionlibr.com/posts/clash-for-windows-tutorial.html
    https://github.com/Dreamacro/clash

  • brokenway 2020年2月19日 上午11:05

    检测到443端口被占用,占用进程为:25269/trojan,本次安装结束。
    在vps上执行第二步显示这个信息,不知道是不是失败了

    • atrandys 回复 brokenway 2020年2月19日 下午5:41

      你安装完trojan了吧?又安装一遍?

    • infos 回复 atrandys 2020年3月6日 上午11:56

      我也遇到相同问题。在vps上执行第二步显示这个信息
      已加载插件:fastestmirror
      Loading mirror speeds from cached hostfile
      base | 3.6 kB 00:00:00
      epel | 5.3 kB 00:00:00
      extras | 2.9 kB 00:00:00
      nginx | 2.9 kB 00:00:00
      updates | 2.9 kB 00:00:00
      软件包 net-tools-2.0-0.25.20131004git.el7.x86_64 已安装并且是最新版本
      无须任何处理
      =============================================================
      检测到443端口被占用,占用进程为:881/trojan,本次安装结束
      =============================================================

    • atrandys 回复 infos 2020年3月6日 下午12:13

      先卸载,重启再安装

  • 理发师 2020年2月19日 上午12:40

    总是证书申请失败,但是这个脚本不像以前的脚本,没有进一步的手动修复的选项

    red “https证书没有申请成果,自动安装失败”
    green “不要担心,你可以手动修复证书申请”

  • 坏蛋 2020年2月18日 下午1:27

    你把电报群发出来啊,写到网站最下面不行嘛,我到处找你的电报群,隐藏这么深干什么。我要加入跟群友交流啊

  • samzhang 2020年2月15日 下午1:17

    期待luci 的插件

    • samzhang 回复 samzhang 2020年2月15日 下午3:28

      LEDE的^_^

  • 大佬 2020年2月15日 上午10:00

    看不懂

  • sweet 2020年2月14日 下午9:13

    老大,trojan用dns解锁奈飞的姿势是怎样的啊?直接用服务商提供的脚本不生效,能说说吗?

    • 节达 回复 sweet 2020年2月16日 上午9:07

      你需要一台能奈菲的小鸡作为跳板

    • ppo 回复 sweet 2020年2月28日 下午4:46

      用dnsmasq就能解决