Syncthing:不经过云盘的多设备文件同步
Syncthing 是一款开源的连续文件同步工具:电脑、NAS、手机之间直接传文件,不经过第三方云盘。数据默认加密传输,设备用 Device ID 互相识别,没有中央账号体系。想自己掌控备份与跨设备草稿,又不愿把整盘内容交给 Dropbox / iCloud / 网盘时,它很合适。
它解决什么问题
常见网盘的路径是:本机 → 云端 → 另一台本机。带宽、配额、隐私、以及「大文件反复上下传」都是成本。Syncthing 走的是设备到设备:同一局域网往往直连;跨网段则通过中继或打洞,但文件内容仍然只在你的设备之间流动(除非你主动配置了外部中继并理解其含义)。
适合:
- 多台电脑同步项目目录、笔记库、素材库
- 电脑 ↔ NAS 做近乎实时的镜像或备份入站
- 手机拍照 / 文档自动落到家里电脑或 NAS
- 不想为私有文件付云存储费,又能接受自己维护设备在线
不太适合:需要「分享给陌生人一个链接就能下」的公开分发、需要永久离线归档到第三方、或者所有设备长期关机却指望云端兜底——那就不是它的主场。
几个核心概念
Device ID
每台设备有一串很长的 ID(由证书派生)。配对时把对方的 Device ID 加进来,并在两端互相批准。没有「邮箱 + 密码」这种中央账号,谁拿着 ID 谁就能发起配对请求,所以不要把 Device ID 当公开广告乱贴。
Folder(共享文件夹)
同步的基本单位是文件夹。你可以指定本机路径,再选择与哪些已配对设备共享。每台设备上的本地路径可以不同,同步的是文件夹内容,不是绝对路径字符串。
文件夹类型
Send & Receive:双向同步,改了哪边都会传播(默认最常见)。Send Only:只往外推,适合「权威源」(比如桌面是主仓库)。Receive Only:只收不改回写,适合 NAS 备份入站、只读镜像。
版本控制(File Versioning)
误删或误改时,可在文件夹设置里开启版本保留(例如 Simple / Staggered)。这不是完整的 Git,但能挡住「同步把坏文件推到所有设备」的常见事故。重要目录建议至少开一种。
安装
官网:https://syncthing.net。各平台都有二进制;Linux 也可用发行版包或 Docker。
Debian / Ubuntu 一类可用官方 APT 源(以文档为准):
1# 示例:按官网当前文档添加仓库后2sudo apt update3sudo apt install syncthing45# 以当前用户启用用户级服务(推荐桌面机)6systemctl --user enable syncthing.service7systemctl --user start syncthing.service
macOS / Windows 装好后一般会有托盘程序;也可用纯 CLI。Web UI 默认在本机:http://127.0.0.1:8384。第一次打开建议先设 GUI 密码,并确认监听地址不要无意地暴露到公网。
手机:Android 有官方/社区客户端(如 Syncthing-Fork);iOS 生态更受限,需自行评估可用客户端与后台同步限制。
最小配对流程
- 设备 A、B 各自安装并打开 Web UI,复制各自的 Device ID。
- 在 A 上「添加远程设备」,粘贴 B 的 ID;在 B 上批准来自 A 的请求(或反过来也加一遍)。
- 在 A 上添加文件夹,选本地路径,共享给 B;B 收到分享后选择本机落盘路径并接受。
- 状态变为 Up to Date 即完成首轮同步。之后改动会持续传播(取决于文件夹类型与忽略规则)。
同一局域网通常几秒内就能连上。跨公网时 Syncthing 会尝试 NAT 打洞;不行则走全球发现 / 中继。家里有固定机器或 NAS 时,给那台设备开端口转发或放进同一 VPN,直连会稳很多。
.stignore:该忽略的别同步
共享根目录下可用 .stignore(语法类似 gitignore)排除构建产物、依赖目录、系统垃圾文件,避免浪费带宽和冲突:
1# 示例 .stignore2node_modules3.DS_Store4*.tmp5.git6dist7.next
注意:忽略规则按设备本地配置生效;大目录首次同步前先写好 ignore,能少传很多垃圾。
实用场景
- 笔记 / Obsidian 库:多机双向 Send & Receive,配合版本控制。
- 桌面 → NAS 备份:桌面 Send Only,NAS Receive Only,避免 NAS 上的误操作回写。
- 手机相机卷:手机 Send Only 到家里电脑/NAS,再在家侧做整理与长期归档。
- 开发机同步源码草稿:务必 ignore
node_modules、构建缓存;正式协作仍用 Git。
安全与运维注意点
- 给 Web UI 设强密码;不要把
0.0.0.0:8384裸暴露在公网。 - 传输默认 TLS;设备配对基于证书,丢设备要及时在其它节点「移除设备」。
- 双向同步不是备份的全部:删了也会同步删除。真正备份需要版本控制或额外的只收端 / 快照。
- 冲突文件会出现带冲突标记的副本,定期清理,不要默默堆着。
和云盘怎么选
需要「任意浏览器打开就能协作、分享链接、离线归档在别人的机房」——继续用网盘或对象存储。需要「文件只在我的设备之间流动、局域网优先、可自建」——Syncthing 更干净。很多人也两者并用:公开与协作走云,私有大目录与备份走 Syncthing。
小结
Syncthing 把「同步」从云服务里拆出来:Device ID 配对、按文件夹共享、可选单向与版本保留。装上、互加设备、共享一个目录,就能跑通最小闭环。先从一个小目录试起,开好版本控制与 .stignore,再扩到笔记库或 NAS 备份,会比一开始同步整个主目录稳得多。