设备之间怎样直接同步文件而不经过云端
一句话定义
Syncthing 是一个在两台或多台设备之间实时同步文件的程序。一台机器上创建、修改或删除文件,这些变化会自动出现在你的其他设备上——前提是这些设备之间已经完成配对。
「设备」这个词在它的语境里很宽泛:台式机、笔记本、NAS、服务器都可以是一台设备。官方文档里的标准场景就是两台电脑互相同步。
跟「上传到网盘」的本质区别
常见的网盘同步是「客户端—服务器」模式:所有文件上传到服务商的机房,各设备再从机房拉取。而 Syncthing 是「设备—设备」模式:
- 文件数据只存在于你的设备上,没有任何一台别人的服务器保存副本;
- 设备之间直接建立加密连接传输数据;
- 两台设备要么同时在在线,要么等下一次同时在线时补齐差异。
这个设计带来的直接后果是:没有人能从服务器侧拿走你的数据,因为没有这样的服务器。相应的代价是,你自己的设备就是存储节点,磁盘坏了、文件删了,责任在你自己——这也是为什么它反复强调「同步不是备份」。
「连续同步」的含义
官方对它的定位是 continuous file synchronization(连续文件同步)。这意味着它不是手动「点一下上传」的模式:
- 文件系统监视器(watcher)默认开启,文件一变化就会被感知;
- 变化会被打包成索引广播给配对设备;
- 对方设备在收到变化后自动拉取数据。
整个过程不需要人工干预。唯一影响同步及时性的因素是:两台设备是否同时在线。离线的设备会在重新上线后追赶进度。
适合谁用
- 有多台个人设备(电脑、NAS、服务器),希望在它们之间保持文件一致的人;
- 不想把私人文件交给公有云,又需要跨设备流转数据的人;
- 手里有一台常开的 NAS 或服务器,想把它变成家庭同步中枢的人。
延伸阅读:[为什么它没有云端(02-why-no-cloud.md)、[同步不等于备份(03-sync-vs-backup.md)。