很多人使用 Obsidian 作为自己的知识库,但是官方同步价格贵,用 GitHub 或者网盘同步又不方便(当然,如果你是苹果全家桶用户,直接 iCloud 完事)。对于 Android、Windows、macOS 混用的选手来说,我折腾了不少实时同步方案,最终选择了 Syncthing。
如果你也有类似需求,可以参考这套方案。文末还有一段给 Agent 的指令,可以直接交给 Agent 帮你配置桌面端。
Obsidian 仓库本质上就是一个普通文件夹:Markdown、图片、附件和 .obsidian 配置都在里面。多端使用 Obsidian 的关键,是让 Windows、Mac 和安卓手机上的三个本地文件夹保持一致。Syncthing 做的正是这件事。
配置好以后,实际效果如下:
- Windows 上新建一篇笔记,Mac 和手机会收到同一个 Markdown 文件。
- 手机上补两句话,电脑端会收到这次修改。
- 三台设备都保留完整本地副本,断网时照样可以打开和编辑。
- 回到有网络的环境后,Syncthing 会继续传输没有同步完的变更。
- 不需要把笔记先上传到某个网盘,也不需要把 Syncthing 的管理页面暴露到公网。
下面以“Windows 上已经有一套完整 Obsidian 仓库,需要同步到 Mac 和安卓手机”为例。若你的主仓库在 Mac 上,只要把 Windows 和 Mac 的角色对调即可。
一、Syncthing 同步原理

Syncthing 不是一个云盘客户端,它没有一个必需的“中心网盘”。每台设备都运行一个 Syncthing 实例,并拥有自己的设备 ID。只有互相接受过设备 ID 的设备,才会建立连接。
传输时,它会把文件切成数据块、计算校验值,只传需要更新的部分。设备在同一个局域网时通常可以直接连接;不在同一网络时,会通过全局发现服务找到对方的地址。如果 NAT 或防火墙导致直连失败,才会使用 Relay 中转。
第一,发现服务的作用是“告诉设备去哪里找对方”,不是替你保存笔记。Relay 也只是转发加密流量,不能看到明文内容。设备之间的传输使用 TLS,连接双方还会核对设备 ID。
第二,Syncthing 是同步工具,不是备份工具。你在一台设备上删除文件,删除操作也会传播;错误修改、插件误操作同样会同步过去。后面会同时配置版本控制,但重要笔记仍然要有独立备份。
多端设备如何全部配对
例如,最简单的结构是 Windows、Mac、手机两两配对,也就是:
Windows ↔ MacWindows ↔ AndroidMac ↔ Android这样,只要任意两台设备同时在线,它们就能直接同步。即使 Windows 关机,Mac 和手机仍然可以互相传文件。
如果只把 Windows 当中转站,那么 Windows 关机后,Mac 和手机之间就不会及时交换修改。能用,但不如全互联稳妥。
二、如何操作
1. 选定唯一的“初始主仓库”
第一次配置时,只认一台设备上的现有仓库为完整版本。本文假设它在 Windows:
D:\Notes\MyVaultMac 和手机上的接收目录应当是空目录。不要提前在三台设备上各建一个同名仓库,再让 Syncthing 强行合并,那样很容易一开始就产生冲突文件。
2. 先备份一次
先退出 Obsidian,再把完整仓库复制到另一个位置,或者打成压缩包。Windows 可以在 PowerShell 中运行:
tar -a -c -f "$env:USERPROFILE\Desktop\MyVault-before-syncthing.zip" -C "D:\Notes" "MyVault"路径按自己的实际情况修改。压缩包必须放在同步仓库外面,否则它也会被同步。
3. 停掉其他同步工具
同一个 Obsidian 仓库不要同时交给两套同步服务管理。 两个同步引擎同时改文件,最常见的结果不是“双保险”,而是重复文件和冲突。
三、下载并安装三端客户端
截至 2026 年 7 月,Syncthing 主程序当前版本为 2.1.2。不要在搜索引擎里随便找下载站,统一从项目的官方下载页进入。
Windows:使用 Syncthing Windows Setup
新手直接用官方下载页列出的 Syncthing Windows Setup。它会安装 Syncthing,并可同时配置登录启动和 Windows 防火墙规则。
安装时这样选:
- 下载最新安装程序并运行。
- 安装类型选“当前用户(Current User)”。普通个人电脑没有必要装成系统服务。
- 保留“登录时启动 Syncthing”的选项。
- 允许安装器创建 Windows 防火墙规则。
- Web GUI 监听地址保持
127.0.0.1,不要改成0.0.0.0。 - 完成安装后,浏览器会打开
http://127.0.0.1:8384/。
Syncthing 的桌面管理界面就是这个本地网页。左侧是同步文件夹,右侧是本机和远程设备。

图:Syncthing 官方入门文档。当前版本的字段和基本布局一致。
首次进入后,点右上角“操作(Actions)→ 设置(Settings)”:
- 在“常规(General)”里把设备名改成容易识别的名称,例如
Windows-Laptop。 - 在“GUI”里设置用户名和强密码。
- GUI 地址仍保持
127.0.0.1:8384。
macOS:使用官方 syncthing-macos
macOS 推荐使用官方托盘应用 syncthing-macos。它会管理后台进程、菜单栏图标和自动更新。当前 Syncthing 2 系列至少需要 macOS 12;旧系统先查看发布页的兼容说明。
图形安装方法:
- 下载最新 DMG。
- 打开 DMG,把 Syncthing 拖进“应用程序”。
- 第一次启动时,按 macOS 提示确认打开。
- 点击菜单栏的 Syncthing 图标,打开 Web GUI。
- 在偏好设置中打开“登录时启动(Launch at Login)”。
- 把设备名改成
MacBook,并为 Web GUI 设置用户名和密码。
已经安装 Homebrew 的用户也可以直接运行:
brew install --cask syncthing-app一个设备只保留一个 Syncthing 实例。 不要同时运行 syncthing-macos、Homebrew 后台服务和另一个 Syncthing 包,否则它们会抢占端口和配置目录。
Android:安装 Syncthing-Fork
安卓端不要再装已经停止维护的旧官方 Syncthing App。现在使用仍在更新的社区版本 Syncthing-Fork。
推荐从 F-Droid 安装,后续更新最省心。当前版本为 2.1.2.0,要求 Android 6.0 或更高。没有 F-Droid,也可以从 GitHub Releases 下载 APK;手动安装 APK 时,需要在系统设置中临时允许浏览器或文件管理器“安装未知应用”。安装完成后可以关闭该权限。
第一次打开 Syncthing-Fork,会出现欢迎向导。建议逐页这样处理:
- 存储权限:点“授予权限”。Syncthing 必须能读写 Obsidian 仓库。
- 通知权限:点“允许”。常驻通知用于维持 Android 前台服务,也会显示设备连接和文件夹邀请。
- 电池优化:允许 Syncthing-Fork“不受限制”或“忽略电池优化”。项目文档明确说明,撤销这个权限可能导致后台同步停止。
- 位置权限:如果你要使用“只在指定 Wi-Fi 上同步”,就允许;如果不需要识别 Wi-Fi 名称,可以先跳过。
- 密钥生成:等待完成,不要中途强退应用。
向导完成后,进入左上角菜单“设置”:
- 在“行为”里打开“自动启动”。
- 在“运行条件”里打开“使用 Wi-Fi 时运行”。
- “当设备由以下电源供电时运行”选“交流电源和电池电源”。
- 第一次同步时先关闭“按时间表运行”,避免全量传输被切成很多小段。
- 不想消耗流量,就关闭“使用移动数据时运行”和“漫游时运行”。
- 如果手机厂商还有单独的后台管理,把 Syncthing-Fork 加入自启动、后台运行和省电白名单。
Syncthing-Fork 的常驻通知需要保留。 它表示前台服务正在运行。把通知权限关掉,反而可能让同步变得时好时坏。

图:Syncthing-Fork 项目官方截图。
四、先把三台设备两两配对
设备 ID 很长,手输容易错。电脑和手机之间尽量用二维码。
1. Windows 与手机配对
在 Windows 的 Web GUI 中点“操作(Actions)→ 显示 ID(Show ID)”,屏幕上会出现设备 ID 和二维码。
在手机上:
- 打开 Syncthing-Fork,切到“设备(Devices)”。
- 点右上角“添加设备”图标。
- 点设备 ID 输入框旁的扫码按钮。
- 扫描 Windows 屏幕上的二维码。
- 设备名称填
Windows-Laptop。 - 保存。
过一会儿,Windows Web GUI 顶部会出现“新设备”提示。点“添加设备”,确认显示的设备 ID 与手机一致,把名称设为 Android-Phone,再保存。

图:Syncthing 官方入门文档。
2. Windows 与 Mac 配对
在 Mac 的 Web GUI 中点“操作 → 显示 ID”,复制设备 ID。
回到 Windows:
- 点右下角“添加远程设备(Add Remote Device)”。
- 粘贴 Mac 的设备 ID。
- 名称填
MacBook。 - 保存。
然后在 Mac 上接受 Windows 发来的新设备请求,并把对方命名为 Windows-Laptop。
3. Mac 与手机配对
再重复一次:让手机扫描 Mac Web GUI 里的设备 ID 二维码,随后在 Mac 上接受手机的连接请求。
最终,三端都应该能看到另外两台设备。在线时显示“已连接(Connected)”,暂时离线显示“断开连接(Disconnected)”并不等于配置丢了。

图:Syncthing-Fork 项目官方截图。
设备 ID 本身相当于公钥标识,不是登录密码。但公开发教程或截图时,仍建议打码,免得收到陌生设备请求。
五、在 Windows 创建 Obsidian 共享文件夹
现在开始同步真正的 Obsidian 仓库。
在 Windows Web GUI 中点“添加文件夹(Add Folder)”,按下面填写:
| 项目 | 建议值 |
|---|---|
| 文件夹标签 | Obsidian |
| 文件夹 ID | obsidian-vault |
| 文件夹路径 | D:\Notes\MyVault |
| 文件夹类型 | 发送和接收(Send & Receive) |
| 文件监视器 | 开启 |
切到“共享(Sharing)”页,勾选 MacBook 和 Android-Phone。
再切到“文件版本控制(File Versioning)”,选择“交错版本控制(Staggered File Versioning)”。如果界面允许设置最大保留时间,可以先设为 90 天。
最后保存。
这里一定要选“发送和接收”。“仅发送”适合只读发布源,“仅接收”更像镜像节点,都不适合需要在手机和电脑上共同编辑的 Obsidian 仓库。
六、在 Mac 接收仓库
Mac Web GUI 顶部会出现“设备想要共享文件夹”的提示,点“添加(Add)”。
填写接收路径,例如:
/Users/<你的用户名>/Documents/MyVault然后确认:
- 文件夹 ID 是
obsidian-vault,不要另起一个 ID。 - 文件夹类型是“发送和接收”。
- 路径指向空目录。
- 在“共享”页同时勾选
Windows-Laptop和Android-Phone。 - 文件版本控制同样选择“交错版本控制”。
保存后等待状态变成“最新(Up to Date)”。第一次同步时先不要打开 Mac 上的 Obsidian,也不要往接收目录里放其他文件。
七、在手机接收仓库
手机会收到“某设备想要共享文件夹”的通知。点通知,或进入 Syncthing-Fork 的“文件夹(Folders)”页处理邀请。
- 点“添加”或接受文件夹邀请。
- 文件夹标签保持
Obsidian。 - 文件夹 ID 确认是
obsidian-vault。 - 点路径旁边的文件夹按钮,打开 Android 系统目录选择器。
- 在内部存储的
Documents下新建MyVault文件夹。 - 进入
MyVault,点“使用此文件夹”,再确认“允许”。 - 回到 Syncthing-Fork,确认它提示对该目录拥有读写权限。
- 文件夹类型选“发送和接收”。
- 勾选与 Windows、Mac 共享,保存。
推荐目录是:
/storage/emulated/0/Documents/MyVault不要把仓库放进 /Android/data/ 或某个 App 的专属目录。卸载应用或系统清理时,这类目录的内容可能一起消失,而且新版 Android 对访问它们也有额外限制。
手机首次同步时,保持 Syncthing-Fork 在运行,接上电源并连 Wi-Fi。文件夹页会显示文件数量、体积和进度。

图:Syncthing-Fork 项目官方截图。图中的路径只是界面示例,Obsidian 仓库按本文放在 Documents/MyVault。
等 Windows、Mac、手机三端都显示“最新”后,再继续下一步。
八、让 Obsidian 打开同步完成的本地仓库
Mac
- 打开 Obsidian。
- 进入仓库切换器。
- 点“将文件夹作为仓库打开(Open folder as vault)”。
- 选择
Documents/MyVault。
Android
- 打开 Obsidian。
- 进入“管理仓库(Manage vaults)”。
- 选择“将文件夹作为仓库打开”。
- 选择刚才同步好的
Documents/MyVault。 - 如果系统询问目录访问权限,选择允许。
不要在 Obsidian 里再创建一个空的 MyVault。我们要打开的是 Syncthing 已经同步完成的那个文件夹。
九、.obsidian 到底要不要同步
Obsidian 的主题、插件、快捷键和大部分设置都在 .obsidian 文件夹里。
有两种做法:
做法 A:同步 .obsidian
优点是三端插件和设置基本一致,换设备省事。缺点是桌面端与移动端的布局文件可能互相覆盖,某些只支持桌面的插件也可能在手机上报错。
多数个人用户可以选这个方案,但忽略工作区布局文件。
在每台设备上打开 Syncthing,进入 Obsidian 文件夹的“编辑 → 忽略模式(Ignore Patterns)”,填入:
(?d).DS_Store(?d)Thumbs.db(?d)desktop.ini/.obsidian/workspace*.json前三行忽略不同系统生成的杂项文件,最后一行让每台设备保留自己的界面布局。
注意:Syncthing 的 .stignore 不会自动同步,所以这几行要在 Windows、Mac 和手机上各配置一次。
做法 B:完全不同步 .obsidian
如果手机和电脑使用完全不同的插件组合,可以把下面一行也加入三端忽略模式:
/.obsidian但这样主题、插件、快捷键和仓库设置都不会跨设备同步。不要一边排除整个 .obsidian,一边又期待插件自动出现在手机上。
十、版本控制怎么配才有用
版本控制是对“误改和误删会传播”的缓冲,不是完整备份。
建议至少在 Windows 和 Mac 上都开启“交错版本控制”。这样,当某个文件从其他设备传入并覆盖本地旧版本时,接收端会把旧文件放进仓库内的 .stversions。
为什么两台电脑都要开?因为 Syncthing 的版本控制是每个设备、每个文件夹独立生效的。只在 Windows 开启,并不等于整个集群共享一个版本库。
手机空间紧张,可以不开版本控制,把历史版本主要留在两台电脑上。除此之外,再做一份真正的异地备份,例如每天把仓库备份到另一块磁盘或版本化存储中。
十一、按这个顺序验收
别看到“已连接”就算完成。用一次完整的增、改、删测试来验收:
- 在 Windows 的 Obsidian 新建
同步测试.md,写一行“来自 Windows”。 - 等 Mac 和手机都看到这个文件。
- 在手机上追加一行“来自 Android”。
- 等 Windows 和 Mac 收到修改。
- 在 Mac 上给文件重命名。
- 等另外两端名称一起变化。
- 删除这个测试文件。
- 确认删除传播,并在启用版本控制的电脑上检查
.stversions。
验收时看三个状态:
- 文件夹显示“最新(Up to Date)”。
- 远程设备显示“已连接(Connected)”。
- “全局状态(Global State)”和“本地状态(Local State)”的文件数量、体积一致。
十二、最常见的故障
手机锁屏后就不再同步
依次检查:
- Syncthing-Fork 的通知权限是否开启。
- 是否已忽略电池优化。
- App 内“设置 → 行为 → 自动启动”是否开启。
- “设置 → 运行条件 → 使用 Wi-Fi 时运行”是否开启。
- 手机系统是否把它设成了“限制后台活动”。
- 小米、华为、荣耀、OPPO、vivo 等系统的自启动和后台白名单是否放行。
设备一直显示“断开连接”
先让两台设备接入同一个 Wi-Fi,然后检查双方是否都接受了对方的设备 ID。Windows 防火墙至少要允许 Syncthing 在专用网络通信。
默认情况下,Syncthing 会尝试直连;直连失败会退回 Relay,所以普通家庭用户不需要一上来就做路由器端口映射。Relay 通常比直连慢,但不会变成明文传输。
文件夹显示“未共享”
打开该文件夹的“编辑 → 共享”,勾选要共享的设备。设备配对成功,不代表文件夹会自动共享。
手机提示目录只读
重新编辑文件夹路径,用 Android 系统目录选择器进入目标目录,然后点“使用此文件夹”并允许读写。不要只在输入框里手写一个系统不允许访问的路径。
出现 sync-conflict 文件
这说明同一个文件在两台互相尚未同步的设备上都被修改了。Syncthing 会保留一个胜出版本,并把另一个版本改名为类似:
笔记.sync-conflict-日期-时间-设备名.md打开两个文件人工合并内容,确认无误后再删除冲突副本。不要写一个自动任务批量删除所有 sync-conflict,那等于把尚未处理的内容直接扔掉。
显示“文件夹标记丢失(folder marker missing)”
Syncthing 会在共享目录里放一个 .stfolder 标记。系统清理工具删掉它后,Syncthing 会停止同步,以防路径挂载错误时误删大量文件。
先确认目录确实还是原来的 Obsidian 仓库,再恢复 .stfolder 或在 Syncthing 中移除该文件夹配置后,用同一路径重新添加。不要看到报错就先删仓库内容。
十三、关于 iPhone
Syncthing-Fork 只适用于 Android。iOS 对后台运行和共享目录的限制不同,Syncthing 没有官方支持的 iPhone 客户端。Windows、Mac、iPhone 的组合,优先考虑 Obsidian Sync;只在苹果设备之间,也可以考虑 iCloud,但不要把同一个仓库同时交给 iCloud 和另一套同步服务。
十四、让 Agent 帮你配置桌面端
如果本机可以运行命令行 Agent,可以把下面整段直接交给它。把尖括号里的路径换成自己的实际路径:
请帮我在当前电脑上配置 Syncthing,用来双向同步 Obsidian 仓库。
目标:1. 识别当前系统是 Windows 还是 macOS。2. 检查是否已经安装、启动了 Syncthing,是否存在重复实例;不要同时运行两个 Syncthing。3. 如果未安装,只从 https://syncthing.net/downloads/ 推荐的入口安装:Windows 使用 Syncthing Windows Setup 的当前用户模式,macOS 使用官方 syncthing-macos;配置登录时自动启动。4. Web GUI 只监听 127.0.0.1:8384,不得暴露到公网;提醒我设置 GUI 用户名和强密码。5. 将设备名设置为容易识别的名称。6. 使用现有 Obsidian 仓库路径:<这里填完整仓库路径>。操作前先确认目录存在,并在仓库外创建一份带日期的压缩备份。7. 在 Syncthing 中创建或检查文件夹:标签 Obsidian,文件夹 ID 为 obsidian-vault,类型为 Send & Receive,开启文件监视器。8. 在当前桌面端启用 Staggered File Versioning,建议保留 90 天。9. 为该文件夹配置忽略规则:(?d).DS_Store、(?d)Thumbs.db、(?d)desktop.ini、/.obsidian/workspace*.json。10. 检查 Windows 专用网络防火墙或 macOS 后台启动状态,但不要做路由器端口映射,不要开放 8384 到局域网或公网。11. 显示本机设备 ID 的获取位置,完整设备 ID 不要写进日志、仓库或最终报告;需要配对时停下来让我扫码或提供另一台设备的 ID。12. 配置完成后,验证 Syncthing 进程、自动启动、GUI 监听地址、文件夹路径、文件夹类型、版本控制和忽略规则,并给我一份 Windows/macOS/Android 三端配对与手机接收目录的剩余操作清单。
执行规则:先只读检查,再说明将要改什么;保留现有配置和用户文件。禁止删除仓库、覆盖现有 .env、关闭系统防火墙或混用其他同步服务。遇到已有同名文件夹、非空接收目录、多个 Syncthing 实例或路径不确定时,先停下来问我。Agent 可以把桌面端安装、开机启动、文件夹配置和检查做掉,但手机的权限确认、扫码和目录授权仍需要你亲手点几下。这些是 Android 的系统安全边界,不该绕过。
