Syncthing 是一个去中心化的开源文件同步工具,使用 Go 语言编写,通过点对点(P2P)加密直连在多台设备之间持续、自动地同步文件夹,数据不经过任何中心服务器中转。它是 Dropbox、OneDrive、Google Drive 等商业云同步服务的开源自托管替代方案——所有数据始终只在用户自己信任的设备之间流动,不依赖任何第三方存储服务。项目自 2013 年发布以来持续活跃开发,在隐私敏感用户群体与自托管社区中极受认可,是最具代表性的无中心文件同步工具之一。
设计理念与安全模型
Syncthing 的核心设计原则是无中心节点、无信任第三方、全程加密认证。每个 Syncthing 实例启动时生成唯一的设备 ID,该 ID 来自设备专属 TLS 证书的公钥指纹,设备之间通过设备 ID 双向认证,不依赖任何用户名密码或账户体系。所有数据传输通过 TLS 1.3 加密,传输的数据块以内容哈希校验完整性,有效防止传输过程中的静默数据损坏。即便在无法直连的网络环境下借助中继服务器穿透 NAT,中继节点看到的也只是加密密文流量,在技术层面无法读取实际文件内容。这种从协议层面设计的隐私保护,是 Syncthing 有别于商业云同步产品的根本所在。
核心功能
- 多设备多文件夹同步:可在任意数量的设备(台式机、笔记本、服务器、NAS、安卓手机)之间同步任意数量的文件夹,每个文件夹独立配置参与的设备集合和同步策略。
- 灵活的同步模式:支持双向同步、仅发送(单向推送,源端变更同步到目标,目标端本地修改不回传)、仅接收(只接收变更不发送)以及仅接收加密(在不信任的节点上存储加密副本而不暴露明文,适合异地备份)。
- 文件版本历史:内置版本保留策略,可配置保留被修改或删除的文件历史版本,支持简单循环覆盖、分段时间保留(Staggered)及外部自定义脚本三种策略,有效防止因误删或误覆盖造成的数据丢失。
- 冲突处理机制:当多端同时对同一文件进行修改时,Syncthing 会将冲突版本自动保存为独立的冲突文件(文件名含设备 ID 与时间戳),不会静默覆盖任何版本,由用户手动处理冲突内容。
- 精细忽略规则:在每个同步文件夹中放置 .stignore 文件,使用类似 .gitignore 的语法精确控制哪些文件和目录不参与同步,例如排除临时文件、缓存目录等。
- 自动设备与网络发现:在局域网内通过本地广播自动发现同网段设备;在广域网通过官方全局发现服务器定位对方 IP,然后尝试 UPnP、NAT 打洞等多种方式建立 P2P 直连,实在无法直连时通过中继服务器转发加密流量。
- 带宽控制:可设置上传与下载速率上限,避免大批量同步占满带宽影响其他网络使用。
技术架构
Syncthing 使用 Go 语言编写,编译产物是单个可执行文件,跨平台支持 Linux、macOS、Windows、FreeBSD 及各类 ARM 架构(树莓派、安卓等)。其同步协议称为 Block Exchange Protocol(BEP),将文件切分为固定大小的块(默认每块 128 KB),以块内容哈希为标识,增量同步时只传输实际发生变化的块,节省带宽。文件索引与设备状态信息存储在本地 LevelDB 数据库中,Web 管理界面内嵌在可执行文件里,无需额外安装任何 Web 服务器或运行时依赖。
部署与配置要点
- 快速启动:下载对应平台的单文件二进制直接运行,默认监听 8384 端口(Web 管理界面)和 22000 端口(设备间数据传输),首次访问 Web 界面可设置 GUI 访问密码。
- 服务化运行:Linux 上通过 systemd 用户服务或系统服务开机自启;Windows 上推荐使用 SyncTrayzor 等封装应用,提供系统托盘图标和更友好的操作体验;Docker 可使用 linuxserver/syncthing 镜像容器化运行。
- 添加设备流程:双方互相交换设备 ID(或扫描二维码),均在自己的界面确认对方的设备请求后,即可开始共享文件夹同步。
- 防火墙设置:跨公网同步时需放行 22000/TCP+UDP(数据传输)和 21027/UDP(局域网发现广播)。
- Web 界面安全:默认仅监听 127.0.0.1,若需从远程管理,需配置 API 密钥认证或通过反向代理加 HTTPS 与基础认证保护,避免管理界面裸暴露在公网。
典型使用场景
- 在多台工作设备(办公室台式机、家用电脑、笔记本)之间实时同步工作文档、代码项目、Obsidian 笔记库和配置文件,彻底摆脱 Dropbox 等商业云同步的存储限制与隐私顾虑。
- 将手机相机相册自动备份到家庭 NAS 或服务器,安卓端 Syncthing-Fork 客户端支持后台自动同步相机目录。
- 在 VPS 或 NAS 上设置仅接收节点,持续接收各终端的文件副本,构成一份只增不减的冗余备份,防止所有终端同时丢失数据。
- 使用仅接收加密节点在不信任的境外云服务器上保存加密副本,实现无需信任第三方的异地灾备。
- 在局域网内各成员设备之间高速无限量共享大文件,如设计素材、视频工程文件等,传输速度仅受本地网络限制。
与同类工具对比
- 对比商业云盘(Dropbox 等):Syncthing 数据完全自主、无存储空间费用、无文件内容审查或封号风险,但没有云端随时可取的在线副本,要求至少一台设备在线才能同步。
- 对比 Nextcloud:Nextcloud 是中心化的私有云盘平台,提供 Web 在线访问、文件分享、协作编辑等功能,部署更复杂;Syncthing 更轻量纯粹、去中心化,专注高效可靠的文件同步,无在线访问功能。
- 对比 rsync:rsync 是单向批量传输的命令行工具,需手动或 cron 定时触发;Syncthing 是持续实时的双向文件系统监控同步,日常使用无需任何手动干预。
优缺点小结
优点是完全去中心化、端到端加密、隐私保护可靠、跨平台支持完善、无存储容量费用、开源免费、运维简单。缺点是不提供中心化的在线文件访问界面,要求至少一台参与设备保持在线;没有面向陌生人的文件分享功能;同步而非备份(一端删除会同步到所有节点,需配合版本历史功能防误删)。对于重视数据隐私、需要多设备间高效同步且不想依赖云服务的用户,Syncthing 是经过长期验证的极佳自托管同步方案。