温馨提示×

centos ftpserver怎么集群

小樊
46
2026-09-21 07:51:43
栏目: 智能运维

在 CentOS 上做 FTPServer 集群,常见目标有两种:

  1. 高可用(HA):一台挂了另一台能接
  2. 负载均衡(LB):多台同时提供 FTP 服务

FTP 比较特殊(有 控制端口 21 + 数据端口,还有 主动/被动模式),所以集群方案要特别注意。

下面给你几种 实战可行方案,从简单到复杂。


一、最推荐方案:FTP + 共享存储 + 负载均衡(被动模式)

架构

Client
   |
Load Balancer (LVS / HAProxy / Nginx Stream)
   |
FTP Server1  FTP Server2  FTP Server3
   |
共享存储 (NFS / GlusterFS / Ceph / 对象存储挂载)

关键点

✅ 必须使用 被动模式(PASV)
✅ 所有 FTP 服务器 配置相同的 PASV 端口范围
✅ 文件必须放在 共享存储


1. 安装 FTP(vsftpd 示例)

yum install -y vsftpd

2. vsftpd 被动模式配置

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=VIP或LB地址

3. 共享存储(NFS 示例)

mount -t nfs 192.168.1.100:/ftpdata /data/ftp

所有节点:

chown -R ftp:ftp /data/ftp

4. 负载均衡(LVS / HAProxy)

示例(HAProxy TCP 模式):

listen ftp
    bind *:21
    mode tcp
    server ftp1 192.168.1.11:21 check
    server ftp2 192.168.1.12:21 check

⚠️ 数据端口也要转发(30000-31000)


二、高可用方案(主备,不是真正集群)

适合:不允许数据不一致

VIP (Keepalived)
   |
FTP Master  <->  FTP Backup

方案

  • Keepalived + vsftpd
  • 共享存储(NFS / DRBD)
  • 只有一台在线

Keepalived 示例

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    virtual_ipaddress {
        192.168.1.200
    }
}

✅ 优点:简单
❌ 缺点:浪费一台机器


三、SFTP 集群(更推荐)

如果 不是必须用 FTP,强烈建议:

✅ SFTP(SSH) ✅ 更好集群 ✅ 更安全

SFTP 集群方案

  • SFTP + NFS
  • SFTP + GlusterFS
  • SFTP + 对象存储(S3 + s3fs)

四、FTP 集群常见问题

❌ 主动模式不能集群

主动模式(PORT):

Server -> Client

负载均衡基本不支持

✅ 必须用 PASV


❌ 本地用户 session 不同步

如果是 本地用户:

  • 用户信息要一致(NIS / LDAP)

建议:

LDAP + vsftpd

五、总结推荐

需求 推荐
简单高可用 Keepalived + NFS
高性能 LVS + PASV + NFS
新系统 SFTP
云环境 对象存储 + SFTP

如果你愿意,可以告诉我:

  • 用的 FTP 软件(vsftpd / proftpd / pureftpd)
  • 是否 公网
  • 用户量
  • 是否必须 FTP(不能 SFTP)

我可以直接给你一套 可落地的配置。

0 踩