UrBackup 2.5.38 介绍与选型指南
UrBackup 是一款 C/S 架构的开源网络备份系统,兼具文件备份与磁盘镜像备份能力。本文基于官方公开资料梳理其核心特性、工作原理与版本节奏,并与 BorgBackup、Restic、Duplicati、Bacula 从社区活跃度、版本节奏、兼容矩阵三个维度量化对比,给出选型建议。数据实查日期 2026-10-19。
UrBackup 2.5.38 介绍与选型指南
一、产品概述
UrBackup 是一款开源的 C/S(Client/Server)架构网络备份系统,由 Martin Raiber 发起并持续维护,官方代码仓库托管于 GitHub(uroni/urbackup_backend,AGPL-3.0 许可证)。其定位是"Client/Server 网络备份系统":在一台服务器上集中管理备份存储,局域网或互联网中的多台机器安装客户端代理后,由服务端统一调度、执行和存储备份。
与常见的单机备份工具(如《BorgBackup 1.4 介绍与选型指南》《Restic 0.19 介绍与选型指南》)不同,UrBackup 从设计之初就面向"一个管理端管多台机器"的场景:管理员在 Web 管理端(默认端口 55414)就能看到所有客户端的在线状态、最近备份时间、存储占用,并能远程触发备份、浏览任意时间点的备份内容、把文件直接恢复回客户端。
当前最新稳定版本(实查日期 2026-10-19,来源 GitHub Releases):
| 角色 | 最新稳定版 | 发布日期 | 说明 |
|---|---|---|---|
| 服务端 | 2.5.38 | 2026-08-30 | Release 名 "2.5.38 server" |
| 客户端(Windows) | 2.5.32 | 2026-06-17 | Release 名 "2.5.32 client (Windows only)" |
| 客户端(Linux) | 2.5.31 | 2026-06-17 | Release 名 "2.5.31 client (Linux only)" |
需要特别注意:客户端 2.5.32 是 Windows 专用版本,Linux 客户端的最新稳定版是 2.5.31。Windows 客户端和服务端版本号独立演进,选择时不要按"客户端版本必须等于服务端版本"理解。
二、核心特性
依据官方下载页与文档公开描述,UrBackup 的核心特性可以归纳为五点:
1. 文件备份与镜像备份双轨。 文件备份按目录/文件粒度备份,用户可以自选备份哪些路径,恢复时支持浏览目录树、恢复单个文件或整个目录;镜像备份则对整块分区/磁盘做块级快照备份(Windows 下输出 VHD(Z) 格式,Linux 下依赖 LVM 等快照机制),用于整机灾难恢复。两者共用同一套增量与去重机制。
2. 块级去重与合成全量。 UrBackup 服务端使用固定大小块去重(默认 treehash 哈希模式),同一块数据在所有客户端、所有备份点之间只存一份。增量备份只传输变化的块;多次增量后可以"合成全量"(synthetic full),不需要重新传输全部数据即可得到一个完整的全量备份视图。从服务端设置页可以看到相关选项:全量文件传输模式(local_full_file_transfer_mode=hashed)、镜像合成方式(internet_full_image_style=synthetic)等。
3. 客户端零配置自动发现。 客户端安装后通过 UDP 广播(端口 35623)自动发现同网段服务端并完成注册,管理员在 Web 端确认即可开始备份。跨网段场景支持"互联网客户端"模式(服务端开启 55415 端口 + 互联网模式密钥认证)。
4. 完整的 Web 管理端。 内置 Web 管理界面(默认 55414 端口),覆盖状态总览、备份浏览、日志查看、用户/组权限、存储统计、设置管理全部功能;同时提供 Windows 客户端托盘 GUI 与 Linux/macOS 命令行工具 urbackupclientctl。
5. 多平台与多种交付形态。 服务端覆盖 Windows、Debian/Ubuntu(deb 包 + PPA 仓库)、RHEL/SuSE 系(OpenSuSE Build Service)、Arch/Gentoo、FreeNAS/QNAP/OpenMediaVault 等 NAS 平台,以及官方多架构 Docker 镜像(x86/ARM 32/64 位);客户端覆盖 Windows(exe/MSI)、macOS(pkg)、Linux(官方自更新安装脚本,含 x86/x86_64/ARMv6+/ARM64 静态构建)、Android(静态构建)。另提供可引导的 UrBackup Restore Stick 2.6.0(x64)用于裸机镜像恢复。
三、工作原理与备份机制
UrBackup 的备份流程可以分为四步,理解这一流程对后续的运维排障很有帮助:
第一步:发现与注册。 客户端启动后(Linux 下是 urbackupclientbackend 服务,配置文件 /etc/default/urbackupclient)通过 UDP 广播寻找服务端,或按配置直连服务端 IP。服务端与客户端交换身份密钥(服务端身份公钥 + 客户端 access key)完成互信注册。
第二步:索引与差异计算。 服务端按调度(或管理员手动触发)发起备份。客户端扫描备份目录(Linux 客户端通过 urbackupclientctl add-backupdir 或服务端下发配置确定),生成文件清单和分块哈希;服务端与自己持有的历史索引比对,计算出"需要传输的差异块"。
第三步:快照与传输。 为保证数据一致性,客户端优先使用文件系统快照(Windows VSS、Linux LVM/btrfs/dattobd);快照不可用时退化为直接备份(服务端日志会记录 Backing up "ubdata" without snapshot.)。差异块经压缩传输到服务端,与历史块硬链接组装出该备份点的完整目录树。
第四步:入库与告警。 服务端写入备份存储目录(按 客户端名/YYMMDD-HHMM 组织,如 backup-client1/261019-0844),更新备份数据库,然后向客户端同步文件访问令牌(access token)。若某客户端超过"备份间隔 × 告警倍数"仍未成功备份,服务端内置的 Lua 告警脚本会触发告警(默认发邮件,也可替换为 Webhook)。
关于镜像备份的适用边界:Windows 客户端可以做全盘镜像备份并支持从备份直接启动卷挂载;Linux 客户端的镜像备份依赖块设备快照机制(LVM 等),在纯目录、无块设备快照的环境中会显示 image_not_supported,此时只能使用文件备份。
四、版本发布节奏(2026-10-19 实查)
从 GitHub Releases(uroni/urbackup_backend)可以还原出近两年的版本节奏:
| 发布日期 | 版本 | 类型 |
|---|---|---|
| 2025-04-26 | 2.4.14 | 2.4 系列服务端收尾版 |
| 2025-04-26 | 2.5.33 | 2.5 系列服务端 |
| 2025-11-08 | 2.5.34 | 服务端 |
| 2026-01-11 | 2.5.35 | 服务端 |
| 2026-02-05 | 2.5.28 | 客户端 |
| 2026-02-12 | 2.5.29 | 客户端 |
| 2026-04-23 | 2.5.37 | 服务端 |
| 2026-04-23 | 2.5.30 | 客户端 |
| 2026-06-17 | 2.5.31 | 客户端(Linux only) |
| 2026-06-17 | 2.5.32 | 客户端(Windows only) |
| 2026-08-30 | 2.5.38 | 服务端(当前最新) |
几点观察:
- 服务端 2.5 系列大约每 2~5 个月发布一个版本(2.5.33 → 2.5.38 用时 16 个月发布 5 版),项目处于活跃但"克制"的维护节奏,没有频繁的大版本更替。
- 服务端与客户端独立发版:同一日期可能同时发布服务端和客户端(如 2026-04-23、2026-06-17),版本号各自推进。
- 存在版本号跳跃(无公开的 2.5.36 服务端 Release),选型时以 GitHub Releases 页实际列表为准,不要按版本号顺推。
- 2.4 系列与 2.5 系列曾在同一天(2025-04-26)各发布一版,说明旧大版本有跟进维护期,但新特性只落在 2.5。
五、同类选型对比
以下对比数据实查日期均为 2026-10-19。UrBackup、BorgBackup、Restic、Duplicati 的数据来自 GitHub API(仓库元数据与最新 Release);Bacula 无官方 GitHub 仓库,数据来自其 SourceForge 项目页(RSS 与项目描述)。
5.1 社区活跃度对比
| 指标 | UrBackup | BorgBackup | Restic | Duplicati | Bacula |
|---|---|---|---|---|---|
| 官方代码托管 | GitHub uroni/urbackup_backend | GitHub borgbackup/borg | GitHub restic/restic | GitHub duplicati/duplicati | SourceForge(无官方 GitHub 主仓库) |
| Stars | 939 | 13,861 | 36,658 | 15,133 | 无 stars 体系(以下载量计) |
| 最近代码推送 | 2026-10-15 | 2026-10-19 | 2026-10-18 | 2026-10-19 | SourceForge 文件更新 2026-08-06 |
| 主要开发语言 | C++ | Python | Go | C# | C |
| 许可证 | AGPL-3.0(backend 仓库 LICENSE 实查) | BSD 3-clause(官网声明) | BSD-2-Clause(GitHub API 实查) | MIT(仓库 LICENSE 实查,2026 年起) | AGPLv3(社区版) |
单看 Stars,Restic(36,658)遥遥领先,Duplicati(15,133)和 BorgBackup(13,861)处于第二梯队,UrBackup(939)规模最小。但要注意两点:其一,UrBackup 的主仓库 urbackup_backend 只是服务端引擎,其 Web 前端(urbackup_frontend_wx,127 stars)、恢复盘(urbackup_restore_cd)等是独立仓库,社区讨论集中在官方论坛(forums.urbackup.org)而非 GitHub;其二,Bacula 以 SourceForge 下载量为社区规模口径,其项目页自述"Based on Source Forge downloads, Bacula is the most popular Open Source backup program",这类老牌项目的影响力本就不体现在 Stars 上。因此 Stars 只能反映"开发者社区热度",不等于产品成熟度或企业采用度。
5.2 版本节奏对比
| 维度 | UrBackup | BorgBackup | Restic | Duplicati | Bacula |
|---|---|---|---|---|---|
| 最新稳定版 | 服务端 2.5.38(2026-08-30) | 1.4.5(2026-07-18) | 0.19.1(2026-07-05) | 2.4.0.1(2026-10-07) | 15.0.3(2025-03-27);另有 beta 17.0.0(2026-08-06) |
| 近一年发版 | 服务端 3 版(2.5.35/2.5.37/2.5.38) | 1.4.x 维护线小版本 | 0.19.0 → 0.19.1 | 2.4.0.1(长期 2.1 beta 后的稳定线) | 15.0.3(一年一版节奏) |
| 客户端/服务端关系 | 独立发版(服务端 2.5.38 / 客户端 Linux 2.5.31 / Windows 2.5.32) | 无服务端概念 | 无服务端概念 | 无服务端概念 | Director/Storage/File Daemon 三组件协同 |
UrBackup、Bacula 是 C/S 型产品,版本节奏围绕服务端引擎展开;Borg、Restic、Duplicati 是"仓库型/单机型"工具,没有服务端版本一说,这也决定了它们各自适合的管理规模。
5.3 功能与兼容矩阵
| 能力 | UrBackup | BorgBackup | Restic | Duplicati | Bacula |
|---|---|---|---|---|---|
| 架构模型 | C/S 集中管理 | 单机 CLI + 仓库 | 单机 CLI + 仓库 | 单机 GUI + 仓库 | C/S 企业级(Director/Storage/File Daemon) |
| 文件备份 | 支持 | 支持 | 支持 | 支持 | 支持 |
| 磁盘/分区镜像备份 | 支持(Windows VHD(Z);Linux 依赖 LVM 等) | 不支持 | 不支持 | 不支持 | 依赖模块与插件 |
| 去重 | 服务端块级去重(合成全量) | 块级去重(仓库内) | 块级去重(仓库内) | 块级去重 | 企业版特性 |
| 加密 | 传输/存储可选加密 | 仓库级加密(必选) | 仓库级加密(必选) | 仓库级加密 | 企业版加密 |
| Web 管理端 | 内置(55414) | 无官方(第三方) | 无官方 | 桌面 GUI(Web UI 在 2.x beta 线) | 企业版/第三方 bacula-web |
| 客户端零配置接入 | UDP 广播自动发现 | 不适用 | 不适用 | 不适用 | 需手工注册 |
| Linux 客户端 | 官方自更新脚本(x86/ARM 全覆盖) | 原生支持 | 原生支持(Go 单二进制) | 支持(依赖 .NET) | File Daemon 原生 |
| Windows 全盘恢复 | UrBackup Restore Stick 2.6.0 引导恢复 | 不适用 | 不适用 | 不适用 | 企业方案 |
| 集中报表/多租户 | Web 端按用户/组授权 | 无 | 无 | 无 | Director 集中调度,企业级目录 |
5.4 选型结论
结合上述数据,五款工具的定位差异清晰:
- 选 UrBackup:需要"一台备份服务器集中管理几十上百台机器"、要 Windows 全盘镜像备份、希望非专业用户通过 Web 界面自助浏览/恢复文件、客户端 OS 多样(含 ARM 设备)。典型场景:中小企业内网备份、家庭实验室多机备份、托管服务商给客户提供备份增值服务。
- 选 BorgBackup:Linux/Unix 为主的服务器群、由运维人员脚本化操作、追求仓库级加密与压缩比。它没有 C/S 管理端,配合 SSH + cron 使用。跨 Windows 场景受限(需 WSL 或 v2 beta)。
- 选 Restic:想要 Borg 的仓库模型但要求全平台单二进制(含 Windows/macOS 原生)、云对象存储后端支持丰富(S3/B2 等)。同样无集中管理端,多机方案靠脚本或上层编排。
- 选 Duplicati:单机用户(含 Windows 桌面)需要图形界面做加密备份到云存储。其 2.x 稳定线发布偏慢(长期在 2.1 beta,2026-10 才有 2.4.0.1 稳定版),且无集中管理能力。
- 选 Bacula:企业级大规模环境,需要 Director 集中调度、磁带库支持、目录级作业编排与合规审计,且有人力维护其复杂度。社区版功能精简,完整能力在商业版(Bacula Enterprise)。
一句话总结:"多客户端集中管理 + 镜像备份 + 开箱即用 Web 界面"这个组合需求下,UrBackup 在开源阵营里几乎没有同位竞品;如果只是少数 Linux 机器的脚本化备份,Borg/Restic 更轻;如果是大型企业要磁带库和目录服务,Bacula 更重。UrBackup 的相对短板也应如实认知:仓库本身不强制加密(加密为可选项)、GitHub Stars 口径的社区规模小、服务端没有官方的分布式/集群方案,超大规模(TB 级单实例)需要自行规划存储。
六、参考链接
- UrBackup 官网:https://www.urbackup.org/
- UrBackup 下载页(含全部安装形态与 Docker 命令):https://www.urbackup.org/download.html
- GitHub 仓库(服务端/后端):https://github.com/uroni/urbackup_backend
- GitHub Releases(版本实查来源):https://github.com/uroni/urbackup_backend/releases
- 服务器管理手册:https://www.urbackup.org/ServerAdminGuide-v2.4.x.pdf
- 官方论坛:https://forums.urbackup.org/
- BorgBackup 官网(对比数据来源):https://www.borgbackup.org/
- Restic 官网(对比数据来源):https://restic.net/
- Duplicati 官网(对比数据来源):https://duplicati.com/
- Bacula SourceForge 项目页(对比数据来源):https://sourceforge.net/projects/bacula/