在 CentOS 上实现 FTPServer 断点续传,本质上取决于你使用的 FTP 服务器软件 和 传输模式。下面以最常见的 vsftpd 为主,系统说明如何实现和支持断点续传。
FTP 断点续传依赖以下两点:
✅ vsftpd 默认支持断点续传
❌ 匿名用户是否支持取决于配置
yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd
确保以下配置存在并正确:
# 启用断点续传
# vsftpd 默认支持 REST,无需额外参数
# 禁止匿名上传(否则断点续传可能失效)
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 启用被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
# 是否限制用户在家目录(可选)
chroot_local_user=YES
allow_writeable_chroot=YES
⚠️ 断点续传不需要额外参数
vsftpd 通过REST+STOR实现
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
systemctl restart vsftpd
yum install -y lftp
lftp ftp://user:password@服务器IP
> put -c bigfile.iso
-c表示 continue(断点续传)
| 原因 | 说明 |
|---|---|
| 匿名用户上传 | 匿名模式常不支持 REST |
| 文件权限不足 | 无法写入 |
| 主动模式 | 某些网络环境不稳定 |
| 客户端不支持 | 如旧版 ftp 命令 |
| SELinux | 阻止写入 |
getenforce
如果是 Enforcing,执行:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
如果你使用的是 ProFTPD,断点续传默认也支持:
<Global>
AllowOverwrite on
</Global>
无需额外配置。
✅ CentOS + vsftpd 默认支持断点续传
✅ 使用 被动模式 + 本地用户
✅ 客户端必须支持 REST
✅ 推荐 lftp / FileZilla
如果你愿意,我可以:
只要告诉我你使用的是 CentOS 7 还是 8 / 9 即可。