自托管服务
rclone/rclone avatar
rclone/rclone

rclone:一个命令行工具如何把四十多种云存储变成同一套 rsync 语法

rclone 被称为“云存储的 rsync”,是一个命令行程序,可在 S3、Google Drive、Dropbox 等数十种云存储服务之间同步文件和目录。

59,770 个 Star5,395 个 ForkGoMIT

秒懂

它是什么?
rclone 把自己定位为「云存储的 rsync」,用一套命令统一 Google Drive、S3、Dropbox 等四十多家服务。本文梳理它的工作机制、上手步骤、已知边界,以及它不适合哪些场景。
适合谁用?
rclone 适合需要跨云迁移、定时备份或统一管理多家存储的工程师,尤其是那些已经熟悉 rsync 语法、愿意用命令行和配置文件处理一切的人。它不适合只操作单个云厂商、希望有图形界面或完整 GUI 管理能力的普通用户,也不适合对各家 API 限流和配额没有心理预期的团队。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 Go(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是「每个云一套客户端」的碎片化问题

大多数云存储服务都有自己的网页端、桌面客户端和专有 API。备份到 Google Drive 是一套工具,同步到 S3 是另一套,Dropbox 又不一样。rclone 把这一切压成一个二进制文件,用 `copy`、`sync`、`move` 这类 rsync 风格的子命令操作所有后端。它的目标用户是脚本编写者和运维工程师,这些人不想为每个存储服务学习不同的上传方式,只想在 cron 里写一行命令。README 里那句「rsync for cloud storage」不是比喻,而是设计目标:用 rsync 的语义,但目标是 HTTP API 而不是 SSH。

从配置到同步:一次 `rclone config` 开始

安装 rclone 后,第一步是运行 `rclone config`。这个交互式命令引导你选择存储类型,输入密钥或 token,并把配置写入 `rclone.conf` 文件。配置完成后,每个远程存储被命名成一个别名,比如 `gdrive` 或 `mys3`。之后所有操作都引用这个别名,例如 `rclone copy /home/user/data gdrive:backup` 会把本地目录复制到 Google Drive 的 backup 文件夹。`rclone sync` 会让目标目录与源目录完全一致,删除目标中多余的文件。`rclone move` 则会在复制后删除源文件。这些命令都支持 `--dry-run` 参数,先预览将要执行的操作,不实际改动任何数据。对于脚本化使用,rclone 也支持非交互式配置,通过环境变量或直接编辑配置文件传入凭据。

底层机制:不是 rsync 协议,而是 API 适配层

rclone 的架构是一层抽象接口,上面是统一的文件操作语义,下面是为每个存储服务实现的适配器。每个适配器把 rclone 的 `List`、`Copy`、`Delete` 等操作翻译成对应服务的 REST 调用。这意味着同步的效率和可靠性取决于各家 API 的行为。比如 S3 兼容服务通常支持分片上传和批量删除,而 Google Drive 的 API 有配额限制,频繁请求会触发 403。rclone 在文档中为每个 provider 单独列出这些限制。它的 `--transfers` 参数控制并发上传数,`--checkers` 控制并发校验数,这些参数需要根据目标服务的 API 限流来调整。所以 rclone 不是对每个云都一视同仁,它的统一性在语法层面,不在性能层面。

安装与版本节奏:Go 单二进制,更新频繁

rclone 用 Go 编写,发布时提供各平台预编译的二进制文件,也提供 Docker 镜像 `rclone/rclone`。安装方式包括下载压缩包、包管理器(如 `apt`、`brew`)和脚本安装。项目版本迭代很快,从提供的 release 信息看,v1.75.0 在 2026 年 7 月发布,此前 v1.74.4 和 v1.74.3 分别在 7 月初和 6 月发布,说明大约每月都有修复版本。这种节奏对需要稳定 API 的企业用户意味着要定期评估升级,因为新版本可能引入新 provider 或改变既有命令的行为。好在配置文件格式保持向后兼容,升级通常不会破坏现有配置,但建议在测试环境验证后再应用到生产。

支持的存储范围:S3 兼容是最大公约数

README 列出的存储提供商超过四十家,其中很大一部分是 S3 兼容服务,比如 Cloudflare R2、DigitalOcean Spaces、Minio、Hetzner Object Storage。这意味着你不需要为每个 S3 兼容服务单独学习新命令,只要在配置时指定 endpoint 和 region 即可。rclone 也支持非 S3 的服务,如 Google Drive、Dropbox、OneDrive、Backblaze B2 和 OpenStack Swift。这种广覆盖是它的核心卖点,但也带来维护成本。每个 provider 的 API 变化都需要 rclone 跟进,从 release 频率看,项目确实在持续更新。不过,如果你只用一家云厂商,rclone 的优势就不明显,因为厂商自己的 CLI 工具往往针对自家 API 做了更多优化。

已知边界:限流、配额和 API 变化是主要失败模式

rclone 的文档明确警告过 API 限流问题。Google Drive 有每日配额,Dropbox 有传输限制,S3 有每秒请求数上限。当同步任务超过这些限制时,rclone 会返回错误,重试机制可能加剧问题。另一个边界是同步语义的差异:`sync` 命令会删除目标端多余文件,如果目标端是共享文件夹或团队盘,误删风险很高。rclone 提供了 `--backup-dir` 参数把被替换或删除的文件移到指定目录,但这不是默认行为。此外,某些 provider 不支持 rclone 的全部操作,比如 Google Photos 只支持上传,不支持下载,这在文档中标注为「upload only」。所以 rclone 不是万能的,它受限于每个后端的能力矩阵。

替代方案:为什么不用厂商原生工具或 restic

如果你只使用 AWS S3,`aws s3 sync` 命令提供了类似的功能,而且由 AWS 官方维护,对 S3 的 API 变化反应更快。但 `aws s3 sync` 不支持 Google Drive 或 Dropbox,你仍然需要为每个云准备不同工具。另一个替代是 restic,它专注于备份加密,而不是通用同步。restic 把数据打包成加密快照,适合安全备份,但你不能像 rclone 那样直接浏览远程目录或按需复制单个文件。rclone 的定位是通用文件操作,restic 的定位是不可变备份。两者可以组合使用,比如用 rclone 挂载远程存储,再用 restic 备份本地挂载点。选择的关键在于你的需求是同步还是备份,以及你是否需要跨多个云厂商的统一界面。

维护与许可证:MIT 下的活跃项目,但无商业支持

rclone 采用 MIT 许可证,允许自由使用、修改和分发,包括商业用途。项目在 GitHub 上活跃,release 频率高,文档站点 rclone.org 提供每个 provider 的详细说明和常见问题。社区支持通过官方论坛进行,但项目本身不提供 SLA 或商业支持。这意味着生产环境依赖 rclone 时,你需要自己处理 API 变化带来的问题。升级成本主要来自新版本可能调整的默认行为,比如某个 provider 的认证方式改变。好在 rclone 的配置和命令语法保持稳定,从 v1.74 到 v1.75 的 release 记录看,没有破坏性变更的迹象。但作为开源项目,它的长期维护依赖于社区贡献,评估时应该检查最近的提交活动和文档更新频率。

编辑结论

rclone 适合需要跨云迁移、定时备份或统一管理多家存储的工程师,尤其是那些已经熟悉 rsync 语法、愿意用命令行和配置文件处理一切的人。它不适合只操作单个云厂商、希望有图形界面或完整 GUI 管理能力的普通用户,也不适合对各家 API 限流和配额没有心理预期的团队。采用前先确认你要对接的存储是否在支持列表里,检查官方文档中该 provider 的专属参数,比如 S3 的 endpoint、Google Drive 的 scope 和共享文件夹设置,并在小目录上跑一次 `rclone copy --dry-run` 验证行为。rclone 的 MIT 许可证允许商用和修改,但你在生产环境依赖它时,要自己承担 API 变更和限流带来的风险,因为项目本身不提供商业支持。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记