在 Debian 上实现 vsftpd 的主从(Master/Slave),需要先明确你指的“主从”具体是哪一种场景,因为 vsftpd 本身并不像 MySQL/Redis 那样原生支持主从复制。常见需求一般有以下几种,我分别说明可行方案。
vsftpd 是一个 FTP 服务程序,不是数据库,它:
所以“主从”通常是 人为设计出来的架构。
主服务器写,从服务器只读 / 同步文件
客户端
├── vsftpd Master (写)
└── vsftpd Slave (读)
统一存储目录
/data/ftp
主服务器
/data/ftp从服务器
rsync -avz --delete /data/ftp/ slave:/data/ftp/
可配合 cron:
*/5 * * * * rsync -az /data/ftp/ slave:/data/ftp/
✅ 优点:简单、稳定
❌ 缺点:不是实时
vsftpd Master
vsftpd Slave
↘
NFS Server
NFS 提供共享目录
Master / Slave 都挂载:
mount -t nfs nfs-server:/data/ftp /data/ftp
vsftpd 配置相同:
local_root=/data/ftp
✅ 优点:实时
❌ 缺点:NFS 单点风险
如果你指的是:
一个用户只能在主服务器登录,另一个从服务器同步账号?
/etc/passwd示例(rsync 用户):
rsync -av /etc/passwd /etc/shadow /etc/group slave:/etc/
⚠️ 不推荐直接同步系统用户,风险大
VIP
├── vsftpd Master
└── vsftpd Backup
✅ 常用于 FTP 高可用
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/data/ftp
从服务器可改为:
write_enable=NO
| 场景 | 推荐方案 |
|---|---|
| 文件同步 | rsync + cron |
| 实时共享 | NFS |
| 高可用 | Keepalived + rsync/NFS |
| 用户统一 | LDAP(不建议多机直接同步用户) |
为了给你更精确的方案,可以补充:
主从的目标是什么?
是否需要写操作同时支持?
用户量 / 文件量大概多少?
我可以直接给你一套 可部署的完整方案(含配置 + 脚本)。