共计 4895 个字符,预计需要花费 13 分钟才能阅读完成。
[[Obsidian]] 的数据本质上就是一个文件夹里的一堆 Markdown 文件。官方有 [[Obsidian Sync]] 服务($4/月,我是早鸟优惠还能打五折),用起来省心,但我一直觉得把纯文本文件的同步权交给一个付费服务有点别扭——这些文件又不是什么特殊格式,随便一个文件同步工具都应该能搞定。
折腾了几年下来,我前前后后试过不少方案。下面按我实际用过或深入研究过的五种路线逐个说。
Syncthing 完成桌面版同步和备份
[[Syncthing]] 是开源的 P2P 文件同步工具,设备之间直接传数据,不经过任何中央服务器。我用了很长时间,桌面和 Android 上的体验确实没得挑。每台设备上跑一个守护进程,通过设备 ID 互相发现和配对,文件变更被拆成数据块只传变化的部分,全程 TLS 加密。
桌面端装好后通过 Web UI(http://localhost:8384)添加 Vault 目录、配对设备就行。Android 端装 [[Syncthing-Fork]](F-Droid 或 Google Play 都有),扫桌面端 QR 码配对。iOS 是这个方案最大的痛点,目前只能用 [[Möbius Sync]](付费约 $5)或开源的 [[Sushitrain]],iOS 沙盒机制导致没法后台静默同步,每次打开笔记前得先手动同步一下,这个"顿挫感"很恼人。我后来换 Fast Note Sync 也主要是被这个问题逼的。
用 Syncthing 有几个要注意的地方:一定要在忽略列表里排除 .obsidian/workspace.json 和 .obsidian/workspace-mobile.json,不然隔三差五就会看到 .sync-conflict- 文件;设备不在同一局域网的话需要走公共中继或自建中继。如果你只用桌面 + Android,这个方案零成本、零服务器依赖、Windows / macOS / Linux / Android 原生支持,基本是最优解。
Fast Note Sync 插件
<iframe width="840" height="470" src="https://www.youtube.com/embed/cw_nTWZ-WN8" title="Fast Note Sync" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
[[Fast Note Sync]] 是我目前主力在用的方案,详细的体验可以看上面的视频和这篇文章:体验 Fast Note Sync:打造私有且极致快速的 Obsidian 同步方案。
它是 haierkeys 开发的自托管同步插件,C/S 架构,服务端用 Go 写的,很轻。客户端和服务端之间走 WebSocket 长连接,所以服务端可以主动推变更,不用像 Remotely Save 那样靠定时轮询。实测在电脑端改一个字,iPad 上几乎同时就能看到跳动。服务端用 Docker 一行命令就能跑起来。
启动后访问 http://ip:9000 初始化管理员账号,创建设备和仓库。有个细节做得不错:服务端生成一段加密配置字符串,手机端粘贴就行,不用在小屏幕上手动敲 IP、端口、Token。它还自带 Web 管理面板,在没装 Obsidian 的设备上也能通过浏览器应急看笔记。断网时多设备编辑同一文件会保留冲突副本,侧边栏能查看历史版本。资源占用低,旧款 iPhone 上跑也没有明显发热。
不完美的地方在于需要维护一台 VPS 或 NAS 作为中心服务器(成本约 $3-10/月)。如果用 Nginx 反向代理,WebSocket 的配置要额外注意(proxy_set_header Upgrade 那一套)。大附件的传输受限于服务器带宽,不像 Syncthing 在局域网里那么快。全平台可用,插件免费。
云盘同步
把 Vault 丢进 [[iCloud]]、[[OneDrive]]、[[Google Drive]]、[[Dropbox]] 的同步文件夹里,是门槛最低的方案。不需要装额外插件,不需要服务器,开箱即用。但坑也不少。
各家情况:iCloud 在苹果生态内体验最好,macOS 和 iOS 原生集成,Vault 放在 ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/ 就行,但 Windows 客户端经常同步卡死,Linux 和 Android 不支持。OneDrive 是 Windows 原生集成,支持"文件按需下载",搭配 Microsoft 365 有 1TB 空间。Google Drive 跨平台覆盖还可以,但 Obsidian 社区里有人反馈过文件被随机回滚到旧版本,这种 bug 最让人后怕。Dropbox 跨平台支持最全,有 30 天到 1 年的文件版本历史,但免费空间只有 2GB,付费起步 2TB $11.99/月,不便宜。
看起来简单,实际上云盘同步是冲突问题最严重的方案。.obsidian/workspace.json 每次打开 Obsidian 都会被改,多设备用起来几乎必出冲突。更麻烦的是,社区里有多起报告说 Windows + Android 的组合下,云盘同步导致文件内容被 null 字符覆盖——这种损坏是不可逆的。如果一定要用云盘同步,几点建议:不要在多台设备上同时打开 Vault;排除 .obsidian/workspace*.json;不要和 Obsidian Sync 混用;定期备份 Vault 到独立位置。
| 服务 | Windows | macOS | Linux | Android | iOS | 免费空间 |
|---|---|---|---|---|---|---|
| iCloud | 有客户端但不稳定 | 原生 | 不支持 | 不支持 | 原生 | 5GB |
| OneDrive | 原生 | 有客户端 | 非官方 | 有客户端 | 有客户端 | 5GB |
| Google Drive | 有客户端 | 有客户端 | 有客户端 | 有客户端 | 有客户端 | 15GB |
| Dropbox | 有客户端 | 有客户端 | 有客户端 | 有客户端 | 有客户端 | 2GB |
借助 Remotely Save 插件完成同步
[[Remotely Save]] 的思路和云盘同步不同:它不依赖云盘客户端的文件监控,而是自己在 Obsidian 内部管理同步逻辑。每次同步时对比本地和远端的文件元数据(修改时间、大小),只传变更的部分。支持手动、定时、启动时自动三种触发方式。后端选择很多,大致分两类。
一类是直接对接 [[Dropbox]]、[[OneDrive]]、[[Google Drive]] 等云盘的 API。和把 Vault 扔进云盘目录相比,好处是同步逻辑由插件控制,不会出现云盘客户端和 Obsidian 同时写文件互相打架的情况。配置很简单:装插件 → 选云盘类型 → OAuth 授权 → 配置同步频率和排除规则 → 首次同步。
另一类是 S3 兼容的对象存储,适合不想把数据放大厂手里或者想把成本压到最低的用户。笔记以纯文本为主用量很小,月成本可以低到几美分。几个值得考虑的服务:[[Cloudflare R2]] 存储 $0.015/GB/月、出站流量免费,同步频繁的话比较划算;[[Backblaze B2]] 存储 $0.005/GB/月,有 10GB 免费额度,纯文本笔记基本等于不要钱;[[Wasabi]] 存储 $0.0059/GB/月无流量费,但有 $6.99/月最低消费,不太适合小用量;[[MinIO]] 可以自托管;[[Amazon S3]] 贵但最稳。以 Cloudflare R2 为例,配置流程是:Cloudflare 控制台创建 Bucket → 生成 API Token → Remotely Save 里选 S3 兼容模式 → 填写 Endpoint(https://<account-id>.r2.cloudflarestorage.com)、Access Key、Secret Key、Bucket 名称 → 测试连接。
配置完之后各平台体验一致,支持端到端加密(本地加密后再上传),增量同步只传变更内容,作为"设好就不用管"的方案做得不错。主要的问题是不是实时同步,定时触发有秒级到分钟级的延迟,频繁切换设备偶尔会碰到还没同步过来的情况。免费版的冲突处理是"最后写入胜出",有丢数据的风险。全平台可用,插件免费(PRO 功能付费)。存储成本看后端,以 1GB 纯文本 Vault 算,Backblaze B2 约 $0.06/年,Cloudflare R2 约 $0.18/年——基本可以忽略不计。
LiveSync 插件
[[Self-hosted LiveSync]](obsidian-livesync)用自建的 [[CouchDB]] 数据库做后端,是这几个方案里同步能力最强的,但配置也最折腾。
它借用了 CouchDB 原生的复制协议(Replication Protocol)。CouchDB 是面向文档的 NoSQL 数据库,天生支持双向增量复制和自动冲突检测——每个文件在数据库里是一个文档,每次修改生成新的版本号(revision),多设备同时编辑同一文件时自动检测冲突、保留所有版本,由插件在客户端做合并。用数据库的复制协议来做文件同步,听起来有点杀鸡用牛刀,但效果确实好,同步速度快,冲突处理比其他方案都聪明。
服务端推荐 Docker 部署 CouchDB,部署完成后还需要配置 CORS(允许 Obsidian 跨域访问)、反向代理加 SSL 证书,然后在 Obsidian 里装插件、填数据库连接信息、启用端到端加密。同步模式有三种可选:LiveSync(实时)、Periodic(定时)、On Events(事件触发)。CouchDB 可以跑在 [[Fly.io]] 的免费套餐上(shared-cpu-1x,256MB RAM,1GB 存储),也可以用 [[Oracle Cloud]] 永久免费的 ARM 实例,或者自有 VPS($3-10/月)、家庭 NAS / 树莓派。
用起来的话,同步速度是所有方案里最快的,毫秒级延迟。冲突合并也是最智能的——其他方案要么丢数据,要么生成冲突副本让你手动处理,LiveSync 能自动合并大部分情况。支持端到端加密,服务端存的是密文。离线时照常写,上线后自动把积累的变更同步过去。
劝退的地方也很明显:初始配置是真的麻烦,CORS、SSL、用户权限每一步都不能错。大 Vault 首次同步可能要跑很久。CouchDB 保留历史版本,时间长了数据库会膨胀,需要定期 compact。服务器建议至少 512MB RAM。说实话,如果不是对实时同步和冲突处理有很高要求,这个方案的配置成本有点划不来。但如果你愿意花一个下午把它搞定,之后的体验确实是最好的。全平台可用,插件免费。
方案对比
| 特性 | Syncthing | Fast Note Sync | 云盘 | Remotely Save | LiveSync |
|---|---|---|---|---|---|
| 设置难度 | 中等 | 中等 | 低 | 中等 | 高 |
| 同步速度 | 快(局域网) | 快(WebSocket) | 慢(秒到分钟级) | 中等(定时触发) | 最快(实时) |
| 冲突处理 | 保留冲突副本 | 保留冲突副本 | 差,可能丢数据 | 最后写入胜出 | 自动智能合并 |
| 隐私性 | P2P,数据不经第三方 | 自托管 | 数据存于第三方 | 支持端到端加密 | 自托管 + 端到端加密 |
| iOS 支持 | 需付费第三方 | 原生支持 | 原生支持 | 原生支持 | 原生支持 |
| 是否需要服务器 | 否 | 是 | 否 | 否(用云盘)/ 是(S3) | 是 |
| 月成本 | $0 | $3-10 | $0-12 | $0-5 | $0-10 |
怎么选
- 只用桌面 + Android,不想花钱:[[Syncthing]],配好之后基本不用管
- 已经在付云盘订阅,主要在一台设备上写:云盘同步凑合用,但一定要有独立备份
- 全平台都要覆盖,不想维护服务器:[[Remotely Save]] + [[Cloudflare R2]] 或 [[Backblaze B2]]
- 愿意花一个下午折腾,换来之后最好的体验:[[Self-hosted LiveSync]]
- 想自托管但不想碰 CouchDB:[[Fast Note Sync]]
不管用哪个方案,都建议另外做一份独立备份(Git 仓库、外部硬盘都行)。同步不是备份,同步工具的 bug 可能把错误同步到所有设备上。
相关链接
- [[Obsidian]]
- [[Syncthing]]
- [[Self-hosted LiveSync]]
- [[Remotely Save]]
- [[Fast Note Sync]]
- [[Obsidian Sync]]

