Duplicity 加密增量备份:先 gzip 再 GPG 上锁,直接丢进各种云

把备份直接传到云上最怕两件事:一是传输和落地的数据被人看见,二是云万一丢文件你就没了。Duplicity 把这两件事都兜住了——它先做增量备份,再用 GPG 把每个归档块加密,然后推到几乎任意后端:本地磁盘、ssh、FTP,以及 Amazon S3、Backblaze B2、Google Drive 等一堆云。因为数据在离手前就已经用你的 GPG 密钥锁好,云端看到的只是密文,密钥不在服务商手里,隐私与可控性都更强。
它解决什么问题
把明文备份直接丢第三方云,账号一旦泄露,所有历史文件都裸奔。
想用云做异地容灾,但主流工具要么不支持、要么加密方案不透明。
增量备份传到一半失败,重传整包又慢又费流量。
核心能力
| 能力 | 具体能做到什么 |
|---|---|
| GPG 加密 | 备份块在本地先用 GPG 加密再上传,云端只存密文,密钥始终在你手里。 |
| 增量传输 | 基于上次备份只传变化块,后续备份量小、速度快、省流量。 |
| 多云后端 | 支持本地、ssh、FTP 以及 S3、B2、Google Drive 等多种存储后端。 |
| 签名校验 | 可选 GPG 签名,恢复时验证归档完整,防止传输或存储损坏。 |
| 压缩归档 | 备份先压缩再加密,进一步降低存储与传输开销。 |
| 命令行可控 | 参数清晰可脚本化,配合 cron 轻松实现定时异地加密备份。 |

为什么是「先压缩、再 GPG、再上传」这条链
Duplicity 的流水线很有章法:先对变化的数据块做增量与压缩,再把每个块用 GPG 加密,最后才推到后端。这样云端永远只接触密文,即便存储桶被公开或账号被盗,没有你的私钥也解不开。同时因为按块加密、每块独立,单块损坏或上传失败只影响该块,配合增量机制可以局部重传,不必整体重来。这种「端到端加密 + 块级增量」的组合,正是它适合做云备份的根本原因。
实操要点:GPG 密钥和口令是恢复的唯一凭仗,务必离线妥善备份,丢了就真没了。首次全量备份会比较大,之后增量很轻。某些云后端(如 S3)需要你事先建好桶并配好访问密钥。Duplicity 命令参数偏长,建议写成脚本并先用小目录验证一遍「备份—列出—恢复」全链路,再正式上重要数据。它主要跑在 Linux,Windows 下可用 WSL 跑。
同类工具怎么选
| 工具 | 授权 | 差别在哪 |
|---|---|---|
| restic | 开源免费 | 跨平台加密备份,命令更简洁、后端丰富,比 Duplicity 更易上手。 |
| BorgBackup | 开源免费 | 去重加密仓库,本地与 ssh 后端极佳,但云后端要配合 rclone。 |
| rclone | 开源免费 | 本身偏同步,可配合加密远程做云备份,但无内建版本快照。 |
谁适合用
- 想把备份加密后丢进 S3、B2 等云做异地容灾的用户
- 重视隐私、不愿把明文交给任何服务商的谨慎派
- 需要定时自动上传增量加密备份的运维
怎么开始
- 安装 duplicity 与 GPG,生成或导入自己的 GPG 密钥对。
- 设置 PASSPHRASE 与后端凭证环境变量,避免口令写进命令行历史。
- 首次全量备份:duplicity /源目录 后端URL(如 s3://桶名/路径)。
- 日常用同一命令做增量,只传变化块,速度快。
- 用 duplicity list-current-files 查看远端有哪些可恢复版本。
- 恢复时指定时间或用 duplicity restore 把文件拉回本地验证。
常见问题
云端能看到我的文件吗?
看不到明文,数据在本地就用 GPG 加密,云端只存密文,密钥不在服务商处。
GPG 口令忘了能找回吗?
不能,口令与私钥是恢复唯一凭据,必须离线另存一份。
支持哪些云?
S3、Backblaze B2、Google Drive、ssh、FTP、本地磁盘等,覆盖面很广。
Windows 能用吗?
原生偏 Linux,可用 WSL 运行;纯 Windows 图形方案可看 restic 或专门客户端。
授权与合规
Duplicity 以 GPL-2.0 开源协议发布,源码公开,可自由用于 Linux 等平台的加密备份。 官网:duplicity.us。
继续找同类资源
这条属于「系统相关」栏目,同栏目还有更多可直接使用的免费资源,可以在 系统相关全部资源 里按需翻阅。
相关资源
同栏目下这几条也常被一起翻到:
↓ 获取资源
点击按钮直接前往资源页面。