Obsidian 笔记同步自建:用 VPS 摆脱官方同步订阅
2026-08-15 · DevCraft Studio
对比 Obsidian 官方同步与自建方案(Self-hosted LiveSync / Syncthing),在 1GB 内存 VPS 上部署 CouchDB 或 Syncthing 实现多端加密同步,覆盖冲突处理、HTTPS 与手机端配置。
结论先说在前面:如果你只是想在多台设备之间同步 Obsidian 笔记,又不想每月给官方交 4 到 10 美元(以官网为准),那么自建同步完全可行。技术门槛最低、体验最接近官方的方案是 Self-hosted LiveSync 配合 CouchDB;想更省事、不要服务器,可以用 Syncthing 做文件夹级同步。两者都能跑在最低 1GB 内存的廉价 VPS 上,前提是你愿意花一个下午把环境配通。
延伸阅读
更多相关攻略推荐:Ollama AI系列(2):VPS上的AI推理与API应用、Ollama AI系列(2):VPS上的AI推理与API应用、【CPU选型 01】搭载 AMD Ryzen 9950X 的 VPS、ARM / Ampere 席卷 VPS:性价比真香还是兼容陷阱?、Ollama AI系列(2):VPS上的AI推理与API应用。
一、为什么很多人不愿为官方同步付费
Obsidian 官方 Sync 是官方出的托管同步服务,按月付大约 8 美元/月,按年付折算下来约 4 美元/月(价格以官网为准,区间约 4 到 10 美元/月)。对一个重度使用笔记软件的人来说,这不算贵,但有两个现实顾虑让不少国内用户犹豫。
第一是价格与支付。对国内学生、自由职业者、刚工作的知识工作者来说,长期订阅一笔外币月费,叠加支付不便和汇率波动,体感并不便宜。更关键的是,官方同步只是"同步"、不是"备份",你还得另外考虑备份策略,等于又是一笔隐性成本。单纯为了把笔记在多端打通而每月付费,很多人会觉得不值。
第二是数据出境的顾虑。官方 Sync 的服务器在美国,笔记里往往夹带着个人隐私、工作文档、客户信息甚至账号密码草稿。虽然官方声称传输和存储有加密,但"数据落在境外"这件事本身,就足以让一部分对合规、隐私敏感的用户止步。自建方案把数据留在你自己控制的服务器上,心理门槛一下子就降下来了。
当然,官方同步最大的优势是省心:开箱即用、移动端支持好、冲突合并成熟。下面的自建方案在"控制权"上赢了,但在"省心"上要打个折扣,这一点先讲清楚,免得你踩坑后觉得被误导。先想清楚自己更看重省钱控权,还是省时省事,再往下看。
二、方案 A:Self-hosted LiveSync + CouchDB(实时端到端加密)
Self-hosted LiveSync 是社区开发者 vrtmrz 维护的第三方插件,在 Obsidian 社区插件市场直接搜 "Self-hosted LiveSync" 就能装。它靠一个自建的 CouchDB 数据库做中转,实现多端实时同步,并且支持端到端加密(E2EE)。这也是目前自建方案里体验最接近官方 Sync 的一个。
CouchDB 是 Apache 旗下的开源 NoSQL 数据库,特点是使用 HTTP/JSON 接口、天然支持多主复制(multi-master replication)。LiveSync 把每一篇笔记作为一个文档存进 CouchDB,任意一端有改动就通过变更订阅(_changes 接口)推送到其他端,所以能做到近实时。它也会保留文档的修订历史,这也意味着数据库会随时间膨胀,需要定期压缩,后面会讲。
部署后端最省事的办法是用官方 Docker 镜像。一条命令拉起:
- docker run -d --name couchdb -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=你的强密码 apache/couchdb:3
- 首次启动后访问 http://你的服务器IP:5984/_utils/ 进入 Fauxton 管理界面,用刚才设置的账号登录。
- 在配置里打开 CORS:enable_cors = true,并允许 origins 包含 app://obsidian.md、capacitor://localhost、http://localhost,否则手机端会连不上。
- 建议把 single_node 设为 true(单节点模式),小机器不必组集群,反而更省资源。
在 Obsidian 里配置插件时,远程类型选 CouchDB,填入 URL(走反代就是 https://你的域名)、用户名、密码、数据库名(不存在会自动创建)。强烈建议打开端到端加密,并单独设一个加密密码——这个密码只存在于你的客户端,服务器看到的全是密文。加密密码一旦丢失,谁也解不开你的笔记,务必存进密码管理器。
同步模式有三种可选。LiveSync(实时)改动立即传播,带宽占用高但笔记永远最新;Periodic(周期)按固定间隔(如每 5 分钟)同步,省带宽、略有延迟;On events(事件触发)在打开/关闭文件、启动 App 时同步。日常使用实时模式最省心。新增设备时不用手动填一遍,在第一台设备生成 "Setup URI"(编码了全部连接信息),新设备粘贴即可,非常方便。
| 对比项 | LiveSync + CouchDB | Syncthing |
|---|---|---|
| 是否需要服务器 | 需要一台 VPS 跑 CouchDB | 不需要,设备间直连 |
| 实时性 | 近实时(变更订阅) | 弱实时(监听+轮询) |
| 端到端加密 | 插件层支持 | 传输加密,无笔记级 E2EE |
| 冲突处理 | App 内呈现两版手动决定 | 生成 .sync-conflict 副本 |
| iOS 支持 | 原生支持(需 HTTPS) | 需第三方客户端 |
| 月成本 | 仅 VPS 费用(约 0 到 10 美元) | 0 |
三、方案 B:Syncthing 文件夹级同步(更轻量但弱实时)
Syncthing 是另一类思路:它不依赖中心服务器,而是设备与设备之间点对点(P2P)直连,数据不经过任何第三方。把你的 Obsidian vault 当成一个普通文件夹加进 Syncthing,配对好设备、共享这个文件夹,就能在几台机器间同步。
它的优点是轻量、隐私性极高、不需要你维护一台服务器。只要你的设备能互相联网(局域网最快,跨网会尝试直连,失败则走官方中转或你自建的中继),就能同步。对只在桌面和 Android 之间同步、又不想碰命令行的人来说,Syncthing 往往是性价比最高的选择,装好基本不用管。
缺点是"弱实时"。Syncthing 靠文件监听加轮询发现变更,不像 LiveSync 那样基于数据库的变更订阅,跨网络时延迟更明显;而且它做的是文件夹级整体同步,不是笔记级的智能合并。冲突时的处理方式是生成一个带 .sync-conflict 时间戳的副本,需要你手动挑拣,而不是直接合并。
另一个现实限制是 iOS。Syncthing 没有官方 iOS App,想在 iPhone/iPad 上用,只能借助 Mobius Sync 这类第三方客户端,体验和可选项都打了折扣,且通常要付费。如果你重度使用苹果生态,这点要提前想清楚,否则容易配到一半卡在手机端。
配置上,Syncthing 各端的文件夹类型建议统一用 "Send & Receive"(收发一体),不要随便设成只发或只收,否则容易出现一端永远收不到更新的情况。把 vault 所在的目录加为共享文件夹即可,Obsidian 这边什么都不用改,完全是透明的。
四、在 1GB 内存 VPS 上部署:反代 HTTPS 与手机端
回到标题里的"1GB VPS"。CouchDB 本身很轻,社区里有资料说 512MB 也能跑,官方与多数教程的建议下限是 1GB 内存,外加约 5GB 起步的磁盘。换句话说,一台最便宜的入门级 VPS 完全够用,你不必为了同步笔记去升级配置,也不必专门买大内存机器。
部署时有几个要点。其一,CouchDB 3 已经移除了 "Admin Party"(无密码管理员)模式,必须设管理员账号密码,别图省事留空,否则等于把数据库裸奔在公网。其二,数据库数据目录要定期备份,这部分我们放在下一节。其三,绝大多数人的痛点不在安装,而在"手机连不上"。
移动端(尤其 iOS 的 Obsidian)要求同步地址必须是 HTTPS,纯 HTTP 的 5984 端口在手机上基本连不上。所以你需要准备一个域名,并用 Nginx 做反向代理、用 Certbot 申请 Let's Encrypt 免费证书。关键配置是关闭代理缓冲(proxy_buffering off),否则持续复制会出错。
- 用 Certbot 签发证书:certbot --nginx -d 你的域名,按提示完成邮箱验证即可自动改写 Nginx 配置。
- Nginx 的 location / 里写 proxy_pass http://localhost:5984; 同时 proxy_buffering off; 并带上 Host、X-Forwarded-For、X-Forwarded-Proto 等头。
- 证书和代理就绪后,Obsidian 里填的 URL 就是 https://你的域名,不再出现 5984 端口,也更安全。
- 防火墙(UFW)只放开 22、80、443,5984 端口仅限本机(127.0.0.1)访问,别直接暴露到公网。
CORS 配置是 LiveSync 最常见的"静默失败"来源:表现往往是桌面端能连、手机端死活连不上,或者同步卡住不动。测试时务必先从手机端试一次,确认能正常拉取和推送,再宣布大功告成。手机端插件配置很简单:装好 LiveSync 后,粘贴第一台设备生成的 Setup URI,开启实时同步即可;Android 上 vault 用应用内目录更稳,外置存储偶尔会出现权限问题导致同步失败。
五、冲突处理与定期备份:同步不等于备份
多端同时编辑同一篇笔记,一定会遇到冲突。LiveSync 会检测到冲突,并在 App 内把两个版本都呈现出来让你手动决定保留哪个,比"悄悄覆盖"安全得多;它底层用的是文档版本合并,对纯文本 Markdown 笔记的合并相当聪明,多数情况能自动合并成功。Syncthing 则是生成冲突副本(文件名带 .sync-conflict),需要你事后手动清理。
无论用哪种方案,请记住一句话:同步不是备份。同步会把"错误"也原样复制到所有设备——比如你误删了一个文件夹,删除动作会秒同步到手机和笔记本,三端一起没。所以一定要另有一份独立备份。可行做法有三种:把 vault 再推到一个私有 Git 仓库保留历史;或者定期把整个 vault 打包存到移动硬盘;CouchDB 用户则可以直接 tar 数据目录做快照,并定期执行 _compact 压缩修订历史,避免数据库无限膨胀拖慢同步。
最后提醒两个容易翻车的地方。第一,端到端加密的密钥(LiveSync 里的加密密码)丢失等于永久丢失 vault,服务器也救不回来,务必用密码管理器记下。第二,不要在同一台 vault 上混用多种同步机制(比如官方 Sync 和 LiveSync 同时开),两者的元数据会打架导致莫名其妙的冲突;一个 vault 选定一种方案,干净利落。
#Obsidian同步 #自建VPS #CouchDB #Syncthing #笔记自托管