2026 Syncthing 文件同步部署:去中心化告别 NAS 私有云
你有两台电脑和一部手机,文件散落在各个设备上。照片在手机里、文档在笔记本电脑上、下载文件在台式机里。想保持文件一致,现有的方案都有各自的问题:网盘上传下载限速而且隐私没保障——把身份证照片传到百度网盘上,服务器那头有没有人看,你根本不知道。NAS 成本高配置也复杂,便宜的性能不够用,好点的两三千还得费精力折腾系统配置。用 U 盘来回拷贝太原始了——改了一个文件还得手动覆盖,而且你永远不知道自己手上的是不是最新版本。最烦的是当你出差急需某个文件时发现它在家里的台式机上,而手边只有手机和笔记本。
Syncthing 就是来解决这个问题的。它是一个开源的点对点文件同步工具,所有设备之间直接同步文件,不经过任何中心服务器。传输过程全程加密,没有存储空间上限(因为用的是设备本身的硬盘),完全免费永久使用。你在台式机上改了文档,合上电脑走到咖啡店,打开笔记本已经是更新后的版本了。最方便的是你不用再想”这个文件的最新版本在哪台机器上”——只要文件在 Syncthing 的同步文件夹里,所有设备上的版本自动一致。
对比 Nextcloud 需要一台服务器做中心节点,Syncthing 的架构更简洁——每台设备既同步数据也接收数据,没有单点故障风险。一台设备关机了,其他设备之间的同步完全不受影响。三台设备跑 Syncthing,等于三份数据冗余,不用害怕硬盘坏了数据全丢。
一、Syncthing 对比网盘方案
| 维度 | Syncthing | 百度网盘 / iCloud | Nextcloud |
|---|---|---|---|
| 数据存储 | 你自己的设备硬盘上 | 第三方公司的服务器 | 你买的服务器 |
| 隐私安全 | 端到端加密,只有你能看 | 服务商可以看到文件内容 | 取决于你的服务器配置 |
| 同步速度 | 局域网极快,远程取决于网络 | 免费版限速限容量 | 受限于服务器上行带宽 |
| 存储容量 | 你设备硬盘总容量 | 免费版几 GB,高级版按月交钱 | 等于你服务器硬盘 |
| 单点故障 | 无,一台关了其他照常同步 | 服务器挂了全部停摆 | 中心服务器挂了全停 |
| 成本 | 完全免费 | 免费版受限,高级版付费 | 需要服务器,低配几十块一个月 |
隐私敏感的文件(身份证照片、银行卡信息、工作文档、私人笔记)建议用 Syncthing 同步。不敏感的文件(旅游照片、公开资料)用网盘分享更方便。两套方案可以共存,互不冲突。
二、Docker 部署
一个 Compose 文件搞定:
services: syncthing: image: syncthing/syncthing:latest container_name: syncthing restart: unless-stopped ports: - "8384:8384" - "22000:22000/tcp" - "22000:22000/udp" - "21027:21027/udp" volumes: - ./syncthing/config:/var/syncthing/config - ./syncthing/data:/var/syncthing/data三个端口各有用途:8384 是 Web 管理界面,用来配置同步规则和查看设备状态。22000 是设备之间传输数据的端口,TCP 和 UDP 都要开放——缺一个可能导致连接不稳定。21027 是设备发现端口,用于在局域网里自动找到其他 Syncthing 设备。如果只是局域网内用,22000 和 21027 的防火墙放行即可;如果要在跨网络环境使用,还需要在路由器上做端口转发。当然更方便的做法是直接配合 Tailscale 组网使用,不需要手动配置端口转发。
docker compose up -d启动后访问 http://你的IP:8384。先修改设备名称(右上角操作按钮 → 设置 → 设备名称),方便在多台设备中一眼认出来——比如”家里服务器""笔记本""手机”这样命名。然后添加远程设备——输入另一台设备的 ID,设备 ID 可以在对方的管理界面右上角看到一个很长的字符串。
创建同步文件夹:点”添加文件夹”→ 选一个本地目录 → 在”共享”选项卡勾选你配对的远程设备 → 保存。对方接受共享邀请后,文件开始自动同步。第一次同步会根据文件数量和大小花几分钟到几小时不等,之后增量同步基本秒级完成。你可以实时观察同步进度——管理界面上会显示当前正在同步的文件名、进度条和传输速度。如果某些目录不需要同步(比如 node_modules 或者临时文件),在同步文件夹里创建一个 .stignore 文件写排除规则就行。
三、实际使用场景
说几个我每天在用 Syncthing 的场景:
笔记同步。 我的 Obsidian 笔记文件夹放在 Syncthing 同步目录里,在台式机上写了笔记,到笔记本上打开 Obsidian 已经是更新后的版本。不需要手动导出导入,不需要开任何云同步服务。
照片自动备份。 手机上装了 Syncthing Android 版,把 DCIM 相机文件夹设为同步。每次拍完照片,回到有 WiFi 的地方就自动同步到家里的常驻服务器上。如果手机丢了,照片已经在服务器上存好了。而且不走网盘,不存在”被压缩画质”的问题。
配置文件同步。 所有 Docker Compose 文件、Nginx 配置、脚本都存在同步文件夹里。在任何一台设备上改了配置,其他设备自动更新。想部署新服务时不需要到处找配置文件在哪,所有设备上都有。
双电脑开发。 台式机开发代码,笔记本带出门。代码仓库当然可以用 Git push/pull 同步,但有些 IDE 配置、临时文件、未跟踪的改动用 Git 管很麻烦。Syncthing 自动同步这些零散文件,两台设备之间无缝切换。
这些场景的共同点是:文件的变化被 Syncthing 自动传播到所有设备,不需要你手动操作任何东西。而如果你把 Syncthing 跑在 PVE 的虚拟机上(参考PVE 部署教程),常驻节点 24 小时在线,手机上拍的每张照片都会自动同步到家里服务器上——不需要你打开任何 App 手动触发。
四、常见问题
跨网络用 Tailscale。 如果设备不在同一局域网,直连可能不通,速度会走中继变慢。建议装好 Tailscale 组网,让 Syncthing 通过虚拟 IP 互联,参考Tailscale 教程。
管理界面加 HTTPS。 Syncthing 的管理界面默认走 HTTP,在局域网内用没问题。如果你需要在外网访问管理界面查看同步状态,用 Nginx Proxy Manager 反代加上 HTTPS 证书最安全。参考NPM 部署教程。
整理 .stignore 排除无用文件。 在同步文件夹的根目录创建一个 .stignore 文件,写入你想排除的目录或文件模式。比如排除系统临时文件:Thumbs.db、*.tmp、.DS_Store。也能排除指定目录:node_modules/。Syncthing 会自动读取这个文件,跳过匹配的文件不同步。
四、常见问题
Q:设备无法连接? 检查防火墙是否放行了 22000 和 21027 端口。最简单的方法:关掉防火墙试试,如果不关了就能连说明是防火墙拦了。Windows 的 Windows Defender 防火墙、Linux 的 UFW、路由器自带的防火墙都要检查。
Q:同步速度慢? 检查连接状态——“直接连接”说明走直连,速度正常;“中继”说明经过中转,速度会慢很多。跨网络场景两种办法解决:要么在路由器上做 22000 端口的端口转发打通直连,要么直接装 Tailscale 组网。
Q:两台设备同时改了同一个文件?
Syncthing 会保留两个版本——原文件加上一个带冲突标记的副本文件,比如 filename.conflict.txt。你需要手动打开两个版本对比,把需要的内容合并到一起。
Q:手机端怎么用? 在 Google Play 或 F-Droid 搜索 Syncthing 安装 Android 版本。配置方式和电脑端一样——输入设备 ID 配对,选要同步的文件夹。手机上的照片会自动同步到其他设备。可以设置仅在 WiFi 下同步,避免消耗手机流量。
Q:电池续航影响大吗? Syncthing 的 Android 版有省电模式,应用在后台时只在文件有变化时才唤醒同步,不会持续消耗电量。实测耗电和微信后台差不多,基本可以忽略。
延伸阅读
- Docker 换源避坑指南 — 部署前的必备准备
- Nginx Proxy Manager 反代面板 — 统一管理所有服务的访问入口
- Syncthing 文件同步部署 — 去中心化告别 NAS 私有云
五、总结
Syncthing 的价值在于”你的数据永远在你的设备上”。不像网盘哪天服务关停了数据可能就没了,也不像 NAS 被勒索病毒加密了只能认栽——数据在自己手里,有份没份都靠自己。搭配 PVE 虚拟机做常驻节点,数据等于冗余了多份——一台设备坏了其他设备上还有完整副本。而且 Syncthing 的同步是双向的——你在台式机上新建了一个文档,笔记本上自动出现,手机上也能打开。不需要区分”从哪台设备同步到哪台设备”这种复杂的关系,所有设备平等共享同一个文件夹的内容。配置好之后它就在后台默默运行,你几乎感觉不到它的存在,但哪天换了设备或者重装了系统时,把文件往同步文件夹里一扔,一切自动恢复。
推荐指数:⭐⭐⭐⭐⭐(全平台免费同步首选)
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!