大概半年前我换了台新电脑,第一件事就是把 Notebook 里那套 Obsidian 笔记库搬过去。本以为是复制粘贴的小事,结果发现远比想象中麻烦:U 盘拷过去容易,可接下来两个设备来回编辑,很快就出现了好几份永远对不上的副本。那段时间我几乎把主流同步方案都试了个遍,最后真正稳定用下来的,就是“Obsidian + 坚果云”这套组合。今天不绕弯子,直接把这套同步方案从选型逻辑、配置步骤到踩坑记录完整写出来,希望能帮到正在为笔记同步头疼的人。
这篇指南会覆盖:为什么选坚果云而不是其他方案;坚果云“官方插件”到底是个什么东西;从零开始配置的每一个参数;同步背后的机制和冲突逻辑;以及我实际踩过的三个坑和完整排查链路。无论你是刚接触 Obsidian 的新手,还是已经被多设备同步折腾到想放弃的老用户,这篇文章应该都能让你少走不少弯路。
1. 为什么最后选了“Obsidian + 坚果云”这套组合
先说结论:我用这套方案大半年,从来没有因为同步问题丢失过笔记,最严重的意外只是多了一两个冲突副本。而且整个配置过程不到十分钟。但这不是说它完美,而是对比其他几条路线之后,它在“省心”和“可控”之间最平衡。
1.1 我换过四条同步路线之后的真实感受
当时面前的可选项其实挺多,但真正能无脑上手的不多。我把试过的路线和各自的感受列出来,大家可以对照自己的条件选。
| 同步方案 | 上手难度 | 实时性 | 稳定性 | 主要问题 |
|---|---|---|---|---|
| 网盘客户端直接同步文件夹 | 低 | 中 | 中 | 客户端常驻内存,某些设备上资源占用高,偶尔出现文件占用锁 |
| Git 仓库同步 | 高 | 低 | 高 | 每次同步要手动 commit/push,冲突处理要懂基础命令,上手门槛太高 |
| Syncthing 点对点同步 | 中高 | 高 | 高 | 需要多台设备同时在线才能即时同步,网络穿透偶尔抽风,路由器配置劝退不少人 |
| 坚果云 WebDAV 方案 | 低 | 中 | 高 | 免费版有流量限制,不用官方 Sync 服务就得接受非实时同步 |
你发现没有,前三种方案各有各的硬伤。网盘客户端确实简单,但某些网盘会把 Obsidian 的库文件夹当成普通文件来处理,有时候还会把正在写入的.md文件锁住,导致 Obsidian 报错。Git 方案稳定是真稳定,但对大多数人来说,为了同步笔记去学git rebase和git merge太不划算了。Syncthing 又太依赖设备在线状态——手机息屏一段时间就收不到更新了。
坚果云方案能胜出,核心就一句话:它没有引入额外心智负担。坚果云本身提供了 WebDAV 接口,Obsidian 端通过插件把笔记库映射成一个“远程文件夹”,点一下同步按钮就完事。不需要客户端常驻,不需要学命令,更不需要搞内网穿透。
1.2 坚果云免费版到底够不够用
这是很多人关心的第一个问题。坚果云免费版每月有固定流量:上传 1GB,下载 3GB。听起来很抠门?对纯文本笔记来说,其实完全够用。
一个典型 Obsidian 笔记库,如果主要是 Markdown 文本文件,1000 篇笔记大概也就 10MB 到 50MB。再加上图片附件撑到 200MB 也不算多。每月的 1GB 上传额度,对文字为主的库来说非常宽裕。
但下面两种情况会爆流量:
- 把未压缩的视频、音频放进 vault 里。一个几百 MB 的视频同步一次就把上传额度吃光了。
- Obsidian 本身生成的一些缓存文件频繁变化。比如
.obsidian/workspace.json会记录窗口布局、打开的标签页,几乎每次操作都在变。虽然单个文件很小,但积少成多。
我的建议是:笔记库只放笔记和必要的图片附件,大文件一律放到另一个独立的文件夹,让坚果云客户端的常规同步功能去管,不要通过 WebDAV 插件同步。这样免费额度用起来绰绰有余。
1.3 关于“官方插件”的准确说法
这里要先澄清一个很容易产生误解的点:准确地说,坚果云目前并没有为 Obsidian 单独开发一个名为“坚果云同步”的官方插件。我们口口相传的“坚果云官方插件”,其实是指“坚果云官方提供的 WebDAV 服务 + Obsidian 社区插件”这套组合方案。
坚果云负责服务端,提供稳定可公网访问的 WebDAV 地址;Obsidian 端负责客户端,通过社区插件把本地 vault 和远程 WebDAV 目录同步起来。
Obsidian 端常用的社区插件有 Remotely Save、Obsidian WebDAV Sync 等。我个人用过 Remotely Save,整体体验比较顺,后续文章里的配置步骤都会以它为例。理解这一点之后,配置的时候就不会纠结“为什么官网没有下载按钮”了。
2. 从零开始配置:一步步操作与每一项参数的意义
下面进入正题。这套方案的完整路径是:先在坚果云后台开通 WebDAV 并拿到应用密码,再到 Obsidian 里装插件、填配置,最后验证同步是否正常。每个参数我都会解释它为什么这么填。
2.1 先到坚果云开通 WebDAV 并生成应用密码
第一步不是打开 Obsidian,而是先把坚果云这边的“钥匙”准备好。
- 登录坚果云网页端。
- 点击右上角的账户头像,进入“账户信息”页面。
- 找到“安全选项”或“第三方应用管理”区域。
- 点击“添加应用密码”,输入一个名字(比如
ObsidianSync)。 - 系统会生成一段密码。这个密码只显示一次,一定要先复制保存再关闭页面。
这段密码不是你的坚果云登录密码,而是专门给第三方应用使用的受限密码。之所以要单独设置,是因为坚果云 WebDAV 接口不接受你的账号登录密码直接验证,必须用应用密码。很多新手第一次配置失败,十有八九就是在这里用成了登录密码。
提示:应用密码和登录密码完全不是一个东西。登录密码能进网页后台,能管理文件,权限很大;应用密码只能通过 WebDAV 访问文件,权限受限。这也是安全设计上的考量,别为了省事直接把登录密码填进插件里。
2.2 Obsidian 端插件安装与配置项逐个说明
打开 Obsidian,先进入第三方插件设置:
- 左下角设置→第三方插件(Community plugins)。
- 如果显示安全模式开启,先关闭安全模式。
- 点击浏览(Browse),在搜索框输入
Remotely Save。 - 找到插件后点击安装,装完再点启用。
启用之后,左侧边栏会出现一个云朵图标,这就是 Remotely Save 的同步入口。接下来进入它的设置页面,每一项都值得说清楚。
- 远程服务类型(Remote Service Type):选择
WebDAV。 - 服务器地址(Server Address):填
https://dav.jianguoyun.com/dav/。这个地址是坚果云 WebDAV 的统一入口,不要自己发挥改成别的域名。 - 用户名(Username):填你的坚果云登录邮箱,不是昵称。
- 密码(Password):填刚才生成的应用密码,不是登录密码。
- 远程路径(Remote Path):这里建议填
/Obsidian/,注意前后都要有斜杠。这个路径的意思是,坚果云 WebDAV 根目录下会创建/使用一个名为Obsidian的文件夹来存放你的 vault。 - 同步方式:可以选择自动或手动。我建议先选手动跑通,之后确定没问题再改成自动。
关于远程路径有一个常见的困惑:有些人填/dav/Obsidian/,有些人填/Obsidian/,到底哪个对?以坚果云为例,https://dav.jianguoyun.com/dav/这个 URL 本身已经代表了 WebDAV 根目录,所以后面直接跟Obsidian/就行。如果你在别的服务上用 WebDAV,可能路径前缀不一样,但坚果云不需要额外加/dav/。
2.3 首次同步的验证方法
配置完成后,点击 Remotely Save 界面上的“立即同步”按钮。第一次同步会把本地整个 vault 上传到坚果云,如果笔记库比较大,可能需要等一会儿。
同步完成后,打开坚果云网页端,进入个人文件目录,你应该能看到一个名为Obsidian的文件夹,里面所有.md文件都在。为了进一步确认,可以做一个双向验证:
- 在本地 Obsidian 里新建一个测试笔记
test-sync.md,写几个字,点击同步。约几秒后刷新网页端,文件应该出现在云端。 - 反过来,在坚果云网页端的
Obsidian文件夹里新建一个from-cloud.md,内容写一句话,再回到 Obsidian 点击同步。本地应该会出现这个文件。
两个方向都通了,说明整套配置没毛病。如果其中一个方向失败,别急着乱改参数,十有八九是应用密码填错或者远程路径里的斜杠漏了。
3. 同步机制拆解:WebDAV 到底是怎么把笔记“搬”到云端的
搞清楚“能同步”之后,最好再花两分钟理解“同步是怎么发生的”。不然一旦遇到冲突文件或版本回滚,很容易一脸懵。
3.1 WebDAV 和网盘客户端的本质区别
日常用的网盘客户端,本质上是一个常驻后台的文件监视服务:本地文件一变,客户端就自动检测、自动上传、自动拉取。你几乎感觉不到同步的存在。
而 WebDAV 更像一个远程文件系统接口:程序通过 HTTP 协议把云端的文件夹当成一个可以读写删除的“远程目录”。Obsidian 这边的 Remotely Save 插件扮演的角色不是一个常驻监视器,而是一个由你触发的搬运工。
也就是说,它不会在你每次打字的时候都实时上传,而是在你点击“同步”按钮、或者到达设定的自动同步时间点时,才把本地变化推送到云端、把云端变化拉取到本地。
理解这点很重要:如果你的插件设置是手动同步,那你在 A 设备写完笔记,没点同步就关电脑,B 设备上自然看不到更新。这不是坚果云的锅,是 WebDAV 方案本身的特性。
3.2 同步方向判定与“最后写入者胜”
同步的本质是“比对差异、合并结果”。Remotely Save 的工作流程大致是:
- 扫描本地 vault 的所有文件,记录修改时间戳。
- 拉取云端文件夹的文件列表和修改时间戳。
- 对比两者,找出“本地有而云端没有”或“云端有而本地没有”的文件。
- 上传本地新增/变动的文件,下载云端新增/变动的文件。
- 对于两边都变动过的同名文件,进入冲突处理逻辑。
对于绝大多数情况,这套机制够用。但这里有一个关键点要说透:它不是一个实时协同编辑系统。
举例来说,你在手机端打开某篇笔记,同时又在电脑端改了同一篇笔记,然后两个设备各自同步。这时候就会出现同一文件的两个版本。Remotely Save 的默认逻辑通常是“最后写入者胜”——哪个设备本次同步时给文件打的修改时间戳更晚,就用哪个版本覆盖另一个版本。
这意味着:如果你在手机端和电脑端同时编辑同一篇笔记,其中一个版本的修改可能会被无声无息地覆盖掉。所以我的习惯是:重要笔记一次只在一个设备上改,改完立即同步,再换下一个设备继续。
3.3 冲突文件的生成逻辑与怎么处理
如果你在多个设备上轮流编辑同一篇笔记,但中间漏了一次同步,坚果云不会立刻报错。它会把两边都改过的文件生成为“冲突副本”,命名规则一般是原文件名加上“冲突副本”字样,比如项目计划 (冲突副本).md。
这种文件名是坚果云服务端的处理逻辑,目的是让两个版本都保留,避免直接覆盖造成数据丢失。
处理冲突副本的方法是:打开两个文件,对比内容差异,手动合并成一个最终版本,删掉另一个。千万别图省事直接把冲突副本删了——先打开看一眼,里面很可能有你在另一个设备上留下的关键改动。
注意:有些人的 Obsidian 笔记库里,一个文件名被两个设备各改了一部分,合并后的文件需要谨慎处理。常见的做法是:以修改时间靠后的版本为主,把另一个版本里多出的内容手动粘贴进去。这个过程虽然有点繁琐,但至少不会丢数据。
4. 避坑实录:三个真实问题的完整排查链路
下面这部分是我最想写的。这三个问题我都真实遇到过,每一个都不是设置界面一眼能看出来的,需要一步步排查才能定位。我会按照我的排查链路来写,而不是直接甩出答案。
4.1 问题一:连接成功但本地修改不更新到云端
现象:配置没问题,首次同步也成功了,但后来某一天开始,我修改了一篇很早之前创建的笔记,点击同步,网页端没有任何变化。插件也没报红字错误,界面显示“同步完成”,但云端确实没有新版本。
我当时的排查过程是这样的:
第一步,先看插件的同步日志。Remotely Save 设置里有日志窗口,会显示每一次同步中每个文件是上传还是跳过还是失败。我翻了一下,发现大部分文件都显示no change,但有一篇笔记显示failed。
第二步,单独测试这个小文件。我新建了一个test.md,填写内容,点击同步,云端立刻出现了。这说明整个链路是通的,问题集中在那篇失败的笔记上。
第三步,观察失败笔记的文件名。问题出在一个全角冒号上。那篇笔记的标题是项目总结:2024年度.md,文件名里带了一个中文全角冒号。WebDAV 协议对某些字符的处理并不友好,尤其是全角冒号、问号、反斜杠这类,在做 URL 编码时容易出问题,导致服务端无法正确识别路径。
最后我把文件名改成项目总结-2024年度.md,重新点击同步,一秒就上去了。
这个坑很隐蔽,因为Obsidian 本地对文件名几乎不设限,但云端 WebDAV 接口不是同一个宽容标准。此后我给自己定了一条规矩:文件名只用中文汉字、数字、短横线和下划线,不用问号、冒号、斜杠、星号这些特殊字符。这不光是为了坚果云,以后万一换同步方案,也能少踩一遍坑。
4.2 问题二:两台设备始终存在同一份笔记的旧版本
现象:我在电脑上改完一篇笔记并成功同步,拿起手机打开 Obsidian,看到的还是旧版本。手机点击同步,提示成功,但内容没变。
这个问题的排查链条比较长,当时也耽误了不少时间。
第一步,先回电脑上确认“同步成功”到底是不是真的成功。打开坚果云网页端,找到那篇笔记,浏览器里预览,内容确实是最新的。说明电脑到云端这一环没问题。
第二步,回到手机端,检查 Remotely Save 的配置。我发现一个细节:手机端插件配置里的远程路径填的是/Obsidian/,但后面多了一个空格。看起来是小问题,但正好因为这个空格,插件实际连的一个不存在的路径,每次同步都在“自建新目录”,自然拉不下来电脑端传上去的文件。
第三步,把远程路径里的空格删掉,重新配置。再次点击同步,手机上就出现了最新版本。
这次经历给我的教训是:WebDAV 方案的配置项对字符串特别敏感,一个空格、一个斜杠、一个大小写差异,都可能让它连到完全不同的路径。排查同步问题时,先把两端插件的远程路径、用户名、服务器地址逐字符对比一遍,别急着怀疑插件不稳定。
4.3 问题三:流量超限导致同步静默失败
现象:某个月的中旬,我发现 Remotely Save 一直报错,提示信息是413或者bandwidth limit exceeded。但本地 Obsidian 一切正常,网页端坚果云也能打开。当时我差点以为是坚果云服务器出问题了。
排查链路是这样的:
第一步,看报错时间点。报错并不是从开始就有,而是某天固定出现。这很像资源配额问题。
第二步,登录坚果云网页端,找到“使用情况”或“流量统计”页面,查看当月上传和下载量。果然,上传流量已经接近 1GB 的上限。
第三步,分析流量为什么超了。我打开坚果云网页端,看Obsidian文件夹里体积最大的几个文件。发现上个月我在笔记里插入了一个录制屏幕的短视频(大约 80MB),后来又改过一次,等于同一个视频上传了两次,160MB。加上某几次笔记库大版本整理,整个 vault 被我反复同步,流量很快就见底了。
那次之后我做了三件事:
第一,把 vault 里所有大体积附件(视频、音频、压缩包)全部移出去,只保留文本和压缩后的图片。
第二,缩小自动同步频率,从每 5 分钟一次改成每 30 分钟一次,减少不必要的上传流量。
第三,如果确实需要在笔记里引用大文件,我会把文件放到坚果云客户端的独立目录,用链接指向它,而不是塞进 Obsidian 的 vault 由 WebDAV 同步。
4.4 排查方法论:遇到同步问题先做这三步
踩了这么多坑之后,我总结出一套固定排查流程,现在遇到任何同步异常,都按这个顺序来,基本都能快速定位:
- 看插件日志,不要瞎猜。Remotely Save 的日志会记录每个文件的状态,报错信息里往往有真正的原因。日志不是给开发者看的,是给使用者救命用的。
- 用小文件做单向传输验证。新建一个
test.md,上传一次,确认上传方向没毛病;再到网页端新建一个文件,拉取一次,确认下载方向也没毛病。哪个方向断了,问题就在哪半边。 - 去云端网页端确认状态。本地显示“同步完成”不代表云端真的有你期望的内容,打开坚果云网页端直接看文件列表和修改时间,这是唯一可靠的事实依据。
这三步对应了三个最常见的问题:配置错误、路径错误、网络或流量异常。90% 的同步故障都能通过这三步找到根因,剩下的 10% 大概率是特殊字符文件名需要改名处理。
5. 让方案更好用的几个进阶技巧
同步通了之后,我花了一些时间把整个工作流打磨得更顺手。下面这几个技巧,算不上什么惊天优化,但确实让日常使用省心很多。
5.1 合理规划 vault 目录,给“同步区”瘦身
笔记库里不是所有东西都需要 WebDAV 同步。我的库现在分成几个区域:
00-Inbox:收集箱,存放临时想法,每天清理。10-Projects:按项目划分的长期笔记。20-Area:需要持续维护的知识区域。30-Archive:归档区,几乎不再变动的旧笔记。90-Attachments:附件目录,只存放压缩后的图片。
这样做的好处有两个。第一,归档区体积大但变动少,不会频繁触发 WebDAV 上传流量;第二,附件集中管理之后,排查“哪个文件导致流量爆掉”变得非常直观,打开云端文件夹按体积排序看一眼就知道了。
如果你不想这么复杂,至少做到一点:别把工作文件和笔记资料混在同一个 vault 里。
5.2 给重要仓库增加一层额外备份
坚果云同步做的是“多设备间文件一致”,不是“无限版本备份”。如果你某天误删了一篇笔记,云端也会同步删除。所以我把同步和备份分层来看:
- 同步:坚果云 WebDAV,负责让所有设备拿到同一份最新内容。
- 备份:我每隔两周会把整个 vault 压缩一次,放到外部存储或另一个网盘目录,不通过 Remotely Save 同步。
这个习惯帮我挽回过一次损失。那个月我为了整理笔记库,删掉了一个旧文件夹,后来发现里面有一篇重要笔记的早期版本被误删了。好在两周前的备份压缩包里还有,花了两分钟就找回来了。从此以后,“同步”和“备份”在我心里永远是两件事,不指望同一个工具同时承担两个角色。
5.3 和其他插件配合时的几个注意点
Obsidian 生态里插件很多,大部分都能和 Remotely Save 共存,但也有几个注意点:
- 日记类插件:每天自动生成一篇新笔记,本身不影响同步。但如果日记模板里用了日期变量,文件名会带类似
2025-06-12.md的格式,这种短横线命名 WebDAV 完全兼容,不存在问题。 - 模板插件:插入模板时会在一瞬间生成多个文件,自动同步如果开着,插件会连续上传几次。这不是故障,只是流量会稍微多一点点。介意的话可以把自动同步间隔调大。
- Dataview 这类查询插件:它们是基于本地已加载文件做查询的,不需要联网,也不会影响同步。但注意,同步插件不要在多个设备上同时触发大规模全量同步,一次只让一台设备做“首次全量同步”,其他设备等它完成后再进行增量同步,可以避免大量冲突副本。
- Templater 和执行脚本的插件:如果脚本里写了文件操作逻辑,比如批量重命名,建议先关掉自动同步,等批量操作完成后再手动同步一次。不然可能会在批量操作过程中产生很多瞬时冲突。
5.4 我目前的工作流配置参考
最后分享我现在的配置,直接抄作业也行,按自己情况微调更好:
首先,自动同步开启,间隔设定为 30 分钟。白天在电脑前写笔记,一般 30 分钟内会自动传到云端;睡前如果改完一篇重要笔记,我会立刻点一次手动同步,不等自动定时。
其次,所有设备用同一个插件配置,同一套账号密码。这里的“同一个配置”指三个关键项完全一致:服务器地址、用户名、远程路径。我每次新换设备,都会复制一份现有设备的配置,而不是凭记忆手打,就是为了避免空格和大小写错误。
然后,冲突文件目录我每周检查一次。打开 Obsidian 的文件列表,搜索“冲突副本”,找到就处理掉。没时间的时候,至少要做到“读一遍再删”,永远不要让一个没看过的冲突副本被房子扫地出门。
最后一个我觉得很实用的习惯是:大改之前手动同步一次。比如要批量移动文件夹、重命名多个文件、删除一个大章节,先同步到云端,再动手。这能保证即使操作失误,我也可以回到云端某个版本重新拉取——虽然它不是版本控制系统,但至少能把事故范围控制在一个同步周期内。
一开始我觉得 Obsidian 同步是个技术问题,后来发现它更像一个习惯问题。坚果云这套方案,本质上没有太多“高级技巧”,真正让工作流稳定的,是搞清楚同步机制、避开特殊字符、控制流量消耗、以及定期检查冲突副本这些基础动作。如果你正在折腾笔记同步,不妨按这篇指南里的步骤先跑通一遍,再顺着自己的使用习惯慢慢调整。