自建备份工具的难点不在压缩算法,而在三件事:仓库放在哪、密钥谁来管、出事时怎么确认能还原。这篇清单按存储目标与操作方式,把 restic、Kopia、BorgBackup、Backrest、Duplicati 五条路线拆开,附上可核实的版本号与各自的边界。
文件级快照工具的共同骨架
这几款工具做的是同一件事:把目录切成变长数据块,按内容哈希去重,在客户端加密后写进一个仓库,每次运行留下一个快照。仓库可以是本地磁盘、NAS、SFTP 服务器或对象存储桶。
它们都不负责整盘镜像。Kopia 文档写得很直白,它不会 image 整台机器,只备份你指定的文件与目录;restic 的模型同样以路径为单位。想克隆整块硬盘,应该交给 dd、Clonezilla 或文件系统的 send/receive。
所以筛方案可以先用三个问题:仓库落在哪里、是否需要图形界面、有没有人定期跑一次真实还原。前两个决定上手成本,第三个决定这套备份是否真的存在。加密密码的保管方式建议参考开源密码管理器与两步验证工具清单里的做法,别和仓库放在同一台机器上。
restic:单文件二进制,把仓库交给对象存储
restic 用 Go 写成,BSD-2-Clause 许可,仓库与数据结构被当作公共 API 对待,因此升级版本一般不需要重做备份。当前版本线是 0.19.x:0.19.0 于 2026 年 6 月 9 日发布,0.19.1 于 2026 年 7 月 5 日发布,后者修了挂载点重叠、备份源路径不可访问等几个缺陷,详见发布页。
安装形态很轻:一个可执行文件,解压即可用,没有常驻进程与数据库。仓库后端覆盖本地目录、SFTP、REST 服务、S3 及兼容实现(如 MinIO)、OpenStack Swift、Backblaze B2、Azure Blob、Google Cloud Storage;不在列表里的服务可以挂 rclone。

日常只有四条命令:init 建仓库、backup 打快照、snapshots 列清单、restore 还原。加密在客户端完成,仓库里只有密文,服务端拿不到明文;代价是仓库密码丢失后数据无法恢复,这是设计取舍而不是缺陷。
验证是它比较强调的一环。check 默认只校验仓库结构,加 --read-data 才会读回全部数据块;--read-data-subset=1/5 这类写法可以把全量校验拆成五次夜间任务,避免一次拉满带宽。想找具体文件用 find,想跨仓库搬运用 copy --from-repo。
跨仓库复制有个容易踩的坑:目标仓库要用 init --from-repo --copy-chunker-params 创建。官方文档提醒,分块参数不一致时去重会失效,两边都存在的文件可能占掉双倍空间。
边界也很清楚:没有内置调度器,靠 cron 或 systemd timer;CLI 之外没有官方界面,需要图形化就交给 Backrest。mount 依赖 FUSE,在受限环境里不一定可用。
Kopia:自带界面与服务端,策略引擎更完整
Kopia 也是 Go 项目,Apache-2.0 许可,同时提供命令行与 KopiaUI 桌面端。0.23.1 于 2026 年 6 月 16 日发布,发布说明写明它修复了一个可能导致数据丢失的罕见竞态,建议升级。支持的存储位置在官方文档首页有完整清单。
它和 restic 的分工差异在「策略」和「多人」。policy set 可以按目录指定 keep-latest、keep-daily、keep-weekly、keep-monthly 等留存规则,也能指定压缩算法,仓库不会无限增长到把桶塞满。
Repository Server 模式让多个客户端只拿到用户名和密码,由服务端代理底层存储凭据,每个用户只能看到自己的快照与策略。多台机器共用一份存储时,这种隔离比共享同一把密钥更稳妥。
后端覆盖 S3 及兼容服务、Azure Blob、Backblaze B2、Google Cloud Storage、WebDAV、SFTP、本地目录,以及实验性的 rclone 接入。它还针对快照加入了 Reed-Solomon 纠错,用来抵抗位翻转与坏块。
代价在生态与格式:资源占用取决于并发数与压缩设置,需要按机器情况调参;仓库格式与 restic、Borg 互不兼容,迁移只能先还原再重新备份。另外它不负责系统回滚,那类需求交给 Timeshift 或文件系统快照更合适。
BorgBackup 与 Borgmatic:SSH 仓库的传统路线
Borg 从 2015 年维护至今,BSD 许可。当前稳定线是 1.4.5,2026 年 7 月 19 日发布;1.2.9 属于仍在维护但不再出新版的旧稳定线。2.0 处在测试阶段,测试版 2.0.0b25 于 2026 年 9 月 27 日发布,官网明确写着暂不要用于生产环境。
能力集中在去重与压缩:内容定义分块让相同数据只存一份,压缩可选 lz4、zstd、zlib、lzma,加密为带认证的 AES,密钥可以用 repokey 存进仓库,也可以用 keyfile 单独保管。
传输方式相对保守:仓库放本地磁盘,或通过 SSH 访问远端。要上 S3、B2 这类对象存储,需要 rclone 做一层挂载,链路里多一个环节,也多一个故障点。
因为它本身不带调度,社区普遍用 borgmatic 收口。borgmatic 2.2.0 于 2026 年 10 月 29 日发布,用 YAML 描述仓库与备份源,内置数据库导出钩子与监控通知钩子,并新增 tarballs 钩子,在保留 Borg 去重的前提下备份大 tar 包,适合虚拟机镜像这类整块文件。
平台方面,1.4.5 发布页列出的预编译二进制覆盖 Linux、FreeBSD 与 macOS,Windows 用户通常要借助 WSL 之类的环境。挂载同样依赖 FUSE。
图形界面补位:Backrest 与 Duplicati
如果 restic 的模型合适但不想天天敲命令,Backrest 是一个可选项。它把 restic 包成 Web 界面,负责建仓库、浏览快照、还原文件、排计划任务,并提供通知与钩子。1.14.1 于 2026 年 7 月 12 日发布,内置的 restic 版本为 0.19.1。
它以单个二进制运行,覆盖 Linux、macOS、Windows、FreeBSD 与 Docker。需要留意的是它不改变仓库格式,底层仍是 restic 仓库,界面只是编排层;哪天不再用它,命令行照样能读同一份数据。
Duplicati 走的是另一条路:界面优先,安装包覆盖 Windows、Linux、macOS 与群晖。2.4.1.0 稳定版于 2026 年 10 月 29 日发布,新增还原测试,可以在备份结束后抽样还原并校验;同时支持 Microsoft 365 与 Google Workspace 的增量列举,不必每次全量扫描。
它的仓库格式与前三者不通用,迁移同样只能走还原再备份;更适合把界面操作与 Office 云端备份放在优先位置的人群。
自建备份工具怎么按场景选
把版本与能力放在一张表里,差异会更直观。
| 工具 | 语言与许可 | 当前版本 | 界面 | 原生对象存储 | 内置调度 |
|---|---|---|---|---|---|
| restic | Go / BSD-2 | 0.19.1(2026-07-05) | 无,可配 Backrest | 支持 | 无 |
| Kopia | Go / Apache-2.0 | 0.23.1(2026-06-16) | 桌面端与服务端 Web | 支持 | 策略加计划 |
| BorgBackup | Python + C / BSD | 1.4.5(2026-07-19) | 无,可用 Borgmatic 或 Vorta | 需 rclone 中转 | 无 |
| Backrest | TypeScript 与 GPL-3.0 | 1.14.1(2026-07-12) | Web | 继承 restic | 有 |
| Duplicati | C# | 2.4.1.0(2026-10-29) | 桌面端与 Web | 支持 | 有 |
单机加对象存储、习惯脚本化管理:走 restic,配 cron 或 systemd timer,脚本长度通常在十行以内。定时任务本身也要有人盯着,可以借轻量服务器监控工具的思路,让备份失败时能收到提醒,而不是等硬盘坏掉才发现。
多台机器共用一份存储、需要分账号:看 Kopia 的 Repository Server,客户端拿不到存储凭据,权限边界更清楚。
已有 SSH 备份服务器或 VPS:Borg 加 borgmatic 更顺。压缩与还原是它的长处,数据库导出钩子也省事。
完全不想碰命令行:restic 路线选 Backrest,Office 云端路线选 Duplicati。
如果你只是想把命令行工具的能力边界摸清楚,终端命令行工具清单里的分类方式可以对照着看,备份类工具同样适用「输入、输出、失败模式」这套拆法。
常见问题
这几个工具之间能直接迁移吗?不能。仓库格式各自独立,只能先还原再重新备份。restic 内部可以用 copy 跨仓库搬快照,但要提前对齐分块参数。
加密密码丢了还能救吗?不能。密钥由密码在客户端派生,服务端只有密文,密码丢失等同于数据丢失。请把它放进密码管理器,并保留一份离线副本。
备份任务跑成功就代表能还原吗?不代表。至少要定期跑 check --read-data 或按比例抽样校验,并真的还原过一两个文件到临时目录。
这些工具能替代系统快照吗?不能。它们管的是文件与目录,系统回滚、整盘克隆属于另一类工具。
适用人群可以这样划分:有对象存储额度、愿意写脚本的人从 restic 起手;管几台机器、要给同事或家人开账号的人看 Kopia 服务端;有机房或 VPS、习惯 SSH 的人用 Borg 加 borgmatic;只想要界面的人选 Backrest 或 Duplicati。上手顺序建议固定为三步:先定仓库位置,再定密码保管方式,最后把还原演练写进日历。
© 版权声明
文章版权归作者所有,转载需注明出处。未声明原创的皆为网络收集,如有侵权请邮箱lishiwenhuagx@sina.com联系下架处理。




