syncthing实现多设备同步需构建去中心化点对点网络:一、修改config.xml监听地址为0.0.0.0:8384并开放端口;二、两两双向添加设备id并确认信任;三、各设备用相同文件夹id配置共享,仅a主动共享;四、启用本地与全局发现;五、docker部署时需独立端口与存储路径。

一、明确拓扑结构与角色分工
多路备份 ≠ 所有设备两两全连。需按用途划分角色,避免冗余和冲突:
- 主工作节点(如笔记本):主动编辑、频繁写入,设为“发送与接收”,是多数文件夹的源端
- 备份节点(如 NAS 或云服务器):只接收、不主动修改,设为“只接收”,用于归档和灾难恢复
- 移动节点(如 Android 手机):按需同步子集(如照片、笔记),设为“发送与接收”或“只发送”,并启用忽略规则防同步缓存
- 可选中继节点(如常开的树莓派或轻量云 ECS):开启全局发现 + 中继服务,帮助 NAT 后设备穿透连接,提升异地同步成功率
二、统一基础配置确保互通
所有设备必须完成以下三项,否则无法建立稳定连接:
-
监听地址开放:编辑
config.xml,将127.0.0.1:8384改为0.0.0.0:8384,重启 Syncthing;防火墙放行TCP/UDP 8384(Web)、TCP/UDP 22000(同步)、UDP 21027(局域网发现) - 双向设备信任:A 添加 B 的 ID 后,B 必须在自己界面点击“接受邀请”;同理完成 A↔C、B↔C、A↔中继、C↔中继等所有需通信的组合;Devices 页面显示绿色 “Connected” 才算生效
-
启用发现机制:在每台设备 Web 界面 → Settings → Connections,勾选 “Enable local discovery” 和 “Enable global discovery”;若部署了自建发现服务器,填入其地址(如
https://disco.example.com)
三、按场景配置文件夹同步策略
同一份数据,在不同设备上应使用相同 Folder ID,但权限可差异化设置:
-
文档主同步区(Folder ID:
docs-main):在笔记本和 NAS 上均创建,笔记本设为“发送与接收”,NAS 设为“只接收”——实现自动备份+防误删 -
手机媒体区(Folder ID:
photos-mobile):手机设为“发送与接收”,笔记本设为“只接收”,并添加**/*.tmp、**/cache/**到 .stignore —— 只收图不传临时文件 -
代码快照区(Folder ID:
src-snapshot):所有开发机加入,启用版本控制(保留 30 天历史),忽略node_modules/、.git/、build/等目录
四、增强可靠性与容灾能力
纯 P2P 在设备离线时会中断同步。加入以下设计可实现“多路备份”实质效果:
- 云服务器作为中继+备份锚点:部署 Syncthing 到阿里云/腾讯云轻量服务器,开放公网端口;所有设备将其加入信任列表,并共享关键文件夹;该服务器 24 小时在线,成为事实上的“同步枢纽”
-
OSS/S3 对象存储挂载为备份层:在云服务器上用
ossfs或rclone mount挂载 OSS Bucket 到本地路径(如/mnt/oss-backup),再将 Syncthing 的备份文件夹指向该路径 —— 实现二次落盘、版本留存、低成本扩容 -
冲突处理与恢复预案:启用 Syncthing 的 “Simple Versioning”(默认保留 5 个旧版),对重要文件夹额外配置 “Staggered” 模式;定期导出
.stfolder元数据到 Git 仓库,记录同步状态变更











