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