搬瓦工 VPS 部署 Duplicati 云端备份工具教程

Duplicati 是一款免费开源的备份工具,最大的特点是提供了功能完善的 Web 管理界面,让不熟悉命令行的用户也能轻松管理备份任务。Duplicati 支持将加密备份数据存储到 Amazon S3、Google Drive、OneDrive、Backblaze B2、SFTP 等 20 多种云存储后端。本教程将介绍如何在搬瓦工 VPS 上使用 Docker 部署 Duplicati,并通过 Web 界面配置自动备份方案。部署前请确保已安装好 Docker 和 Docker Compose

一、Duplicati 核心特性

  • Web 管理界面:全功能的浏览器操作界面,支持创建、监控和恢复备份。
  • 增量备份:只上传变化的数据块,节省带宽和存储空间。
  • AES-256 加密:备份数据在上传前加密,即使云端泄露也安全。
  • 丰富的后端:支持 S3、B2、Google Drive、OneDrive、WebDAV、SFTP 等。
  • 灵活的调度:支持自定义备份计划和保留策略。
  • 邮件通知:备份完成或失败时发送邮件通知。

二、Docker Compose 部署

2.1 创建项目目录

mkdir -p /opt/duplicati && cd /opt/duplicati

2.2 编写 docker-compose.yml

cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  duplicati:
    image: lscr.io/linuxserver/duplicati:latest
    container_name: duplicati
    restart: always
    environment:
      PUID: 0
      PGID: 0
      TZ: Asia/Shanghai
    volumes:
      - duplicati_config:/config
      - /opt/app:/source/app:ro
      - /var/www:/source/www:ro
      - /etc/nginx:/source/nginx:ro
      - /backup/duplicati:/backups
    ports:
      - "127.0.0.1:8200:8200"

volumes:
  duplicati_config:
EOF

docker compose up -d

2.3 配置 Nginx 反向代理

cat > /etc/nginx/conf.d/duplicati.conf << 'EOF'
server {
    listen 443 ssl http2;
    server_name backup.example.com;

    ssl_certificate /etc/letsencrypt/live/backup.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/backup.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8200;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
EOF

nginx -t && systemctl reload nginx

三、Web 界面初始配置

通过 SSH 隧道或 Nginx 反向代理访问 Duplicati Web 界面后,首先设置管理密码:

# SSH 隧道访问
ssh -L 8200:127.0.0.1:8200 root@your-server-ip

在浏览器中打开 http://localhost:8200,进入设置页面配置访问密码。

四、创建备份任务

在 Web 界面中,点击"添加备份"按钮,按向导配置:

  • 步骤一:选择备份名称和加密方式(推荐 AES-256)。
  • 步骤二:选择目标存储后端,填入 S3/B2/SFTP 等连接信息。
  • 步骤三:选择要备份的源目录(在 Docker 挂载的 /source 下)。
  • 步骤四:设置备份计划(如每天凌晨 3 点)。
  • 步骤五:配置保留策略和高级选项。

五、命令行操作

# 列出备份任务
docker exec duplicati duplicati-cli list-backup-sets /backups/mybackup

# 手动触发备份
docker exec duplicati duplicati-cli backup \
  "file:///backups/manual" /source/app \
  --passphrase="your_encrypt_pass_2026" \
  --compression-module=zip

# 从命令行恢复
docker exec duplicati duplicati-cli restore \
  "file:///backups/manual" \
  --passphrase="your_encrypt_pass_2026" \
  --restore-path=/tmp/restore

# 验证备份完整性
docker exec duplicati duplicati-cli test \
  "file:///backups/manual" all \
  --passphrase="your_encrypt_pass_2026"

六、配置 S3 兼容存储

在 Web 界面的存储类型中选择"S3 兼容",填入以下信息:

  • 服务器:s3.amazonaws.com(或自托管 MinIO 地址)
  • Bucket:backup-bucket-name
  • 路径:duplicati/vps-backup
  • AWS Access ID:你的 Access Key
  • AWS Secret Key:你的 Secret Key

点击"测试连接"确认配置正确。

七、邮件通知配置

在 Web 界面的设置中配置邮件通知:

# 通过高级选项设置 SMTP
# --send-mail-url=smtp://smtp.example.com:587/?starttls=when-available
# --send-mail-to=admin@example.com
# --send-mail-from=duplicati@example.com
# --send-mail-username=smtp_user
# --send-mail-password=smtp_pass
# --send-mail-level=Warning,Error,Fatal

八、备份数据库

# 创建数据库备份预处理脚本
cat > /opt/duplicati/pre-backup.sh << 'EOF'
#!/bin/bash
# 在备份前导出数据库
docker exec postgres pg_dumpall -U postgres > /opt/app/db-snapshot.sql
docker exec mysql mysqldump -u root --all-databases > /opt/app/mysql-snapshot.sql
EOF
chmod +x /opt/duplicati/pre-backup.sh

在备份任务的高级选项中设置"运行前脚本"指向此文件。

九、常见问题

备份文件过大

在高级选项中设置分块大小(默认 50MB),较小的分块更适合不稳定的网络连接。还可以配置文件过滤器排除日志和临时文件。

Web 界面无法访问

docker logs duplicati
docker compose restart

总结

Duplicati 的 Web 管理界面使备份管理变得简单直观,特别适合不想编写命令行脚本的用户。如果需要更高性能的命令行工具,可以参考 ResticBorgBackup。云存储同步可以搭配 Rclone 使用。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,购买链接:bwh81.net

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。