You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置支持动态端口透传的TCP负载均衡器

动态TCP端口的负载均衡与端口透传方案

针对你需要的动态TCP端口透传+负载均衡需求,推荐使用HAProxy来实现,它支持TCP层的负载均衡,且无需预先指定后端服务的固定端口,完美适配你的场景。

方案1:HAProxy配置(推荐,易用性高)

1. 安装HAProxy

根据操作系统执行对应命令:

  • Ubuntu/Debian:
    sudo apt update && sudo apt install haproxy
    
  • CentOS/RHEL:
    sudo dnf install haproxy
    

2. 配置HAProxy

编辑HAProxy主配置文件(通常为/etc/haproxy/haproxy.cfg),替换或添加以下内容:

global
    log /dev/log local0
    log /dev/log local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

defaults
    log global
    mode tcp  # 启用TCP模式,处理原始TCP流量
    option tcplog
    option dontlognull
    timeout connect 5000
    timeout client 50000
    timeout server 50000

frontend tcp_lb
    bind *:*  # 监听所有端口,实现端口透传
    default_backend tcp_backends

backend tcp_backends
    balance roundrobin  # 轮询负载均衡策略,可替换为leastconn(最少连接)等
    server backend1 10.20.30.40 check  # 不指定端口,自动透传客户端请求的端口
    server backend2 10.20.30.41 check

配置说明

  • mode tcp:让HAProxy工作在TCP层,直接转发客户端的TCP连接,而非HTTP请求
  • bind *:*:监听服务器上的所有TCP端口,客户端连接任意端口时,HAProxy都会接收并处理
  • backend中的server未指定端口:HAProxy会自动将客户端请求的端口,转发到对应后端服务器的相同端口(即端口透传)
  • balance roundrobin:采用轮询算法分配请求,确保两台服务器负载相对均衡;如果后端服务连接数差异大,可换成leastconn策略
  • check:启用健康检查,HAProxy会自动跳过不可用的后端服务器,避免将请求转发到故障节点

3. 启动/重启HAProxy

sudo systemctl restart haproxy
sudo systemctl enable haproxy  # 设置开机自启

方案2:LVS(备选,高性能场景)

如果业务流量极大,HAProxy性能不够,可以使用LVS(Linux Virtual Server)——内核级负载均衡工具,性能更高。

配置示例(NAT模式)

  1. 安装ipvsadm:

    sudo apt install ipvsadm  # Ubuntu/Debian
    sudo dnf install ipvsadm  # CentOS/RHEL
    
  2. 添加LVS规则:

    # 创建虚拟服务,:0表示匹配所有端口,rr为轮询策略
    sudo ipvsadm -A -t loadbalancerurl.com:0 -s rr
    # 添加后端服务器,不指定端口实现透传,-m表示NAT模式
    sudo ipvsadm -a -t loadbalancerurl.com:0 -r 10.20.30.40 -m
    sudo ipvsadm -a -t loadbalancerurl.com:0 -r 10.20.30.41 -m
    

注意事项

  • LVS的DR模式性能比NAT更高,但需要后端服务器配置VIP(虚拟IP),网络配置更复杂
  • 确保LVS服务器开启IP转发:echo 1 > /proc/sys/net/ipv4/ip_forward

通用注意事项

  • 防火墙配置:确保负载均衡服务器的防火墙允许所有需要的TCP端口(或直接允许TCP流量),后端服务器允许负载均衡服务器的IP访问动态端口
  • 健康检查:两种方案都支持健康检查,建议保持启用,提升服务可用性

内容的提问来源于stack exchange,提问作者SIDDHARTH Gulati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:57:34