Restic 0.19 介绍与选型指南
Restic 0.19 介绍与选型指南:官方资料溯源的加密去重快照备份架构、多后端支持、仓库口令模型与官方快速上手流程,以及与 BorgBackup、Duplicati、Rclone、Kopia 的量化选型对比。基于官方公开资料编写,未做本地安装实测,查询日期 2026-10-19。
Restic 0.19 介绍与选型指南
目标:基于官方公开资料(GitHub 官方仓库 restic/restic 的 README 与 Releases 页、restic 官方文档站)溯源介绍 Restic 0.19 稳定线的架构、特性与上手路径,并给出与 BorgBackup、Duplicati、Rclone、Kopia 的选型对比。本文不做本地安装与运行实测,全部数据实查于 2026-10-19。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(GitHub 官方仓库 restic/restic 的 README、Releases 页与仓库元数据,官方文档站 restic.readthedocs.io,官方论坛 forum.restic.net),本文不做本地安装与运行实测。
- 版本结论:本次介绍的版本为 Restic 0.19 系列,最新补丁 0.19.1(2026-07-05 发布),0.19.0 于 2026-06-09 发布;上一稳定线为 0.18(0.18.1,2025-09-21)。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新稳定版 | 0.19.1(2026-07-05) | github.com/restic/restic/releases |
| 系列时间线 | 0.19.0(2026-06-09);0.18.0(2025-03-27)、0.18.1(2025-09-21) | github.com/restic/restic/releases |
| 代码仓库 | restic/restic | github.com/restic/restic |
| 开源许可 | BSD-2-Clause | GitHub 仓库元数据 LICENSE 字段 |
| 实现语言 | Go | 官方仓库语言统计与 README |
| GitHub stars | 36652 | GitHub 仓库元数据(2026-10-19 实查) |
1.3 官方来源清单
二、软件概述
本文介绍的是 Restic 0.19 系列(最新补丁 0.19.1,2026-07-05 发布)。
Restic 是一款以 Go 语言编写、官方定位「快、安全、高效」的开源备份程序。它把待备份目录做内容分块,分块加密并去重后写入仓库(repository),每次备份生成一个可独立恢复、可单独 diff 的快照(snapshot)。项目原生支持 Linux、macOS、Windows 三大平台及 FreeBSD、OpenBSD 等系统(官方 README),后端覆盖本地目录、SFTP、REST 服务器、S3 兼容对象存储、Backblaze B2、Azure Blob、Google Cloud Storage、OpenStack Swift 等,并可通过 rclone 后端扩展到更多云存储服务。
社区层面,restic/restic 仓库拥有 36652 stars(2026-10-19 GitHub 实查),官方通过 GitHub Issues/PR 与 Discourse 论坛(forum.restic.net)提供社区支持;仓库最近推送时间为 2026-10-18,处于活跃维护状态。
三、核心架构
3.1 仓库与快照模型
- 仓库(Repository):存放全部备份数据与索引的后端存储,由
restic init初始化。仓库口令即数据加密密钥——官方 README 明确提示「知道口令才能访问仓库,丢失口令意味着数据无法恢复」。 - 快照(Snapshot):每次
restic backup产出一个快照,记录源路径、时间戳与文件树元数据;快照之间共享未变化的数据块,可独立恢复、对比(diff)或挂载浏览。 - 数据面:备份时文件按内容分块(chunk),分块以内容寻址方式加密去重后写入仓库,因此增量备份只需传输与保存新出现的块(官方文档「Backing up」章节口径)。
3.2 后端抽象
官方 README「Backends」节列出的原生后端:本地目录、SFTP(经 SSH)、REST server(官方 rest-server 实现)、Amazon S3 及任意 S3 兼容存储、OpenStack Swift、Backblaze B2、Microsoft Azure Blob Storage、Google Cloud Storage;其余服务经 rclone 后端桥接使用。
3.3 操作面
CLI 覆盖备份全生命周期(官方文档目录实查):backup(备份)、snapshots(列举)、restore(恢复)、check(完整性校验)、forget/prune(按策略清理快照并回收空间)、mount(FUSE 挂载浏览)、diff/tag 等辅助命令;文档同时覆盖脚本化(Scripting)与调度(Scheduling backups)。
四、功能特性
4.1 加密与去重
仓库内容以口令派生密钥加密后再落盘,官方文档设「Encryption」章节描述加密模型;内容寻址分块让多机共用同一仓库时可获得全局去重,重复数据只存一份。
4.2 灵活的备份策略
官方 backup 文档覆盖:干跑(dry-run)、排除/包含规则、从命令输出或 stdin 读取数据备份、快照标签、源目录未变化时跳过快照、文件变更检测、退出码约定与定时调度等(官方文档目录实查)。
4.3 校验、恢复与浏览
restic check 校验仓库完整性与数据损坏;restic restore 支持按快照 ID 或 latest 恢复到目标目录;restic mount 通过 FUSE 把仓库挂载为文件系统,直接按时间浏览历史快照(官方 README 与文档说明)。
4.4 0.19 系列状态
0.19.0 于 2026-06-09 GA,0.19.1 于 2026-07-05 跟进补丁(官方 Releases 实查);0.18 线最后补丁停留在 2025-09-21,整体呈「一年一至两个 minor、按需发补丁」的节奏。
五、快速上手
以下流程转述自官方 README Quickstart 与官方文档站(https://restic.readthedocs.io/en/stable/ ),本文不做本地实测。
5.1 安装
官方安装文档(https://restic.readthedocs.io/en/stable/020_installation.html )覆盖各平台包管理器与预编译二进制的获取方式。
5.2 初始化仓库并备份(官方 README 示例)
$ restic init --repo /tmp/backup
enter password for new backend:
enter password again:
created restic backend 085b3c76b9 at /tmp/backup
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.
$ restic --repo /tmp/backup backup ~/work
enter password for repository:
scan [/home/user/work]
scanned 764 directories, 1816 files in 0:00
snapshot 40dc1520 saved
(回显节选自官方 README Quickstart:仓库口令需两次确认,官方提示口令丢失则数据不可恢复。)
5.3 恢复与浏览
$ restic --repo /tmp/backup restore latest --target /tmp/restore-work
$ restic --repo /tmp/backup mount /mnt/restic
按官方 README 说明,备份完成后可用 restic restore 恢复文件,或用 restic mount 经 FUSE 挂载仓库浏览历史快照;更多选项见官方在线文档。配合本站发布的操作细节可进一步阅读《Restic 常用 CLI 命令详解》。
六、适用场景与限制
6.1 适用场景
- 服务器与工作站的加密增量备份,后端自建 S3/MinIO 或公有云对象存储皆可;
- 多机集中备份到统一仓库,利用内容寻址去重显著节省存储空间;
- 需要版本化浏览(mount/diff)与选择性恢复(restore 任意快照)的场景。
6.2 限制与注意事项
- 仓库口令丢失即数据不可恢复(官方 README 明示),口令保管是运维前提;
- 纯 CLI 工具,官方不提供图形界面,定时任务依赖系统调度器与脚本;
- rclone 桥接的非原生后端引入第三方依赖,故障面更宽;
- 0.x 版本线,升级前应阅读官方文档确认仓库格式与命令兼容性。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| Restic 0.19 | Go 实现的加密去重快照备份 | BSD-2-Clause |
| BorgBackup 1.4 | Python/C 实现的去重压缩备份 | BSD-3-Clause |
| Duplicati 2.4 | C# 实现、带 Web 界面的加密云备份 | MIT 主代码(proprietary/ 目录按订阅条款) |
| Rclone 1.75 | Go 实现的云存储同步与管理工具 | MIT |
| Kopia 0.23 | Go 实现的快照备份(CLI + GUI) | Apache-2.0 |
7.2 量化对比(2026-10-19 实查)
| 维度 | Restic 0.19.1 | BorgBackup 1.4.5 | Duplicati 2.4.0.1 | Rclone 1.75.2 | Kopia 0.23.1 |
|---|---|---|---|---|---|
| 开源许可 | BSD-2-Clause | BSD-3-Clause | MIT 主代码 | MIT | Apache-2.0 |
| GitHub stars | 36652 | 13859 | 15132 | 60391 | 14380 |
| 最新版本 | 0.19.1(2026-07-05) | 1.4.5(2026-07-18) | 2.4.0.1 stable(2026-10-07) | 1.75.2(2026-10-09) | 0.23.1(2026-06-16) |
| 实现语言 | Go | Python/C | C# | Go | Go |
| 界面 | 纯 CLI | 纯 CLI | Web GUI | CLI(GUI 为第三方) | CLI + 官方 GUI |
| 后端侧重 | 本地/SFTP/S3/B2/Azure/GCS/Swift,rclone 扩展 | 本地路径、SSH 远端仓库 | 云存储为主 | 数十种云存储的同步与搬运 | 本地/SFTP/B2/S3 等 |
| 备份模型 | 快照 + 全局去重 + 加密 | 去重压缩档案(块级) | 快照版本化 | 目录镜像/同步(非快照型) | 快照 + 去重 + 加密 |
(stars 与发版时间取自各项目 GitHub Releases 与仓库页面的 2026-10-19 实查;Duplicati 许可结构见其仓库 LICENSE 原文。)
7.3 选型建议
把「快照 + 端到端加密 + 对象存储后端」作为默认诉求时,Restic 是最均衡的选择;已有 SSH 基础设施、追求极致去重压缩且可接受仅 SSH 远端仓库的,可选 BorgBackup(见《BorgBackup 1.4 介绍与选型指南》);需要图形界面与桌面级云备份体验的,可选 Duplicati,但应注意其 proprietary/ 目录的订阅条款(见《Duplicati 2.4 介绍与选型指南》);核心诉求是在几十种云存储之间同步与搬运数据而非快照备份的,选 Rclone;想要 CLI + 官方 GUI 并评估服务器端缓存加速能力的快照备份,可测试 Kopia。
八、参考链接
- 官方文档站:https://restic.readthedocs.io/en/stable/
- 安装文档:https://restic.readthedocs.io/en/stable/020_installation.html
- 源码仓库:https://github.com/restic/restic
- 0.19.1 发行页:https://github.com/restic/restic/releases/tag/v0.19.1
- 官方论坛:https://forum.restic.net/
- BorgBackup 仓库:https://github.com/borgbackup/borg
- Duplicati 仓库:https://github.com/duplicati/duplicati
- Rclone 仓库:https://github.com/rclone/rclone
- Kopia 仓库:https://github.com/kopia/kopia