温馨提示×

怎么实现CentOS FTPServer断点续传

小樊
45
2026-08-19 01:46:59
栏目: 智能运维

CentOS 上实现 FTPServer 断点续传,本质上取决于你使用的 FTP 服务器软件传输模式。下面以最常见的 vsftpd 为主,系统说明如何实现和支持断点续传。


一、断点续传的前提条件

FTP 断点续传依赖以下两点:

  1. 服务器支持 REST 命令
  2. 客户端支持断点续传

✅ vsftpd 默认支持断点续传
❌ 匿名用户是否支持取决于配置


二、使用 vsftpd 实现断点续传(推荐)

1️⃣ 安装 vsftpd

yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd

2️⃣ 核心配置(/etc/vsftpd/vsftpd.conf)

确保以下配置存在并正确:

# 启用断点续传
# 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 实现


3️⃣ 防火墙放行端口

firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload

4️⃣ 重启 vsftpd

systemctl restart vsftpd

三、验证是否支持断点续传

1️⃣ 使用 lftp(强烈推荐)

yum install -y lftp

上传并断点续传

lftp ftp://user:password@服务器IP
> put -c bigfile.iso

-c 表示 continue(断点续传)


2️⃣ 使用 FileZilla(图形客户端)

  • 传输设置 → 断点续传:启用
  • 支持自动续传
  • 支持 vsftpd / proftpd

四、常见导致断点续传失败的原因

原因 说明
匿名用户上传 匿名模式常不支持 REST
文件权限不足 无法写入
主动模式 某些网络环境不稳定
客户端不支持 如旧版 ftp 命令
SELinux 阻止写入

五、SELinux 设置(非常重要)

getenforce

如果是 Enforcing,执行:

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

六、ProFTPD(备选方案)

如果你使用的是 ProFTPD,断点续传默认也支持:

<Global>
    AllowOverwrite on
</Global>

无需额外配置。


七、总结(关键点)

CentOS + vsftpd 默认支持断点续传
✅ 使用 被动模式 + 本地用户
✅ 客户端必须支持 REST
✅ 推荐 lftp / FileZilla


如果你愿意,我可以:

  • 帮你 检查 vsftpd.conf
  • 提供 完整生产环境配置
  • 对比 FTP vs SFTP 断点续传差异

只要告诉我你使用的是 CentOS 7 还是 8 / 9 即可。

0