温馨提示×

debian ftpserver如何做负载均衡

小樊
58
2026-09-09 20:01:12
栏目: 云计算

在 Debian 上做 FTP 服务器的负载均衡 稍微比 HTTP 复杂一些,因为 FTP 是 有状态、双端口(控制 + 数据) 的协议。下面按「可行方案 → 具体做法 → 注意事项」来说明。


一、FTP 负载均衡的常见方案

方案 1:LVS + FTP(推荐,生产可用)

适合:

  • 大量并发
  • 高性能
  • 被动模式(PASV)

原理:

  • LVS(IPVS)做四层负载
  • 后端多个 vsftpd
  • FTP 数据连接通过 persistence 绑定

优点:

  • 性能好
  • 支持高并发

缺点:

  • 配置稍复杂
  • 必须统一 PASV 端口范围

方案 2:HAProxy(仅限被动模式)

适合:

  • 小规模
  • 内部使用

⚠️ 注意:

  • HAProxy 不支持主动模式(PORT)
  • 必须严格限制 PASV 端口

方案 3:Nginx Stream(不推荐 FTP)

  • Nginx 对 FTP 支持很差
  • 不推荐

方案 4:DNS 轮询(最简单但不可靠)

  • 多个 A 记录
  • 无会话保持
  • 断线重连会失败

二、推荐架构(LVS + vsftpd)

Client
   |
LVS (DR模式)
   |
+-- vsftpd1
+-- vsftpd2
+-- vsftpd3

三、后端 vsftpd 配置(关键)

所有节点必须一致:

listen=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=VIP_IP

说明:

  • pasv_address = LVS 的虚拟 IP
  • PASV 端口必须固定范围

四、LVS 配置(Debian)

1. 安装

apt install ipvsadm

2. 添加虚拟服务

ipvsadm -A -t VIP:21 -s rr -p 3600

-p 3600 非常重要(FTP 会话保持)

3. 添加真实服务器

ipvsadm -a -t VIP:21 -r FTP1:21 -g
ipvsadm -a -t VIP:21 -r FTP2:21 -g
ipvsadm -a -t VIP:21 -r FTP3:21 -g

4. PASV 端口也要负载

ipvsadm -A -t VIP:30000:31000 -s rr -p 3600
ipvsadm -a -t VIP:30000:31000 -r FTP1:30000:31000 -g
ipvsadm -a -t VIP:30000:31000 -r FTP2:30000:31000 -g
ipvsadm -a -t VIP:30000:31000 -r FTP3:30000:31000 -g

五、Keepalived(高可用)

apt install keepalived

用于:

  • VIP 漂移
  • LVS 主备

六、文件一致性问题(非常重要)

FTP 只是入口,文件必须一致:

可选方案:

  • NFS
  • GlusterFS
  • CephFS
  • 对象存储(MinIO)

否则:

  • 用户 A 传到节点1
  • 用户 B 从节点2下载 → 失败

七、总结建议

场景 推荐
企业生产 LVS + vsftpd + NFS
内部小系统 HAProxy + vsftpd
不推荐 DNS 轮询

如果你愿意,我可以:

  • 给你一份 完整 Debian 配置脚本
  • 或按 云服务器 / 内网 场景细化
  • 或帮你选 SFTP(更现代)替代 FTP

你现在是哪种使用场景?

0 踩