Duplicati:开源免费的备份解决方案,支持多种操作系统
-
Duplicati:开源免费的备份解决方案,支持多种操作系统
目录- 一、什么是 Duplicati
- 二、核心设计理念
- 三、主要功能
- 3.1 加密备份 🔒
- 3.2 增量备份与块级去重 📦
- 3.3 多种存储支持 ☁️
- 3.4 压缩功能 📁
- 3.5 计划任务 ⏰
- 3.6 远程文件锁定(2025年新功能)🆕
- 3.7 企业级管理功能(Duplicati Portal)🏢
- 四、使用场景
- 4.1 个人用户 👤
- 4.2 小型企业 🏪
- 4.3 开发者和 IT 专业人员 👨💻
- 4.4 家庭 NAS 用户 🏠
- 五、安装与配置
- 5.1 下载与安装
- 5.2 Docker 部署(推荐用于服务器环境)🐳
- 5.3 初始配置
- 5.4 定时备份
- 六、命令行与自动化
- 6.1 基本命令格式
- 6.2 常用命令
- 6.3 脚本钩子
- 6.4 从 GUI 导出命令行
- 七、灾难恢复
- 7.1 恢复所需条件
- 7.2 恢复方式
- 7.3 灾难恢复最佳实践
- 八、与其他备份工具的对比
- 九、总结与建议
一、什么是 Duplicati
Duplicati 是一款免费的开源备份工具,支持多种操作系统,包括 Windows、macOS 和 Linux。它的设计目标是提供简单易用的界面,同时具备强大的功能,满足不同用户的备份需求。
Duplicati 采用 MIT 开源许可证发布,这意味着用户可以自由使用、修改和分发该软件,无论是个人还是商业用途均无需支付任何费用。该项目在 GitHub 上活跃开发,拥有庞大的社区支持和持续的功能迭代。
截至 2025 年,Duplicati 已成立商业公司 Duplicati, Inc.,由原开发者 Kenneth Skovhede 担任 CTO,并获得 Open Core Ventures 的投资支持。这标志着 Duplicati 在保持开源核心的同时,也开始提供企业级功能和专业服务,进一步提升了产品的可靠性和长期发展前景。
二、核心设计理念
Duplicati 的架构遵循"零信任"(Trust No One, TNO)安全原则,这是理解其设计哲学的关键:
🔐 设计原则 📝 具体含义 客户端加密 所有数据在离开本地设备之前就已完成加密,存储提供商无法读取您的数据 密钥自持(BYOK) 加密密钥完全由用户掌控,即使 Duplicati 公司也无法解密您的备份 端到端保护 从备份到恢复的全过程,数据始终处于加密状态 这种设计意味着:即便您的云存储账户被入侵、ISP 被监控,或者 Duplicati 的服务器遭到攻击,您的备份数据依然是安全的、不可读的。
三、主要功能
3.1 加密备份 🔒
Duplicati 使用 AES-256 加密算法,确保备份数据的安全性。即使备份文件被盗取,也无法轻易解密。
技术细节:
- 加密标准:采用 AES-256 认证加密,这是目前业界公认的最高安全级别对称加密算法
- 文件格式:默认使用开源的 AESCrypt 文件格式,兼容性强,任何支持 AESCrypt 的工具都可以解密
- GPG 支持:除内置加密外,还支持集成 GNU Privacy Guard (GPG),适合已有 GPG 密钥体系的用户
- 密钥管理:加密密码/密钥永远不会离开您的计算机,真正实现本地密钥控制
💡 安全提示:请务必安全保管您的加密密码。 一旦丢失,备份数据将无法恢复——这正是零信任架构的安全保障。3.2 增量备份与块级去重 📦
通过增量备份技术,Duplicati 只备份自上次备份以来发生变化的文件,节省存储空间和备份时间。
Duplicati 采用先进的块级(Block-Level)去重技术,这是其核心技术优势之一:
工作原理:
原始文件 → 分割成固定大小块(默认100KB)→ SHA-256 哈希计算 → 去重判断 → 压缩加密 → 上传🔧 技术特性 📋 说明 块大小 默认 100KB,可根据需求调整 哈希算法 SHA-256,确保块的唯一性识别 跨文件去重 不同文件中的相同内容块只存储一次 跨版本去重 同一文件的不同版本共享未变化的块 实际效益:
- ✅ 文件重命名或移动后,备份几乎不产生新数据
- ✅ 大文件的小改动只上传变化的块
- ✅ 多个相似文件自动去重
- ✅ 避免传统"全量备份 + 增量备份"的复杂循环
3.3 多种存储支持 ☁️
支持多种存储后端,包括本地存储、FTP、SFTP、WebDAV 以及云存储服务(如 Amazon S3、Google Drive、OneDrive 等)。
Duplicati 支持的完整存储后端列表(2025年更新):
类别 支持的服务 标准协议 FTP、SFTP (SSH)、WebDAV 对象存储 Amazon S3、Backblaze B2、IDrive e2、Wasabi、MinIO 云存储 Google Drive、Google Cloud Storage、Microsoft OneDrive、Dropbox、Box、MEGA 企业级 Microsoft Azure Blob Storage、Rackspace Cloud Files、OpenStack Swift 去中心化 Storj DCS(原 Tardigrade) 区域服务 腾讯云 COS、阿里云 OSS 本地/网络 本地文件夹、网络共享(SMB/CIFS)、USB 驱动器 ⚠️ 注意事项:
- Sia 后端已移除:由于 Sia 网络进行了不兼容的硬分叉
- MEGA 后端标记为未维护:由于缺乏支持的库,建议迁移到其他存储
3.4 压缩功能 📁
备份文件可以进行压缩,进一步减少存储空间的占用。
Duplicati 在块级处理后对数据进行压缩,支持多种压缩算法:
- ZIP:默认压缩格式,兼容性最好
- 7z (LZMA2):更高压缩率,适合存储空间敏感场景
- 无压缩:适合已压缩文件(如视频、图片)为主的备份
压缩与加密的处理顺序:
原始数据 → 块分割 → 去重 → 压缩 → 加密 → 打包成卷 → 上传3.5 计划任务 ⏰
用户可以设置定时备份任务,确保数据定期备份,不遗漏任何重要信息。
Duplicati 提供灵活的调度选项:
- 📅 固定周期:每小时、每天、每周、每月
- 🎯 自定义 Cron 表达式:满足复杂调度需求
- 🔄 智能重试:错过的备份会在下次可能时自动运行
- 📊 带宽限制:可设置上传/下载速度限制,避免影响正常网络使用
3.6 远程文件锁定(2025年新功能)🆕
Duplicati 新增了远程文件锁定功能,为备份数据提供额外的保护层:
特性 说明 功能 备份完成后锁定远程存储上的必要文件,防止被删除或覆盖 配置 使用高级选项 --remote-file-lock-duration设置锁定时长(如30D表示30天)支持后端 Amazon S3、Azure Blob Storage、Backblaze B2、iDrive e2 应用场景 防勒索软件攻击、满足合规性要求、防止误删除 3.7 企业级管理功能(Duplicati Portal)🏢
2024年推出的 Duplicati Portal 云服务,为企业用户和 MSP(托管服务提供商)提供集中管理能力:
- 🖥️ 统一仪表板:在一处查看所有客户端机器的实时备份状态
- 📋 策略模板:创建备份策略后可推送到多个客户端
- 🏗️ 多组织支持:在一个订阅下管理多个隔离的子组织
- 🤖 后台代理:部署不可在主机上访问的后台代理,提高安全性
四、使用场景
4.1 个人用户 👤
适用于个人电脑的数据备份,如照片、文档、音乐等。
典型应用:
- 💾 重要文档和工作文件的定期云备份
- 📸 照片和视频的长期归档(配合 Backblaze B2 等低成本存储)
- 🔐 敏感个人数据的加密本地备份
- 💻 多台电脑之间的数据同步备份
4.2 小型企业 🏪
适用于小型企业的服务器和工作站备份,确保业务数据的安全。
典型应用:
- 📊 财务数据和客户资料的合规备份
- 🖥️ 员工工作站的自动化备份
- 🌐 小型服务器的异地容灾
- 📁 共享文件服务器的版本化备份
4.3 开发者和 IT 专业人员 👨💻
适用于需要频繁备份和恢复数据的开发环境和测试环境。
典型应用:
- 🗄️ 数据库的定期快照备份
- ⚙️ 配置文件和脚本的版本化存储
- 🐳 Docker 容器和卷数据的备份
- 🔄 CI/CD 环境的状态保存
4.4 家庭 NAS 用户 🏠
Duplicati 在家庭 NAS 环境中表现出色:
- 📦 Synology/QNAP 支持:通过 Docker 容器轻松部署
- 🔗 多设备集中备份:家庭成员的设备可统一备份到 NAS
- ☁️ NAS 到云的二级备份:实现 3-2-1 备份策略
- 💪 低资源占用:适合运行在 ARM 架构的入门级 NAS 上
五、安装与配置
5.1 下载与安装
从 Duplicati 官方网站 下载适用于您操作系统的安装包,并按照提示完成安装。
各平台安装方式:
平台 安装方式 Windows 下载 MSI 安装包,双击运行向导安装 macOS 下载 DMG 文件,拖拽到应用程序文件夹 Linux (Debian/Ubuntu) sudo apt install duplicati或下载 .deb 包Linux (RHEL/CentOS) 下载 .rpm 包安装 Docker 使用官方或 LinuxServer.io 镜像 5.2 Docker 部署(推荐用于服务器环境)🐳
使用 Docker Compose 部署 Duplicati:
services: duplicati: image: lscr.io/linuxserver/duplicati:latest container_name: duplicati environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai - DUPLICATI__WEBSERVICE_PASSWORD=your_secure_password volumes: - ./config:/config # 配置文件存储 - ./backups:/backups # 本地备份目标 - /path/to/source:/source # 要备份的源数据 ports: - 8200:8200 restart: unless-stopped关键配置说明:
环境变量 说明 PUID/PGID容器运行用户的 UID/GID,确保文件权限正确 TZ时区设置,影响备份调度时间 DUPLICATI__WEBSERVICE_PASSWORDWeb 界面登录密码 ⚠️ Docker 部署注意事项:
- 需要备份的目录必须挂载到容器内
- 配置数据存储在
/config(LinuxServer 镜像)或/data(官方镜像) - 首次启动时会生成 JWT 签名密钥和随机密码,建议通过环境变量预设密码
5.3 初始配置
启动 Duplicati 后,按照向导设置备份任务,包括选择备份源、目标存储、加密方式等。
配置向导步骤:
1️⃣ 通用设置
- 为备份任务命名
- 设置加密密码(强烈建议启用)
- 选择加密算法(推荐 AES-256)
2️⃣ 选择备份目标
- 选择存储类型(本地/云存储/协议)
- 输入连接凭据
- 测试连接
3️⃣ 选择源数据
- 添加要备份的文件夹
- 设置排除规则(如临时文件、缓存)
- 使用过滤器精确控制
4️⃣ 调度设置
- 设置自动备份时间
- 配置保留策略
5️⃣ 高级选项
- 带宽限制
- 压缩级别
- 卷大小设置
5.4 定时备份
设置备份计划,确保数据定期备份。
保留策略配置示例:
智能保留策略: - 保留最近 7 天的每日备份 - 保留最近 4 周的每周备份 - 保留最近 12 个月的每月备份 - 永久保留每年备份六、命令行与自动化
Duplicati 提供完整的命令行接口(CLI),适合自动化和脚本集成:
6.1 基本命令格式
# Linux/macOS duplicati-cli <command> [storage-URL] [arguments] [advanced-options] # Windows Duplicati.CommandLine.exe <command> [storage-URL] [arguments] [advanced-options]6.2 常用命令
命令 功能 backup执行备份操作 restore恢复文件 list列出备份版本 find搜索备份中的文件 compare比较不同版本差异 delete删除旧备份版本 repair修复本地数据库 test验证备份完整性 compact压缩远程存储 vacuum清理本地数据库 6.3 脚本钩子
Duplicati 支持在备份操作前后执行自定义脚本:
--run-script-before=/path/to/pre-backup.sh # 备份前执行 --run-script-after=/path/to/post-backup.sh # 备份后执行 --run-script-timeout=120s # 脚本超时时间脚本中可访问的环境变量(前缀
DUPLICATI__):DUPLICATI__OPERATIONNAME- 当前操作类型DUPLICATI__REMOTEURL- 远程存储 URLDUPLICATI__backup_name- 备份任务名称- 脚本可通过 stdout 输出修改 Duplicati 选项
6.4 从 GUI 导出命令行
💡 实用技巧: 您可以在图形界面中配置好备份任务(不启用调度),然后导出为命令行格式,方便集成到自己的任务调度系统(如 cron、Windows Task Scheduler)。
七、灾难恢复
数据恢复是备份的最终目的,Duplicati 提供多种恢复方案:
7.1 恢复所需条件
必需项 说明 ✅ 远程存储访问信息 协议、地址、凭据 ✅ 加密密码 如果启用了加密(强烈建议记录并安全保管) ✅ 恢复环境 安装了 Duplicati 的计算机 ✅ 足够的存储空间 用于存放恢复的文件 7.2 恢复方式
方式一:从配置恢复(推荐)
如果您之前导出并保存了备份配置文件,可以:
- 导入配置文件
- 重建本地数据库
- 浏览并选择要恢复的文件/版本
方式二:直接从远程存储恢复
即使没有配置文件,只要有存储访问信息和加密密码:
- 在 Duplicati 中选择"直接从备份恢复"
- 输入存储位置和凭据
- Duplicati 会下载必要的索引文件构建临时数据库
- 选择并恢复所需文件
方式三:使用恢复工具
Duplicati Recovery Tool 提供更细粒度的控制:
- 下载所有远程文件到本地
- 解密文件
- 逐步重建数据
7.3 灾难恢复最佳实践
📋 灾难恢复检查清单: □ 定期导出并安全存储备份配置 □ 加密密码存储在独立于备份的安全位置(如密码管理器) □ 定期进行恢复测试(至少每季度一次) □ 验证备份完整性(使用 test 命令) □ 记录所有存储位置的访问凭据 □ 制定并文档化恢复流程八、与其他备份工具的对比
了解 Duplicati 的定位有助于做出正确的工具选择:
特性 Duplicati Restic BorgBackup Kopia Duplicacy 开源 ✅ MIT ✅ BSD ✅ BSD ✅ Apache ⚠️ CLI免费 去重方式 固定块 可变块 可变块 可变块 Lock-free Web GUI ✅ 内置 ❌ ❌ ✅ 内置 ✅ 付费 多客户端同存储 ❌ ✅ ✅ ✅ ✅ 云存储支持 🌟 丰富 良好 有限 良好 良好 学习曲线 低 中 中 中 中 Windows 支持 🌟 优秀 良好 一般 良好 良好 Duplicati 的独特优势:
- 📊 最友好的图形界面,适合非技术用户
- ☁️ 最广泛的云存储支持
- 🪟 最佳的 Windows 平台体验
- 🆓 完全免费且开源
Duplicati 的局限:
- 不支持多客户端备份到同一存储位置的去重
- 固定块大小在某些场景下去重效率略低
- 大规模数据集时数据库可能变大
九、总结与建议
Duplicati 是一款功能强大且灵活的备份工具,适用于各种备份需求。通过其强大的加密和压缩功能,用户可以放心地备份重要数据,并在需要时轻松恢复。
🎯 推荐使用场景:
- ✅ 个人用户和小型企业的日常备份
- ✅ 需要友好图形界面的用户
- ✅ 备份目标为云存储的场景
- ✅ Windows 用户的首选开源方案
- ✅ 需要 AES-256 加密保护的敏感数据备份
⚠️ 可能需要考虑其他工具的场景:
- 超大规模数据集(TB 级别以上)
- 需要多台机器备份到同一存储并共享去重
- 纯命令行环境且追求极简
📚 学习资源:
歡迎留言回复交流。
Log in to reply.