Syncthing 怎么用?从设备配对到文件同步的实用笔记

整理 Syncthing 官方文档里的关键使用点:设备 ID、文件夹共享、同步模式、防火墙端口、忽略规则、文件版本、安全边界,以及在 NAS、Windows、Android 多设备同步时需要注意的地方。

Syncthing 系列目录

Syncthing 适合用来做多设备之间的点对点文件同步。它不是传统网盘,也不是把所有数据先上传到某个中心服务器再下载回来,而是让已授权的设备直接交换文件。

如果你正在考虑用它同步 Markdown 笔记、照片备份、配置文件、家庭 NAS 目录,重点不是“能不能同步”,而是先理解它的几个基本概念:设备、文件夹、设备 ID、同步方向、发现方式和冲突处理。

Syncthing 解决什么问题

Syncthing 的核心场景是:你有两台或多台设备,希望它们之间保持某个目录一致。

典型例子:

  • Windows 桌面和笔记本之间同步工作资料。
  • 手机和 NAS 之间同步照片或文档。
  • 多台 Linux 服务器之间同步配置样例、脚本或小型资料目录。
  • Obsidian、Joplin 外部附件、Markdown 笔记目录在多设备间同步。

它更适合“自己控制设备和数据”的同步场景。如果你需要多人权限管理、在线预览、网页协作编辑,传统网盘或文档协作平台会更合适。

第一次启动后会发生什么

官方入门文档建议把两台机器并行配置。Syncthing 里,一台机器叫一个 device。你当前正在配置的机器是 local device,另一台要同步的机器是 remote device。

第一次启动 Syncthing 时,它会生成配置文件、加密密钥和设备 ID,并默认在本机打开 Web GUI:

1
http://127.0.0.1:8384/

这个 Web GUI 是日常配置入口。官方文档里也提到,默认会创建一个 Default Folder,通常对应用户目录下的 Sync 文件夹。你可以先用它测试,也可以后面删除并添加自己的目录。

设备 ID 是配对基础

Syncthing 的设备配对靠 device ID。

每台设备首次启动时都会生成自己的密钥,设备 ID 可以理解为这个设备证书的可读指纹。两个设备只有互相添加了对方的设备 ID,才会建立连接并同步。

实际操作顺序通常是:

  1. 在两台设备上都启动 Syncthing。
  2. 分别打开 Web GUI。
  3. 在 A 上添加 B 的 device ID。
  4. 在 B 上添加 A 的 device ID。
  5. 选择要共享的文件夹。
  6. 保存后等待两边连接。

设备 ID 不需要像密码一样保密,但也不要随便把自己的同步拓扑公开到不必要的地方。真正需要保护的是设备私钥、Web GUI 管理权限和同步目录本身。

文件夹不是自动全盘同步

Syncthing 同步的是你明确添加的 folder,不会默认同步整台机器。

每个文件夹都有自己的路径、ID、共享设备和同步类型。常见做法是按用途拆分:

  • notes/:Markdown 笔记。
  • photos-inbox/:手机照片中转。
  • docs/:多设备文档目录。
  • scripts/:小脚本和配置样例。

不要一开始就同步过大的系统目录、下载目录或混杂目录。目录越复杂,冲突、忽略规则、权限差异和扫描成本越容易变成长期维护问题。

三种常见文件夹类型

官方文档里把文件夹类型分得很清楚。实际使用时,先理解这三种就够了。

Send & Receive

这是默认模式。这个文件夹既发送本机变更,也接收其他设备变更。

适合:

  • 多台电脑共同编辑笔记。
  • 多设备共同维护文档。
  • 普通双向同步目录。

如果两台设备同时改了同一个文件,Syncthing 会产生冲突文件,而不是直接静默覆盖。

Send Only

这个模式下,本机像“参考副本”。它会向其他设备发送变化,但不会应用其他设备传来的变化。

适合:

  • 主设备向备份设备分发文件。
  • 希望某台机器上的目录状态作为准。
  • 不希望远端修改反向影响本机。

如果远端发生变化,本机可能显示 out of sync。此时 Web GUI 会提供 Override Changes,用本机状态覆盖集群里的其他状态。这个按钮要谨慎点,因为它会把本机当前状态强制推给其他设备。

Receive Only

这个模式和 Send Only 相反。它接收集群里的变更,但本地改动不会再发给其他设备。

适合:

  • 备份目标。
  • 只读镜像。
  • 不希望本地误操作污染主同步目录的设备。

如果本地出现修改,Web GUI 会提示 Revert Local Changes,可以把本地变更撤回到集群版本。

防火墙和端口要先看

Syncthing 能通过发现服务、NAT、relay 等机制让设备互相找到,但网络越清楚,连接越稳定。

官方防火墙文档列出的关键端口是:

1
2
3
22000/TCP
22000/UDP
21027/UDP

其中:

  • 22000/TCP 用于 TCP 同步协议流量。
  • 22000/UDP 用于 QUIC 同步协议流量。
  • 21027/UDP 用于本地发现广播或组播。

如果设备在同一个局域网内,但一直发现不了,优先检查本机防火墙、路由器隔离、Wi-Fi 和 LAN 是否被分到不同网段。

如果设备跨公网或跨 NAT,能做端口转发时,直接连接通常比 relay 更好。没有端口转发时,relay 也可能让设备连上,但性能会比直连差。

Linux 上如果使用 ufw 并安装了对应包,可以用:

1
2
sudo ufw allow syncthing
sudo ufw status verbose

Web GUI 默认只监听本机的 127.0.0.1:8384。如果要远程访问 GUI,可以改成 0.0.0.0:8384,但这意味着管理界面对外暴露,必须同时考虑密码、HTTPS、反向代理或 SSH 隧道。普通家庭场景下,更推荐用 SSH 隧道访问远端 GUI。

.stignore 要放在同步根目录

如果有些文件不想同步,可以在同步文件夹根目录创建 .stignore

注意几个细节:

  • .stignore 必须放在同步文件夹的根目录。
  • 规则相对于同步根目录生效。
  • .stignore 本身不会同步到其他设备。
  • 文件内容应使用 UTF-8 编码。

一个简单例子:

1
2
3
4
5
(?d).DS_Store
node_modules
*.tmp
cache/**
!/cache/keep.txt

(?d) 的作用是:当这些被忽略文件阻止目录删除时,允许 Syncthing 删除它们。适合 .DS_Store 这类系统自动生成文件。

感叹号 ! 是反向规则,用来把某些文件重新纳入同步。但反向规则可能导致 Syncthing 遍历本来会忽略的目录。规则很多时,最好先从简单规则开始,不要一上来写成复杂的黑白名单系统。

文件版本不是本地撤销

Syncthing 支持文件版本保留,但它的语义容易误解。

官方文档强调,版本保留是“接收远端变更时,把旧版本归档”。也就是说,如果 A 开启了版本保留,B 修改了文件并同步到 A,A 会把被替换的旧文件保存起来。但如果 A 自己本地修改了文件,Syncthing 不能替 A 保存修改前的版本。

常见版本策略包括:

  • Trash Can File Versioning:类似回收站,被远端删除或替换的文件移到 .stversions
  • Simple File Versioning:保留固定数量的历史版本。
  • Staggered File Versioning:按时间间隔保留版本,越旧越稀疏。
  • External File Versioning:交给外部脚本处理。

如果你用 Syncthing 同步重要文档,建议至少在备份目标设备上开启简单版本或回收站版本。它不能代替完整备份,但能减少误删和误覆盖的损失。

同步冲突如何产生

Syncthing 会识别冲突。两个设备同时修改同一个文件,并且内容不同,就可能生成类似这样的冲突文件:

1
filename.sync-conflict-date-time-modifiedBy.ext

这比静默覆盖安全,但也意味着你要定期清理冲突文件。

容易产生冲突的场景:

  • 多设备同时打开同一份 Markdown 笔记。
  • 应用程序自动写入同一个状态文件。
  • 同步 .obsidian/workspace.json 这类设备状态文件。
  • Windows、macOS、Android 之间出现大小写文件名差异。

如果同步笔记,建议把正文、附件和模板同步;工作区状态、缓存、插件临时文件要谨慎处理,必要时放进 .stignore

安全边界:数据加密,但使用痕迹不可完全隐藏

Syncthing 的安全目标之一是:未授权设备不能加入同步集群,传输中的文件内容不能被旁路监听者读取。

官方安全文档说明,设备间流量由 TLS 保护,连接建立时会检查设备证书指纹是否在允许列表中。换句话说,只有双方配置了彼此的设备 ID,才会真正建立同步关系。

但这不等于“使用 Syncthing 这件事不可见”。例如:

  • 开启全局发现时,设备会向发现服务器公告设备 ID 和监听端口。
  • 本地发现会在局域网内发送广播或组播。
  • relay 服务器会知道连接设备的 device ID,但不能解密同步内容。
  • Web GUI 如果对外开放,会暴露这台机器运行了 Syncthing。

所以安全建议很直接:

  • 不要把 Web GUI 暴露到公网,除非你明确做好认证和加密。
  • 只添加你信任的设备。
  • 重要目录配合系统磁盘加密或单独备份。
  • 不需要全局发现、relay 或自动升级时,可以按场景关闭,但要接受连接便利性下降。

不受信任设备加密适合什么场景

Syncthing 还支持 Untrusted / Encrypted Devices。这个功能可以让某个不受信任设备只保存加密后的数据。

一个典型场景是:你有一台云服务器或外部机器,希望它参与同步、承担中转或备份角色,但不希望它看到明文文件。可信设备向它发送数据时,会使用文件夹密码加密;其他可信设备拿到同样密码后,可以从这个不受信任设备同步并解密。

但官方文档也提醒,这个功能仍应视为 beta / testing。它适合有明确需求的人谨慎使用,不建议一开始就作为主同步方案。

需要特别记住:

  • 文件数据、文件名、时间、哈希和目录结构会被保护。
  • 文件夹 ID、标签和大致文件大小不属于完整保护范围。
  • 密码和 folder ID 要可靠保存。
  • 不受信任设备上的文件夹类型要设为 Receive Encrypted

如果只是家庭 NAS、自己的电脑和手机之间同步,通常先用普通可信设备模式,把系统登录、磁盘加密和备份做好,会更容易维护。

实用配置建议

如果你准备用 Syncthing 长期同步笔记或文档,可以按这个思路配置:

  1. 每类资料单独建文件夹,不要混在一个超大目录里。
  2. 主力电脑使用 Send & Receive
  3. NAS 或备份机可以考虑 Receive Only,并开启文件版本。
  4. 手机端只同步必要目录,不要同步应用缓存目录。
  5. .stignore 排除缓存、临时文件、工作区状态文件。
  6. 局域网内优先保证 22000/TCP22000/UDP21027/UDP 可用。
  7. Web GUI 尽量保持本机监听,需要远程管理时优先用 SSH 隧道。
  8. 重要资料不要只依赖同步,仍然需要独立备份。

在群晖 DSM 上部署 Syncthing

准备工作

先通过 SSH 登录群晖,查询用于运行 Syncthing 的用户 ID:

1
id 你的管理员用户名

记下返回结果里的 uidgid。常见情况是 uid1026 左右,gid100。后面会把它们分别填到 PUIDPGID

然后在 File Station 中进入 docker 共享文件夹,新建目录:

1
/docker/syncthing

这个目录用于保存 Syncthing 的配置文件、数据库和运行状态。后续重建容器时,只要这个目录还在,配置就能保留下来。

下载 Syncthing 镜像

打开群晖的 Container Manager,进入左侧“注册表”,搜索:

1
syncthing

选择官方镜像 syncthing/syncthing,标签使用 latest,下载完成后进入“映像”,选中 syncthing/syncthing 并点击“运行”。

创建容器

容器名称可以直接填写:

1
syncthing

建议勾选“启用自动重新启动”,这样群晖重启后 Syncthing 会自动恢复运行。

配置环境变量

在高级设置里的环境变量区域添加或修改:

1
2
3
PUID=1026
PGID=100
TZ=Asia/Shanghai

其中 PUIDPGID 要替换成你前面通过 id 用户名 查到的真实值。Syncthing 后续读写共享文件夹时,会以这个用户身份访问群晖文件系统。

固定端口

为了后续访问和排错方便,建议手动固定端口映射:

容器端口 本地端口 协议 用途
8384 8384 TCP Web 管理界面
22000 22000 TCP 数据同步传输
22000 22000 UDP QUIC 数据传输
21027 21027 UDP 局域网发现

如果群晖防火墙已开启,也要放行这些端口。只在局域网内使用时,至少要确保 8384 能从你的电脑访问。

配置目录映射

目录映射分两类:一类是 Syncthing 自己的配置目录,另一类是你希望同步的群晖共享文件夹。

配置目录必须这样映射:

群晖宿主机路径 容器内装载路径
/docker/syncthing /var/syncthing

然后继续添加需要同步的数据目录。例如你想同步群晖上的 /volume1/NasData,可以这样映射:

群晖宿主机路径 容器内装载路径
/volume1/NasData /NasData

这里要特别注意:以后在 Syncthing 网页端添加文件夹时,填写的是容器内路径,例如:

1
/NasData

不要填写群晖宿主机路径 /volume1/NasData。Syncthing 运行在容器里,只能看到你映射进去的容器内路径。

如果要同步多个共享文件夹,可以继续添加多条映射,例如:

1
2
3
/volume1/Photos  ->  /Photos
/volume1/Backup  ->  /Backup
/volume1/NasData ->  /NasData

启动并访问

确认环境变量、端口和目录映射无误后,点击“完成”启动容器。

然后在浏览器打开:

1
http://你的群晖IP:8384

进入 Syncthing 管理界面后,第一件事是设置 Web 管理界面的用户名和密码。路径为:

1
操作 -> 设置 -> 图形用户界面

不要让未设置密码的 Syncthing 管理界面长期暴露在局域网里。

添加同步文件夹

点击“添加文件夹”,在“文件夹路径”中填写前面设置的容器内路径,例如:

1
/NasData

如果权限配置正确,Syncthing 就可以读写这个共享文件夹。之后再添加远端设备,并选择要共享的文件夹,就可以开始同步。

iPhone 照片同步到电脑或 NAS

先理解 iOS 上的限制

在 Android 上,Syncthing-Fork 可以通过后台服务、运行条件、电池白名单等方式长期运行。但 iOS 不允许第三方同步工具无限制后台常驻。

这意味着:

  • 不能期待它像 NAS 一样 24 小时同步。
  • App 进入后台后,同步时间可能很短。
  • 大量照片最好主动打开 App 让它同步完。
  • iCloud 优化存储可能影响原图读取。

所以,iPhone 端更适合“定期打开 App 同步照片”,而不是完全无感的后台实时同步。

第一步:安装客户端并授予权限

在 App Store 安装 Möbius Sync 后,第一次打开时要重点处理几个权限。

通知权限

建议允许通知。它可以提示同步状态、连接状态或错误信息。

本地网络权限

这个权限很重要。

iOS 会单独询问 App 是否允许访问本地网络。如果不允许,iPhone 可能无法在局域网内发现你的电脑、NAS 或 Syncthing 节点。

如果之前误点了拒绝,可以到系统设置中重新开启。

相册访问权限

如果要同步照片,必须允许访问相册。

建议选择:

1
Full Access to Photos

如果只给有限照片访问权限,Möbius Sync 只能看到你选择的那部分照片,后续新增照片也可能不同步。

第二步:iPhone 和电脑/NAS 配对

Syncthing 的配对逻辑仍然是互相添加设备 ID。

在 iPhone 上:

  1. 打开 Möbius Sync。
  2. 进入 Settings
  3. 打开 Device ID
  4. 保持二维码界面。

在电脑或 NAS 上:

  1. 打开 Syncthing Web UI。
  2. 点击 添加远程设备
  3. 扫描 iPhone 上的二维码,或者手动输入设备 ID。
  4. 给设备起名,例如 My-iPhone
  5. 保存。

回到 iPhone,等待连接请求提示,然后点击 Accept

到这里,iPhone 和电脑/NAS 已经互相信任,但还没有共享相册。

第三步:在 iPhone 上创建相册同步文件夹

iOS 不像 Android 那样直接让你选择 /DCIM/Camera 路径。Möbius Sync 对系统相册做了专门支持,配置时要选择相册类型。

在 Möbius Sync 中:

  1. 切换到 Folders
  2. 点击右上角 +
  3. 新建文件夹。

关键字段:

  • Folder Type:选择 Camera Roll
  • Folder Label:填写容易识别的名字,例如 iPhone_Photos
  • Folder ID:可以保留自动生成,也可以用稳定英文 ID。
  • Folder Path:保持默认,让客户端关联 iOS 系统相册。

然后在 Sharing 区域勾选刚刚配对的电脑或 NAS。

第四步:iPhone 端设为 Send Only

相册同步通常是“手机发给 NAS”,不是双向编辑。

因此,在 iPhone 端把文件夹类型设为:

1
Send Only

这样 iPhone 负责把照片发送出去,不接收电脑或 NAS 的反向修改。

这个设置可以降低误操作风险。比如你在电脑端整理备份目录时,不希望这些改动影响 iPhone 相册。

但仍然要记住:Syncthing 是同步工具,不是完整备份系统。真正的长期照片安全,还需要 NAS 端快照、文件版本或独立备份。

第五步:在电脑或 NAS 端接收照片

iPhone 端保存后,电脑或 NAS 的 Syncthing Web UI 会出现提示:

1
设备 My-iPhone 想共享文件夹 iPhone_Photos

点击添加。

设置保存路径。

Windows 可以类似:

1
D:\Backups\iPhone_Photos

Linux 或 NAS 可以类似:

1
/volume1/photos/iphone

如果 Syncthing 跑在 Docker 中,要填写容器内路径。例如宿主机挂载:

1
- /volume1/photos:/var/syncthing/photos

Web UI 中应填写:

1
/var/syncthing/photos/iphone

接收端建议设为 Receive Only

在电脑或 NAS 端,也建议把这个文件夹类型设为:

1
Receive Only

这样接收端只接收 iPhone 发来的照片,不把本地变化同步回 iPhone。

这是第二层保险:

  • iPhone 端 Send Only
  • NAS 端 Receive Only

两边都按单向备份思路配置,更符合照片归档场景。

iOS 后台同步的现实限制

iOS 对后台运行限制很严格。即使配置正确,也不要期待 Möbius Sync 一直在后台默默跑。

常见情况是:

  • App 打开时同步速度正常。
  • 切到后台后还能同步一小段时间。
  • 过一会儿系统会暂停或限制它。
  • 位置变化、系统调度或短暂后台窗口可能再次唤醒。

最佳实践很朴素:

  1. 拍了大量照片后,主动打开 Möbius Sync。
  2. 让手机保持亮屏或不要太快锁屏。
  3. 等待它把新照片同步完。
  4. 再关闭 App 或锁屏。

如果你习惯每隔几天做一次相册备份,这个方式比较可靠。

避免 iCloud 优化存储影响同步

如果 iPhone 开启了:

1
优化 iPhone 存储

系统可能只在本地保留缩略图,原图留在 iCloud。第三方同步客户端读取照片时,可能拿不到完整原图,导致同步失败、跳过或需要等待系统下载。

更适合同步备份的设置是:

1
下载并保留原片

路径通常在:

1
设置 -> Apple ID -> iCloud -> 照片

如果手机空间不够,必须开启优化存储,那么同步前可能需要先在系统相册里打开相关照片,让 iPhone 把原图从 iCloud 下载回来,再启动 Möbius Sync 同步。

大量照片首次同步建议

第一次同步 iPhone 相册时,可能有几千张甚至几万张照片。建议不要急着一次做完。

可以这样处理:

  1. 先同步少量照片测试。
  2. 确认 NAS 路径正确。
  3. 确认文件夹类型是 Send Only / Receive Only。
  4. 确认接收端不会反向影响 iPhone。
  5. 再开始完整同步。

首次同步时最好:

  • iPhone 接入电源。
  • 保持 Wi-Fi 稳定。
  • 打开 Möbius Sync 前台运行。
  • NAS 或电脑保持在线。

照片数量很大时,同步时间可能比较长,这是正常的。

推荐配置

一个比较稳的 iPhone 照片同步方案:

  1. iPhone 安装 Möbius Sync。
  2. 允许通知、本地网络和完整相册访问。
  3. iPhone 与 NAS 互加设备 ID。
  4. 在 iPhone 新建 Camera Roll 文件夹。
  5. 文件夹标签设为 iPhone_Photos
  6. iPhone 端文件夹类型设为 Send Only
  7. NAS 端接收路径设为 /volume1/photos/iphone
  8. NAS 端文件夹类型设为 Receive Only
  9. NAS 端开启文件版本或快照。
  10. 每隔几天主动打开 Möbius Sync 完成同步。

如果你非常依赖自动后台照片备份,iOS 会比 Android 麻烦一些。iOS 的限制决定了第三方同步工具很难做到完全无感后台常驻。

多文件夹治理与版本控制

Folder ID 比文件夹标签更重要

在 Syncthing 中,真正识别一个同步文件夹的是 Folder ID,不是你看到的标签名。

标签只是显示名称,可以在不同设备上不一样。Folder ID 才是判断“这些设备上的文件夹属于同一个同步组”的关键。

所以,在第一台设备创建文件夹时,建议手动指定规范 ID。

例如:

1
2
3
4
5
6
notes-main
work-docs
backup-pixel-photos
backup-iphone-photos
media-ebooks
code-projects

不要使用随手生成的随机 ID,也不要只写 testsyncnew-folder 这类无法长期维护的名字。

命名规则可以简单一些:

  • 双向同步:notes-mainwork-docs
  • 手机备份:backup-pixel-photosbackup-iphone-photos
  • 资料分发:media-ebooksmedia-music
  • 代码目录:code-projects

以后在其他设备接收共享时,只要看到 Folder ID,就能判断它是什么用途。

中心节点路径要规范

在 NAS 或中心电脑上,建议创建一个统一的 Syncthing 根目录。

例如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
/volume1/Syncthing/
├── Phone_Backup/
│   ├── iPhone15_DCIM/
│   └── Pixel7_DCIM/
├── Work/
│   ├── Office_Docs/
│   └── Coding_Projects/
├── Notes/
│   └── Main_Notes/
└── Media/
    └── eBooks/

不要把同步目录散落在系统各处。散落的目录短期方便,长期一定难维护。

推荐原则:

  • 所有 Syncthing 管理的目录放在统一根目录下。
  • 手机备份、工作文档、媒体资料分区存放。
  • 文件夹名体现用途,不体现临时设备状态。
  • 不把系统目录、下载缓存目录直接作为长期同步目录。

如果 Syncthing 跑在 Docker 中,还要注意容器内路径和宿主机路径的对应关系。

例如宿主机目录:

1
/volume1/Syncthing/Phone_Backup/iPhone15_DCIM

映射到容器内:

1
/var/syncthing/Phone_Backup/iPhone15_DCIM

Web UI 里填写的是容器内路径,不是宿主机路径。

区分备份和双向同步

多文件夹管理里,最重要的一件事是:不要所有目录都用 Send & Receive

不同目录的数据方向不一样。

手机照片备份

手机端:

1
Send Only

NAS 端:

1
Receive Only

这样手机负责发送照片,NAS 负责接收保存。手机清理空间、NAS 整理目录时,都不容易互相影响。

多端文档和笔记

电脑端:

1
Send & Receive

NAS 端:

1
Send & Receive

手机端是否加入双向同步,要看你是否真的在手机上编辑这些文件。如果手机只查看资料,可以考虑 Receive Only

资料分发

NAS 端:

1
Send Only

其他设备:

1
Receive Only

适合电子书、安装包、参考资料这类中心分发目录。

备份目录

主设备:

1
Send Only

备份机:

1
Receive Only

再配合备份机端版本控制或快照。

NAS 上开启文件版本控制

多设备同步最怕误删和误覆盖。

例如:

  • 某台电脑误删了工作文档。
  • 手机清理工具删了相册目录。
  • 两台设备同时改了同一份笔记。
  • 某个同步规则写错,把空目录同步过去。

因此,中心节点最好开启文件版本控制。

在 NAS 的 Syncthing Web UI 中:

  1. 打开对应文件夹设置。
  2. 进入文件版本控制。
  3. 选择合适的版本策略。

常用选择是 Staggered File Versioning,也就是阶段版本控制。它会按时间间隔保留历史版本,越旧保留得越稀疏。

也可以用更简单的策略:

  • Trash Can File Versioning:类似回收站。
  • Simple File Versioning:保留固定数量版本。
  • Staggered File Versioning:按时间阶段保留。

如果不知道选什么,普通家庭 NAS 可以先从 Trash Can 或 Staggered 开始。

版本控制不是完整备份,但它是多设备同步里的后悔药。

多文件夹命名示例

可以建立一套固定命名方式。

手机照片:

1
2
3
Folder ID: backup-pixel-photos
Label: Pixel Photos
NAS Path: /volume1/Syncthing/Phone_Backup/Pixel7_DCIM

iPhone 照片:

1
2
3
Folder ID: backup-iphone-photos
Label: iPhone Photos
NAS Path: /volume1/Syncthing/Phone_Backup/iPhone15_DCIM

主笔记库:

1
2
3
Folder ID: notes-main
Label: Main Notes
NAS Path: /volume1/Syncthing/Notes/Main_Notes

工作文档:

1
2
3
Folder ID: work-docs
Label: Work Docs
NAS Path: /volume1/Syncthing/Work/Office_Docs

电子书:

1
2
3
Folder ID: media-ebooks
Label: eBooks
NAS Path: /volume1/Syncthing/Media/eBooks

只要 ID、标签、路径都有规律,多设备之后也不会失控。

推荐整体方案

如果你已经有 Docker 版 Syncthing 跑在 NAS 上,可以这样设计:

  1. NAS 作为中心节点。
  2. NAS 设为引入者。
  3. 所有设备只和 NAS 配对。
  4. 所有同步目录放在 /volume1/Syncthing/ 下面。
  5. 手机照片目录使用手机 Send Only、NAS Receive Only
  6. 工作文档和笔记使用 Send & Receive
  7. 资料分发目录使用 NAS Send Only、其他设备 Receive Only
  8. NAS 上对重要文件夹开启版本控制。
  9. 代码和缓存目录配置忽略规则。
  10. NAS 本身再做快照或异地备份。

这套结构建立起来后,再增加新设备或新文件夹,只需要按规则放进去,不需要每次重新思考同步关系。

多设备拓扑与配对

先理解“对等”和“伪服务器”

Syncthing 里的每台设备都有自己的 device ID。只要两台设备互相添加对方 ID,并且共享同一个文件夹,它们就能同步。

所以,Syncthing 本身没有“服务器端必须保存所有数据”这个概念。你看到的“服务器”,往往只是人为指定的一台常开设备。

比如:

  • NAS 长期开机、空间大,适合作为中心节点。
  • 手机和笔记本经常离线,适合作为边缘设备。
  • 台式机性能强,但不一定 24 小时开机,可以作为普通同步节点。

这个“中心节点”不是协议上的服务器,而是你在拓扑设计中让它承担管理和中转角色。

模式一:纯对等 Mesh 网络

纯对等模式下,每台设备都和其他所有设备配对。

例如你有四台设备:

  • NAS
  • 台式机
  • 笔记本
  • 手机

那么每台设备都要和另外三台设备建立连接。这样任何两台在线设备之间都可以直接同步。

优点:

  • 传输路径更直接。
  • 某台设备离线时,其他在线设备仍然可以互相同步。
  • 不依赖某一个中心节点。

缺点:

  • 设备越多,配对关系越复杂。
  • 新增设备时,需要在多台旧设备上确认和配置。
  • 文件夹共享关系容易散。

设备数量少时,纯对等模式很舒服。比如只有一台电脑和一台手机,或者两台电脑互相同步笔记,就不需要想太复杂。

但当设备数量变成五六台以上,手动维护全连接关系会越来越麻烦。

模式二:以 NAS 为中心的星型拓扑

星型模式更适合家庭和个人生产力场景。

做法是:选一台长期开机、空间足够、网络稳定的设备作为中心节点,例如:

  • NAS
  • 群晖
  • 软路由
  • 迷你主机
  • 家用 Linux 服务器

然后其他设备只和它配对:

1
2
3
手机 ----\
笔记本 ---- NAS
台式机 ----/

手机不需要直接配对笔记本,笔记本也不需要直接配对台式机。它们都通过 NAS 间接同步数据。

优点:

  • 管理简单。
  • 新增设备只需要和 NAS 配对。
  • NAS 可以承担版本保留和备份缓冲。
  • 适合 24 小时在线同步。

缺点:

  • NAS 离线时,其他设备之间不一定能继续同步。
  • 如果所有流量都经过 NAS,NAS 的网络和磁盘性能会影响体验。
  • 中心节点权限要管理好。

如果你已经有 NAS 或常开小主机,优先推荐星型拓扑。它保留了 Syncthing 的 P2P 能力,又让日常管理更接近“中心化同步”。

多设备配置的基本顺序

不管用哪种拓扑,Syncthing 的配置顺序都是:

  1. 先配对设备。
  2. 再共享文件夹。
  3. 最后在接收端确认路径。

不要反过来一开始就到处建文件夹。先把设备关系理清楚,后面才不容易乱。

第一步:设备互联

假设要连接设备 A 和设备 B。

设备 A 可以是手机,设备 B 可以是 NAS 或电脑。

在设备 A 上:

  1. 打开 Syncthing Web UI。
  2. 点击右上角 操作
  3. 选择 显示 ID
  4. 复制设备 ID,或者显示二维码。

在设备 B 上:

  1. 打开 Syncthing Web UI。
  2. 点击 添加远程设备
  3. 填入设备 A 的 ID。
  4. 给设备起一个容易识别的名称,例如 My-Phone
  5. 保存。

然后回到设备 A。它通常会弹出提示:设备 B 想要连接。点击接受。

到这一步,两台设备已经建立了对等关系,但还没有开始同步任何文件夹。

第二步:创建并共享文件夹

在设备 A 上点击 添加文件夹

常用字段:

  • 文件夹标签:给自己看的名字,例如 Notes
  • 文件夹 ID:跨设备识别用,建议用稳定英文,例如 notes
  • 文件夹路径:这台设备上的真实路径。

然后切换到 共享 标签页,勾选刚刚配对成功的设备 B。

保存后,设备 A 会把这个文件夹共享邀请发给设备 B。

第三步:接收共享

打开设备 B 的 Web UI,等待几秒钟,通常会看到提示:

1
设备 A 想共享一个文件夹

点击添加,然后在设备 B 上指定本地存储路径。

例如:

1
/volume1/notes

或者 Docker 部署场景下的容器内路径:

1
/var/syncthing/notes

保存后,同步正式开始。

这里要注意:不同设备上的路径可以不一样。Syncthing 通过文件夹 ID 识别同步关系,不要求每台设备使用相同的本地路径。

星型拓扑怎么配置

如果你采用 NAS 中心模式,建议这样做:

  1. 先在 NAS 上部署 Syncthing。
  2. 所有手机、电脑、服务器都只和 NAS 配对。
  3. 在 NAS 上创建或接收主要同步文件夹。
  4. 每台新设备只添加 NAS 的 device ID。
  5. 需要同步哪个文件夹,就在 NAS 和对应设备之间共享。

例如:

1
2
3
4
5
NAS
├── notes       -> 台式机、笔记本、手机
├── photos      -> 手机、备份盘
├── downloads   -> 台式机、NAS
└── scripts     -> 台式机、笔记本

这样结构非常清楚。你可以把 NAS 当作同步关系的控制面。

引入者是什么

Syncthing 有一个很实用的功能:Introducer,中文界面里通常叫“引入者”。

它适合多设备场景。

假设你把 NAS 设置为引入者。之后新设备只要和 NAS 配对,NAS 就可以把它知道的其他设备介绍给新设备,也可以帮助同步已有的共享关系。

这样做可以减少重复点击和重复配对。

适合:

  • 家里有多台电脑和手机。
  • NAS 作为长期中心节点。
  • 经常新增设备。
  • 希望减少手工维护设备关系。

但也要注意,引入者会扩大自动建立关系的范围。不要把不完全信任的设备设为引入者,也不要在不清楚拓扑的情况下随手勾选。

更稳妥的做法是:

  • 只把 NAS 或主服务器设为引入者。
  • 普通手机、笔记本不要设为引入者。
  • 新设备加入后,检查它被自动添加了哪些设备和文件夹。

不同目录可以用不同拓扑

Syncthing 的拓扑不一定全站统一。你可以按文件夹设计。

例如:

  • notes:电脑、笔记本、手机、NAS 都使用 Send & Receive。
  • photos:手机发送,NAS 接收并保留版本。
  • downloads:NAS 和台式机同步,手机不参与。
  • backup:主电脑 Send Only,NAS Receive Only。

不要把所有目录都套进一种规则。多设备同步真正重要的是数据方向,而不是设备数量。

冲突和误删要提前想

多设备同步最常见的问题不是配置失败,而是同步成功之后发生误删或冲突。

容易出问题的场景:

  • 两台设备同时编辑同一个文件。
  • 手机端应用自动清理目录。
  • 一台设备路径填错,创建了空目录并同步过去。
  • 把缓存、临时文件、工作区状态文件一起同步。
  • NAS 端没有开启版本保留。

建议:

  • 重要目录在 NAS 上开启文件版本。
  • 使用 .stignore 排除缓存和临时文件。
  • 新文件夹第一次同步前,先用少量测试文件验证。
  • 不确定删除策略时,不要把所有设备都设为 Send & Receive。

推荐配置

如果你有 NAS 或常开服务器,推荐直接使用星型拓扑:

  1. NAS 作为中心节点。
  2. NAS 和所有设备配对。
  3. 普通设备只和 NAS 配对。
  4. NAS 可以设为引入者。
  5. 不同文件夹按用途选择 Send & Receive、Send Only 或 Receive Only。
  6. 重要文件夹在 NAS 上开启文件版本。
  7. 新设备加入后,先共享一个测试文件夹确认路径和权限。

如果你只有两三台设备,而且都经常在线,可以用纯对等模式。它更直接,速度也可能更好。

适合和不适合

Syncthing 适合:

  • 你希望数据主要留在自己的设备上。
  • 你愿意理解设备配对、同步目录和冲突处理。
  • 你有 NAS、家用服务器或多台个人设备。
  • 你想同步 Markdown、照片中转、脚本、轻量文档。

Syncthing 不太适合:

  • 需要多人在线协作编辑。
  • 需要网页端文件预览和分享链接。
  • 需要细粒度团队权限。
  • 不想处理任何网络、防火墙和冲突问题。

它更像一个可靠的“设备间同步层”,而不是完整的云盘产品。用得好,Syncthing 可以把 NAS、电脑、手机连成一个可控的数据网络;用得太随意,也可能因为冲突、误删、忽略规则和网络配置变成维护负担。

参考资料