温馨提示×

centos sftp支持断点续传吗

小樊
44
2026-09-06 03:26:32
栏目: 智能运维

简要回答:SFTP 本身支持断点续传(resume),但是否“可用”取决于客户端和服务端配置/实现。在 CentOS 上,这主要涉及 OpenSSH 的 sshd 和 SFTP 客户端。

下面详细说明。


1. SFTP 协议层面

SFTP(SSH File Transfer Protocol)协议是支持断点续传的,主要依赖:

  • RESTORE / RESUME 相关操作(实际是通过 SSH_FXP_WRITE 指定 offset)
  • 客户端先读取已下载/上传文件大小,再从偏移量继续传输

所以:协议支持,不是问题。


2. CentOS 服务端(sshd / sftp-server)

CentOS 默认使用 OpenSSH:

rpm -q openssh-server

OpenSSH 的 sftp-server 支持断点续传,只要:

  • 使用标准 internal-sftp 或 sftp-server
  • 没有限制写权限、磁盘配额等导致写入失败

常见配置(/etc/ssh/sshd_config):

Subsystem sftp internal-sftp

✅ 这是支持断点续传的。

⚠ 注意:

  • 如果你用 第三方 SFTP 服务(如某些 Go/Java 实现的 SFTP),可能不支持 resume
  • 如果文件被覆盖策略限制(如 ForceCommand 做了限制),可能影响

3. 客户端是否支持(关键)

断点续传是否生效,主要看客户端。

✅ 支持的客户端

  • lftp
  • rsync + ssh
  • FileZilla
  • WinSCP
  • curl (部分场景)
  • 自定义支持 offset 的 SFTP 库

❌ 不完全支持

  • 原生 sftp 命令(OpenSSH 的 sftp):
    • 不支持自动断点续传
    • 但可手动用:
      put -a localfile remotefile
      
      -a 表示 append(从文件末尾继续)

示例:

sftp user@centos
sftp> put -a bigfile.iso

4. 推荐做法(CentOS 环境)

✅ 最稳方案:rsync over ssh

rsync -P -e ssh bigfile.iso user@centos:/data/
  • -P = 断点续传 + 进度
  • 非常可靠

✅ 大文件传输

lftp sftp://user@centos
> put -c bigfile.iso

-c = 断点续传


5. 总结

项目 是否支持
SFTP 协议 ✅ 支持
CentOS OpenSSH sftp-server ✅ 支持
OpenSSH sftp 命令 ⚠ 手动 -a
rsync / lftp ✅ 自动

结论:CentOS 的 SFTP 是支持断点续传的,只要客户端配合即可。

如果你愿意,我可以:

  • 给你一个 CentOS SFTP 断点续传完整示例
  • 或帮你检查 sshd_config 是否影响续传

0 踩