首页主机资讯怎样实现CentOS FTPServer负载均衡

怎样实现CentOS FTPServer负载均衡

时间2026-01-19 09:43:03发布访客分类主机资讯浏览263
导读:实现思路与关键点 在 CentOS 上,FTP 的控制通道使用 21/TCP,数据通道在 主动模式 由服务器主动连客户端(端口随机),在 被动模式 由服务器开放一段端口范围供客户端连接。负载均衡器必须支持 FTP ALG(应用层网关)或改...

实现思路与关键点

  • CentOS 上,FTP 的控制通道使用 21/TCP,数据通道在 主动模式 由服务器主动连客户端(端口随机),在 被动模式 由服务器开放一段端口范围供客户端连接。负载均衡器必须支持 FTP ALG(应用层网关)或改为 L4 直连 并让后端返回可被客户端访问的地址。为简化与通用性,建议将 FTP 服务器配置为 被动模式(PASV) 并在负载均衡器上发布统一的 PASV 地址与端口范围。若使用 FTPS(FTP over SSL/TLS),多数传统 ALG 无法解密控制通道,通常更稳妥的做法是采用 L4 直连 或选择支持 FTP/TLS 的专用方案。

方案一 HAProxy TCP 模式负载均衡(通用、易维护)

  • 适用:需要快速上线、同时承载 FTPFTPS,或后端为 PASV 并统一发布地址的场景。
  • 安装与启用
    • 安装:sudo yum install -y haproxy
    • 启用:sudo systemctl enable --now haproxy
  • 关键配置示例(/etc/haproxy/haproxy.cfg)
    • 全局与默认
      • global
        • log /dev/log local0
        • log /dev/log local1 notice
        • daemon
      • defaults
        • log global
        • mode tcp
        • option tcplog
        • timeout connect 5000ms
        • timeout client 50000ms
        • timeout server 50000ms
    • 前端与后端
      • frontend ftp_front
        • bind *:21
        • default_backend ftp_back
      • backend ftp_back
        • balance roundrobin
        • server ftp1 192.168.1.101:21 check
        • server ftp2 192.168.1.102:21 check
  • 防火墙放行
    • 放行控制端口:sudo firewall-cmd --permanent --add-port=21/tcp & & sudo firewall-cmd --reload
    • 若使用 PASV,还需放行你在后端 vsftpd 配置的 PASV 端口范围(例如 10090–10100):sudo firewall-cmd --permanent --add-port=10090-10100/tcp & & sudo firewall-cmd --reload
  • 说明
    • 此模式为 L4,不解析 FTP 协议;对 FTPS 友好(不解密)。
    • 若客户端在内网、后端在公网,需在后端 vsftpd 的 pasv_address 中填写 负载均衡器的公网 IP,并确保 PASV 端口范围在负载均衡器与后端均放行。

方案二 LVS DR 模式负载均衡(高性能、需内核支持)

  • 适用:高并发、对性能要求高的场景;通常与 Keepalived 配合实现高可用。
  • 架构要点
    • 负载均衡器(Director)对外提供 VIP:21,使用 DR(Direct Routing) 模式;后端 RealServer 不经由 Director 转发数据流量,性能接近直连。
  • Director 配置要点
    • 开启转发:net.ipv4.ip_forward=1
    • 安装工具:sudo yum install -y ipvsadm
    • 配置 LVS(示例)
      • ipvsadm -A -t VIP:21 -s rr
      • ipvsadm -a -t VIP:21 -r 192.168.1.101:21 -g
      • ipvsadm -a -t VIP:21 -r 192.168.1.102:21 -g
  • RealServer 配置要点(每台后端)
    • 在回环接口配置 VIP(lo:0),并抑制 ARP 响应,确保客户端 ARP 解析到 Director 的 VIP:
      • ifconfig lo:0 VIP netmask 255.255.255.255 broadcast VIP
      • echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
      • echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
      • echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
      • echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  • 防火墙与端口
    • 放行 21/TCPPASV 端口范围(同方案一)。
  • 高可用
    • 使用 Keepalived 管理 VIPLVS 规则,实现主备自动切换。

后端 FTP 服务器与防火墙配置要点

  • 安装与基础
    • 安装:sudo yum install -y vsftpd
    • 启用:sudo systemctl enable --now vsftpd
  • 建议的 vsftpd 关键配置(/etc/vsftpd/vsftpd.conf)
    • 基础
      • listen=YES
      • listen_ipv6=NO
      • anonymous_enable=NO
      • local_enable=YES
      • write_enable=YES
      • chroot_local_user=YES
      • allow_writeable_chroot=YES
    • 被动模式
      • pasv_enable=YES
      • pasv_min_port=10090
      • pasv_max_port=10100
      • pasv_address=负载均衡器对外IP(客户端用来连 PASV 的地址)
  • SELinux 与防火墙
    • SELinux(如启用):setsebool -P allow_ftpd_full_access 1
    • 防火墙:放行 21/TCP10090–10100/TCP(或你设定的 PASV 范围)。

测试与运维建议

  • 功能测试
    • 连接测试:ftp 负载均衡器IP
    • 上传/下载大文件,验证 PASV 端口 是否可达、速率是否正常、是否出现中断。
    • 多客户端并发测试,观察负载是否按预期分发。
  • 日志与监控
    • 查看 HAProxy:tail -f /var/log/haproxy.log
    • 查看 vsftpd:tail -f /var/log/vsftpd/vsftpd.log
    • 建议接入 监控/告警(如 Prometheus + Grafana)与 健康检查,及时发现后端异常。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样实现CentOS FTPServer负载均衡
本文地址: https://pptw.com/jishu/785533.html
centos cpuinfo怎么显示 centos cobbler怎样设置镜像源

游客 回复需填写必要信息