Mac 在家,Windows 在公司,安卓手机随身带。三台设备不在同一个 Wi-Fi,也能同步同一个 Obsidian vault。
Obsidian 的 vault 是一个普通本地文件夹。Syncthing 负责让多个设备上的指定文件夹保持一致。每台设备通过 Device ID 互认,再共享同一个 Folder ID,文件便会开始同步。
这套方案不用购买官方 Sync,也不经过 GitHub 或普通云盘。它也有需要自己承担的地方。至少两台相关设备要同时在线一会儿,文件冲突和独立备份要自己处理。
你可以只连接 Mac 和 Android,也可以让 Windows、Mac 和 Android 三端全部加入。没有加入的设备不会收到任何文件。
本文中的手机端指 Android,iPhone 不适用。

开始前先做备份
先选出哪台设备保存着最完整的笔记。这台设备叫作来源设备。
其余准备加入的设备叫作接收设备。
第一次同步时,每台接收设备的目标文件夹最好是空的。不要让多台设备各自放着不同版本的同一批笔记。
关闭所有相关设备上的 Obsidian,然后把来源设备的 vault 压缩成 ZIP 文件。把 ZIP 复制到另一个目录,确认它不在即将同步的文件夹中。
如果 vault 位于 OneDrive、Dropbox、iCloud 或 Google Drive 目录中,先复制到普通本地目录。不要让两种同步工具同时修改同一个 vault。
推荐路径如下。
Windows
C:\Users\你的用户名\ObsidianVaults\MainVault
Mac
/Users/你的用户名/ObsidianVaults/MainVault
Android
/storage/emulated/0/Documents/Obsidian/MainVault

安装 Syncthing
只看自己准备使用的设备。

Windows
打开 Syncthing Windows Setup,下载最新的 .exe 文件。
安装时使用下面的设置。
- 选择当前用户安装。
- 保留登录后自动启动。
- 允许创建 Windows 防火墙规则。
- 其余选项保持默认。
安装结束后,浏览器通常会打开
http://127.0.0.1:8384
看到 Syncthing 页面就说明它已经运行。
点右上角的 Actions,再点 Settings,把设备名称改成
Windows-PC
Mac
打开 Syncthing for macOS,下载最新版本。
- 把应用拖进 Applications。
- 启动 Syncthing。
- macOS 询问网络权限时选择允许。
- 在菜单栏找到 Syncthing 图标。
- 打开 Preferences。
- 启用登录后自动启动。
通过菜单栏图标打开 Syncthing 页面,把设备名称改成
Mac
如果 macOS 拒绝第一次打开,可以进入系统设置,打开隐私与安全性,在页面下方选择仍要打开。
Android
安装社区维护的 Syncthing-Fork。推荐使用 F-Droid 版本。
也可以从 GitHub 发布页下载 APK。应用包名应当是
com.github.catfriend1.syncthingfork
第一次打开时允许下面这些权限。
- 读取和写入文件
- 后台运行
- 开机启动
- 显示通知
- 忽略电池优化
再进入 Android 系统设置,找到 Syncthing-Fork,把电池选项设成不受限制。不同品牌手机也可能把这个选项叫作允许后台活动或不优化。
把设备名称改成
Android
让设备互相认识
下面的操作只需要做一次。
在第一台设备上打开 Syncthing,点 Actions,再点 Show ID。手机端可以直接打开设备 ID 页面。
复制这串设备 ID。
在另一台设备上点 Add Remote Device,粘贴刚才复制的 ID,并填写设备名称。
保存后回到第一台设备。它会显示一条新增设备请求。选择接受。
两台设备都显示 Connected 后,这一对连接已经完成。
只有两台设备时,到这里就够了。
使用 Windows、Mac 和 Android 三台设备时,建议把三组连接全部建立起来。
Windows ↔ Mac
Windows ↔ Android
Mac ↔ Android
这样任意两台在线时都能直接同步。如果 Mac 和 Android 都只添加了 Windows,Mac 与 Android 彼此没有添加 Device ID,那么 Windows 就是它们之间唯一的传递设备。Windows 关机后,Mac 和 Android 会暂时无法互传文件。给 Mac 和 Android 互相添加 Device ID 后,Windows 是否开机都不会影响这一对设备同步。
到这里,设备只是互相认识了,笔记还没有开始同步。下一步才是把 vault 分享给其他设备。
从来源设备分享 Obsidian 文件夹
这一节要在保存完整笔记的来源设备上操作。
打开 Syncthing,点 Add Folder。
Folder Label 填
Obsidian Main
Folder ID 填
obsidian-main
Folder Path 选择来源设备上的真实 vault。
Windows 示例
C:\Users\你的用户名\ObsidianVaults\MainVault
Mac 示例
/Users/你的用户名/ObsidianVaults/MainVault
Android 示例
/storage/emulated/0/Documents/Obsidian/MainVault
Folder Type 选择
Send & Receive
进入 Sharing,勾选所有需要接收这个 vault 的设备。
进入 Ignore Patterns,填入
.git
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.trash
.DS_Store
Thumbs.db
保存文件夹。
在每台接收设备上接受文件夹
每台接收设备都会出现共享文件夹请求。逐台点 Add 或接受。
接收位置根据设备选择。
Windows
C:\Users\你的用户名\ObsidianVaults\MainVault
Mac
/Users/你的用户名/ObsidianVaults/MainVault
Android
/storage/emulated/0/Documents/Obsidian/MainVault
这个文件夹第一次接收时最好为空。
Folder Type 选择 Send & Receive。
在 Ignore Patterns 中填入相同内容。
.git
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.trash
.DS_Store
Thumbs.db
保存后等待所有参加同步的设备都显示 Up to Date。
第一次同步时不要关闭 Syncthing,也不要让 Android 锁屏。
在每台接收设备打开 Obsidian
等 Syncthing 显示 Up to Date 后再打开 Obsidian。
在 Windows 或 Mac 上选择 Open folder as vault,然后选择刚才接收的 MainVault 文件夹。
在 Android 上进入 vault 管理页面,选择打开本地文件夹,然后选择
Documents/Obsidian/MainVault
允许 Obsidian 读取和写入这个文件夹。
Mac 和 Android 的完整例子
如果你的组合是 Mac 和 Android,最后得到的是下面这个结构。
Mac
/Users/你的用户名/ObsidianVaults/MainVault
↕
Syncthing
↕
Android
/storage/emulated/0/Documents/Obsidian/MainVault
Mac 已经有完整笔记时,按下面的顺序操作。
- 在 Mac 和 Android 上安装 Syncthing。
- 复制 Android 的设备 ID,在 Mac 上添加 Android。
- 回到 Android 接受 Mac。
- 在 Mac 上添加
MainVault文件夹。 - 在 Sharing 中只勾选 Android。
- Android 收到文件夹请求后选择接受。
- Android 的保存位置选择
Documents/Obsidian/MainVault。 - 等两边都显示 Up to Date。
- 在 Android Obsidian 中打开这个文件夹。
整个过程不经过 Windows,也不经过 GitHub。
做一次双向测试
在来源设备新建一篇笔记。
同步测试.md
输入
这是来源设备写入的第一行。
等两边都显示 Up to Date。
在接收设备打开同一篇笔记,再输入
这是接收设备写入的第二行。
再次等待 Up to Date,然后回到来源设备查看。
两行都在就说明双向同步已经成功。
日常使用
准备换设备时,先让当前设备显示 Up to Date。打开下一台设备后,也先等待 Up to Date,再开始编辑。
多台设备同时修改同一篇笔记时,Syncthing 可能生成带有 sync-conflict 的冲突文件。不要直接删除。打开不同版本,把需要的内容合并后再清理。

Syncthing 没有替你长期保存文件的中央云端。至少需要两台相关设备同时在线一会儿,文件才能传过去。如果 Mac 在家里关机,手机上的改动会先留在手机中。Mac 开机并联网后,设备会继续同步。

设备可以位于不同地点。Syncthing 会先尝试直接连接,无法直连时通常会尝试中继服务器。公司网络可能限制这类连接。如果你使用公司 PC,需要遵守公司的数据和网络规定,并确认 Syncthing 显示 Connected。
打开旧版本保护
建议在电脑上为这个文件夹打开版本保留。
- 找到
Obsidian Main。 - 点 Edit。
- 打开 File Versioning。
- 选择 Staggered File Versioning。
- Maximum Age 填
30。 - 保存。
电脑收到其他设备的覆盖或删除操作时,会把旧文件放进 .stversions。这能处理一部分误删情况,但仍应保留独立 ZIP 备份。

常见问题
Android 一直离线
检查 Wi-Fi、后台运行权限和电池限制。打开 Syncthing-Fork 后等待一分钟。
Mac 关闭窗口后不再同步
Syncthing 需要留在菜单栏运行。不要从菜单中点 Quit,并确认登录后自动启动已经打开。
Windows 重启后没有同步
从开始菜单打开 Syncthing。重新安装时确认保留登录后自动启动。
Obsidian 看不到 Android 文件夹
确认文件夹位于普通内部存储。
Documents/Obsidian/MainVault
不要把 vault 放在 Syncthing-Fork 的应用私有目录中。
文件显示 Out of Sync
先关闭所有相关设备上的 Obsidian,再查看 Syncthing 显示的失败文件。保留 ZIP 备份,不要点击 Override Changes,也不要删除整个 vault。
第一次先用 TestVault
准备动手时,先新建一个 TestVault,里面只放一篇 同步测试.md。等相关设备都显示 Up to Date,再从另一台设备修改这篇笔记。
两个方向的改动都能正常出现以后,再备份并迁移正式 vault。这样即使第一次设置出错,也不会碰到原来的笔记。