Appearance
备份工具 (Syncthing)
Syncthing 是一个开源的、去中心化的文件同步工具,可以在多个设备之间自动同步文件,无需云服务器,保护隐私安全。
🎯 功能特点
- 去中心化:无需中央服务器,设备间直接同步
- 实时同步:文件修改后立即同步到其他设备
- 端到端加密:所有传输都经过加密
- 跨平台支持:支持 Windows、macOS、Linux、Android、iOS
- 自动发现:自动发现局域网内的设备
- 版本控制:保留文件历史版本
- 选择性同步:可以选择同步哪些文件夹
🚀 Docker 部署
1. 创建配置文件
bash
mkdir -p /volume1/docker/syncthing
cd /volume1/docker/syncthing2. Docker Compose 配置
创建 docker-compose.yml:
yaml
version: '3'
services:
syncthing:
image: syncthing/syncthing:latest
container_name: syncthing
hostname: 'HX-NAS-Syncthing'
environment:
- PUID=1000
- PGID=1000
volumes:
- /volume1/docker/syncthing:/var/syncthing
- /volume1/backup:/backup # 备份文件夹
ports:
- 8384:8384 # Web 管理界面
- 22000:22000/tcp # 文件同步端口
- 22000:22000/udp # 文件同步端口
- 21027:21027/udp # 本地发现端口
restart: unless-stopped
networks:
- synology
devices:
- /dev/kmsg
networks:
synology:
external: true3. 启动容器
bash
docker-compose up -d4. 访问管理界面
打开浏览器访问:http://nas-ip:8384
首次访问需要设置管理员密码。
⚙️ 配置步骤
1. 初始设置
- 访问 Web 管理界面
- 设置管理员用户名和密码
- 修改设备名称(可选)
- 启用身份验证
2. 添加远程设备
- 点击右上角"添加远程设备"
- 输入远程设备的 ID
- 选择要共享的文件夹
- 设置同步模式(发送/接收/双向)
获取设备 ID:
- 在另一台设备的 Syncthing 界面中找到设备 ID
- 或者扫描二维码获取
3. 共享文件夹
- 点击要共享的文件夹
- 选择"共享给"目标设备
- 设置文件夹权限
- 确认同步路径
4. 同步模式
发送模式:
- 只发送文件,不接收
- 适合备份场景
接收模式:
- 只接收文件,不发送
- 适合从主设备同步
双向同步:
- 双向同步修改
- 适合多设备协作
📋 使用场景
场景 1:NAS 间自动备份
配置:
- NAS A → 发送模式
- NAS B → 接收模式
- 定期备份重要数据
场景 2:多设备文件同步
配置:
- 所有设备 → 双向同步
- 工作文件夹自动同步到所有设备
- 随时随地访问最新文件
场景 3:手机照片自动备份
配置:
- 手机安装 Syncthing Android/iOS
- 设置照片文件夹自动同步
- NAS 自动接收备份
🔧 高级配置
1. 版本控制
Syncthing 支持多种版本控制策略:
简单版本控制:
- 保留指定数量的历史版本
- 默认保留 5 个版本
定时版本控制:
- 按时间间隔保留版本
- 适合长期归档
外部版本控制:
- 使用外部工具管理版本
- 高度自定义
2. 忽略模式
创建 .stignore 文件,忽略不需要同步的文件:
.DS_Store
Thumbs.db
*.tmp
*.log
@eaDir/3. 带宽限制
在设置中配置带宽限制:
- 下载限速:避免占用全部带宽
- 上传限速:保证其他服务可用
- 局域网限速:通常不需要限制
4. 计划任务
设置同步时间段:
- 工作时间暂停同步
- 夜间全速同步
- 按需手动同步
️ 安全建议
1. 启用 HTTPS
修改启动参数启用 HTTPS:
yaml
environment:
- STGUIADDRESS=0.0.0.0:8384
- STGUIHTTPS=true2. 强密码策略
- 管理员密码至少 12 位
- 包含大小写字母、数字、特殊符号
- 定期更换密码
3. 防火墙配置
仅开放必要端口:
bash
# 允许 Web 管理界面
ufw allow 8384/tcp
# 允许文件同步
ufw allow 22000/tcp
ufw allow 22000/udp
# 允许本地发现
ufw allow 21027/udp4. 设备认证
- 每次添加新设备都需要确认
- 检查设备 ID 指纹
- 不要接受未知设备的连接请求
📊 监控与维护
1. 状态检查
定期检查:
- 同步状态是否正常
- 设备连接是否稳定
- 磁盘空间是否充足
- 错误日志是否有异常
2. 日志查看
Web 界面 → 操作 → 日志:
- 查看同步日志
- 排查连接问题
- 分析性能瓶颈
3. 数据库清理
定期清理索引数据库:
bash
docker exec syncthing syncthing --reset-database4. 性能优化
SSD 缓存:
- 将索引数据库放在 SSD 上
- 提升同步速度
并发连接:
- 增加最大并发连接数
- 适合大量小文件同步
块大小调整:
- 大文件使用更大的块
- 减少索引大小
🔧 常见问题
Q1: 设备无法发现怎么办?
A:
- 检查设备 ID 是否正确
- 确保防火墙开放端口
- 检查是否在同一网络
- 手动添加设备地址
Q2: 同步速度慢怎么办?
A:
- 检查网络连接质量
- 关闭带宽限制
- 使用有线网络连接
- 检查磁盘 I/O 性能
Q3: 文件冲突怎么办?
A:
- Syncthing 会自动创建冲突副本
- 检查
.sync-conflict文件 - 手动合并或选择版本
- 启用版本控制保留历史
Q4: 如何排除特定文件?
A:
- 在文件夹设置中添加忽略模式
- 编辑
.stignore文件 - 使用通配符匹配文件名
- 排除系统文件和临时文件
Q5: 可以同步到云端吗?
A:
- Syncthing 本身不支持云端同步
- 可以配合 rclone 使用
- 或者使用 Nextcloud 等云存储方案
💡 提示:Syncthing 适合设备间的直接同步,如果需要云端备份,建议配合其他工具使用。
更新时间: 2026-03-18