通过 EC2 上的外部 Rclone 实现 AWS S3 与 Cloudflare R2 之间的高性能文件传输
现代团队常常需要同时管理多个对象存储平台,很快就会发现,当大型数据集需要经过本地桌面时,带宽、延迟和出站流量费用会成为关键瓶颈。直接在云实例上运行 Rclone,再通过 RcloneView 进行控制,可以将繁重的流量推送到云端的高速骨干网络中,让你的笔记本电脑完全脱离数据传输路径。
下面的教程参考了“通过 EC2 同步 AWS S3 与 Google Drive”指南的结构,并将其扩展到 S3 ↔ R2 场景。你将完成以下步骤:
- 在 AWS EC2 服务器上启动 Rclone 作为远程控制守护进程(rcd)。
- 打开一个独立的 RcloneView 窗口,并连接到该外部 Rclone。
- 在 EC2 托管的 Rclone 中添加 AWS S3 和 Cloudflare R2 远程。
- 完全在云端之间执行传输、同步或调度任务,不受本地带宽限制。
AWS 数据传输费用
同一可用区内的区域内流量是免费的,但跨可用区和互联网出站流量会产生费用(通常为 $0.02/GB 用于跨可用区传输,$0.09/GB 用于互联网出站)。 参见:AWS 定价 – 数据传输
为什么要使用外部 Rclone?
| 本地内置 Rclone | EC2 上的外部 Rclone |
|---|---|
| 流量路径:S3 → 本地 PC → R2 —— 双跳传输,且受限于家庭上传带宽。 | 流量路径:S3 → EC2 → R2 —— 云端骨干网络中的单跳传输,通常可达 10-25 Gbit/s。 |
| 家庭 ISP 带宽上限或不对称带宽会拖慢大规模迁移速度。 | 吞吐量大幅提升,不受本地带宽限制。 |
| 本地 CPU 和内存需要对每个字节进行哈希计算。 | 将 CPU 负载卸载到云虚拟机;可按需选择更大的实例规格。 |
| 可能存在 NAT/防火墙问题。 | 拥有公网 IP 并开放 5572 端口(或通过 SSH 隧道)。 |
第 1 部分:在 EC2 上部署 Rclone(外部 Rclone)
- 启动一个 Ubuntu EC2 实例(多线程上传建议使用 t3.medium 或更大规格)。
- 在安全组中开放 TCP 5572 端口(或使用 SSH 隧道)。
- 安装 Rclone:
curl https://rclone.org/install.sh | sudo bash
- 运行 rcd 守护进程并启用基本身份验证:
rclone rcd --rc-addr=0.0.0.0:5572 --rc-user=admin --rc-pass=admin --log-level INFO
--rc-addr 参数会开放 HTTP 端点,供 RcloneView 调用。
- 从你的笔记本电脑进行健康检查:
curl -u admin:admin -X POST "http://<EC2-IP or DNS-NAME>:5572/rc/noop"
返回 JSON {} 响应即表示守护进程正在正 常监听。
👉 了解更多:如何在 AWS EC2 服务器上运行 Rclone
第 2 部分:打开新的 RcloneView 窗口
为了保持连接的有序管理,RcloneView 允许每个窗口使用各自独立的 Rclone 引擎运行。
- 启动 RcloneView
- 在
Home菜单中点击New Window按钮。 - 系统将打开一个新的应用程序窗口。该实例独立于主窗口运行,并维护自己的连接上下文。
📌 你将在下一步中把该窗口连接到你的外部 Rclone(EC2)。
👉 了解更多:使用“新建窗口”实现多个 Rclone 连接。
第 3 部分:连接到 EC2 托管的 Rclone
在新打开的窗口中,按以下步骤连接到你 EC2 上托管的外部 Rclone:
- 在新窗口中,打开 Settings → Connection Manager。
- 点击 New Connection 并填写以下表单:
| 字段 | 值 |
|---|---|
| Display Name | ec2-rclone |
| Remote Address | http://<EC2-IP or DNS-NAME>:5572 |
| Username | admin |
| Password | admin |
- 点击
Test Connection验证配置。
你应该会看到连接成功的响应。 - 测试通过后,点击
Save,然后点击Connect。 - 现在你已连接到运行在 EC2 上的外部 Rclone 实例,窗口顶部会显示连接状态。


第 4 部分:添加 AWS S3 和 Cloudflare R2 远程(通过外部 Rclone)
➕ 添加 AWS S3 远程
- 进入
Remote标签页,点击+ New Remote。 - 在
Provider标签页中,选择 Amazon S3。 - 在
Options标签页中:- 将
provider设置为AWS - 输入你的 Access Key ID 和 Secret Access Key
- 除非需要自定义,否则区域和端点可以保留默认值
- 将
- 点击 Save 完成设置。
👉 了解更多:
➕ 添加 Cloudflare R2 远程
- 同样,在
Remote标签页中点击+ New Remote。 - 在
Provider标签页中,选择 S3(是的,再次选择——因为 R2 使用 S3 协议)。 - 在
Options标签页中:- 将
provider设置为Cloudflare - 输入你的 Cloudflare R2 Access Key 和 Secret Key
- 将
endpoint设置为https://<accountid>.r2.cloudflarestorage.com
- 将
- 点击 Save 完成 R2 远程的设置。
👉 了解更多:
第 5 部分:在 AWS S3 和 Cloudflare R2 之间同步文件
🔁 方法 A:使用 Sync 或 Job
- 在资源管理器面板中,选择要同步的 Cloudflare R2 文件夹和 AWS S3 文件夹。
- 点击
home菜单中的Sync按钮。 - 选择同步选项(单向或双向),预览操作内容,然后确认。
- RcloneView 将执行同步,并在
transfer日志标签页中显示进度。
- 如需重复或定时传输:
- 在同步弹窗中点击
Save to Jobs,或打开Job Manager→Add Job。 - 配置源、目标和相关选项。
- 保存后手动运行,或设置计划任务。
- 在同步弹窗中点击
👉 了解更多: