在 Ubuntu 上做 FTP Server 集群,通常不会像 Web 服务那样“无状态横向扩展”那么简单,因为 FTP 是有状态协议(控制连接 + 数据连接),而且数据连接可能走主动/被动模式。下面给你一套常见、可落地的方案思路,从简单到复杂。
✅ 实际生产里:FTP 集群 = 负载均衡 + 共享存储 + 高可用
Client
|
Load Balancer (L4 / LVS / HAProxy)
|
+-----------+-----------+
| | |
FTP Node1 FTP Node2 FTP Node3
|
Shared Storage (NFS / Ceph / GlusterFS)
推荐:
❌ 不推荐 Windows 风格 FTP 集群方案
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=公网IP或LB IP
apt install nfs-kernel-server
/data/ftp *(rw,sync,no_root_squash)
所有 FTP 节点挂载:
mount -t nfs nfs-server:/data/ftp /srv/ftp
✅ 适合中小规模
❌ NFS 是单点(可加 HA NFS)
apt install glusterfs-server
适合 真正集群
listen ftp
bind *:21
mode tcp
balance roundrobin
server ftp1 10.0.0.1:21 check
server ftp2 10.0.0.2:21 check
⚠️ PASV 端口也要转发(30000-31000)
apt install keepalived
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.1.100
}
}
✅ 2 台 Ubuntu
你可以告诉我:
我可以直接给你 一套可执行的配置模板。