用 Syncthing 同步 Obsidian 的方案,覆盖电脑和手机端配置。

方案概览

这里以mac+win+android为使用场景,当前方案没有使用 Git,所以偶尔备份一下历史版本

同步结构可以理解成:

1
2
3
4
5
6
7
8
9
10
Mac Obsidian Vault

Windows Obsidian Vault

Android Obsidian Vault

Mac / Windows / Android 三台设备都运行 Syncthing
互相添加为远程设备
共享同一个 Obsidian vault 文件夹
Obsidian 直接打开本地同步后的文件夹

Syncthing 的特点是点对点同步,不是网盘。文件实际存在于每台设备本地,不依赖 Obsidian 官方 Sync,也不需要把笔记托管到第三方云盘。Syncthing 官方说明它支持 Windows、macOS、Linux 等平台,并通过浏览器中的 Web GUI 进行配置和监控。(Syncthing)


下载地址和对应设备

Mac 和 Windows

Mac、Windows 都用 Syncthing 官方版本。

官方主页:

1
https://syncthing.net/

官方下载页:

1
https://syncthing.net/downloads/

官方 GitHub 仓库:

1
https://github.com/syncthing/syncthing

官方下载页里有 Windows、macOS、Linux 等构建。如果不确定下载哪个,普通电脑一般选对应系统的 Intel/AMD 64-bit;Apple Silicon Mac 可以选 macOS Universal 或 ARM 版本。(Syncthing)

Android 手机

Android 端建议用 Syncthing-Fork,不要用已经不维护或不适配的普通 Android Syncthing 包,也不要用只是管理器性质的 Syncthing Tray 类应用。

F-Droid 页面:

1
https://f-droid.org/packages/com.github.catfriend1.syncthingfork/

GitHub 仓库:

1
https://github.com/researchxxl/syncthing-android

F-Droid 页面说明 Syncthing-Fork 是 Android 上的 Syncthing wrapper,提供 Android UI 来管理 Syncthing;GitHub 仓库也显示它是 Android 端的 Syncthing-Fork。(F-Droid)


配置流程

准备 Obsidian Vault

先在主力电脑上确定 Obsidian vault 文件夹。

例如 Mac 上可能是:

1
/Users/用户名/Documents/Obsidian/MyVault

Windows 上可能是:

1
D:\Obsidian\MyVault

Android 上建议放在:

1
/storage/emulated/0/Documents/Obsidian/MyVault

在手机文件管理器里看到的路径通常是:

1
内部存储 / Documents / Obsidian / MyVault

注意不要把 vault 放在 OneDrive、iCloud、百度网盘、坚果云、微信文件夹、QQ 文件夹等同步目录里。一个 vault 最好只交给一种同步系统管理,否则容易出现冲突。


Mac / Windows 端基本配置

安装并启动 Syncthing 后,通常会自动打开本地 Web GUI:

1
http://127.0.0.1:8384

第一次进入后,建议先设置 GUI 登录密码:

1
2
3
4
操作 / Actions
→ 设置 / Settings
→ GUI
→ 设置 GUI 用户名和密码

这样可以避免本机上其他程序随意访问 Syncthing 管理界面。

然后在 Syncthing 主界面可以看到两个主要区域:

1
2
文件夹 / Folders
远程设备 / Remote Devices

这两个概念要分清楚:

1
2
添加远程设备 = 让两台设备认识彼此
共享文件夹 = 决定哪个文件夹同步给哪台设备

只添加设备并不会自动同步文件夹。


Android 端基本配置

手机安装 Syncthing-Fork 后,第一次启动要给权限:

1
2
3
4
5
6
文件和媒体权限
通知权限
后台运行权限
自启动权限
允许后台活动
关闭电池优化

荣耀、华为、小米、OPPO、vivo 这类系统很容易杀后台,尤其要检查:

1
2
3
设置 → 应用 → Syncthing-Fork → 权限
设置 → 应用启动管理 → Syncthing-Fork → 手动管理
设置 → 电池 → 应用耗电管理 → Syncthing-Fork → 不限制

如果有:

1
2
管理所有文件
允许访问所有文件

也建议给 Syncthing-Fork 打开。

手机端正常运行后,应该能看到本机设备 ID、文件夹、远程设备等信息。如果显示:

1
2
Syncthing 未运行
URL for GUI and API access: n/a

说明后端没有启动成功,通常需要重新安装 Syncthing-Fork、清除旧配置,或者检查后台权限。


添加远程设备

三台设备之间需要互相添加 Device ID。

在一台设备上查看 Device ID

在 Mac / Windows Web GUI 里:

1
2
操作 / Actions
→ 显示 ID / Show ID

会显示一长串 Device ID 和二维码。

Android Syncthing-Fork 里也可以在设备信息里找到本机 Device ID,通常也支持扫码。

在另一台设备上添加

在另一台设备的 Syncthing 里选择:

1
添加远程设备 / Add Remote Device

填入对方的 Device ID,设备名称可以写:

1
2
3
Mac
Windows
Android

保存后,对方设备通常会弹出请求:

1
设备 xxx 想要连接

点击接受。

推荐添加方式

你有三台设备,推荐都互相添加:

1
2
3
Mac 添加 Windows 和 Android
Windows 添加 Mac 和 Android
Android 添加 Mac 和 Windows

这样任何两台在线设备之间都可以同步。如果只想简单一点,也可以让 Mac 作为中心节点:

1
2
Mac ↔ Windows
Mac ↔ Android

但这种情况下,如果 Mac 不在线,Windows 和 Android 之间可能无法直接同步。为了三端都更灵活,建议三台互相添加。


添加并共享 Obsidian 文件夹

这是最关键的一步。

在主力设备上添加文件夹

比如你先在 Mac 上有完整 Obsidian vault。

在 Mac 的 Syncthing Web GUI 里:

1
添加文件夹 / Add Folder

填写:

1
2
3
文件夹标签:Obsidian
文件夹 ID:obsidian-vault
文件夹路径:/Users/用户名/Documents/Obsidian/MyVault

文件夹 ID 建议用英文小写,稳定不变,例如:

1
obsidian-vault

不要每台设备乱写不同 ID。Syncthing 是靠 Folder ID 识别同一个同步文件夹的。

在共享里勾选远程设备

添加文件夹窗口里进入:

1
共享 / Sharing

勾选:

1
2
Windows
Android

保存。

这一步完成后,Mac 会向 Windows 和 Android 发出“共享这个文件夹”的请求。


在 Windows 上接受共享

Windows 端 Syncthing 会弹出提示,大意是:

1
设备 Mac 想要共享文件夹 obsidian-vault

点击:

1
添加 / Add

然后选择 Windows 本地路径,例如:

1
D:\Obsidian\MyVault

或者:

1
C:\Users\用户名\Documents\Obsidian\MyVault

文件夹类型一般选:

1
发送和接收 / Send & Receive

保存后开始同步。

同步完成后,Windows 上的 Obsidian 选择:

1
Open folder as vault

打开这个同步目录。


在 Android 上接受共享

手机端 Syncthing-Fork 收到共享请求后,点击添加。

关键是路径不要填错。

Android 内部存储通常对应:

1
/storage/emulated/0/

推荐路径:

1
/storage/emulated/0/Documents/Obsidian/MyVault

在手机文件管理器里相当于:

1
2
3
4
内部存储
└── Documents
└── Obsidian
└── MyVault

你之前报错的路径类似:

1
2
/storage/Documents
/shdaz-hzvmx

这是错误的。/storage/Documents 不是正常的用户文档目录,/shdaz-hzvmx 则是在根目录下创建文件夹,Android 不允许普通应用这么做。

所以手机端正确做法是:

1
2
3
4
先用文件管理器创建:
内部存储/Documents/Obsidian/MyVault

然后在 Syncthing-Fork 里选择这个目录

文件夹类型同样选:

1
Send & Receive

同步完成后,手机 Obsidian 选择:

1
打开文件夹作为库 / Open folder as vault

然后选择:

1
Documents/Obsidian/MyVault

验证与维护

确认同步是否成功

三台设备上都看 Syncthing 状态。

理想状态是:

1
2
文件夹:最新 / Up to Date
远程设备:已连接 / Connected

如果正在同步,会显示:

1
同步中 / Syncing

第一次同步 1G 文件可能比较慢,尤其是有很多小图片、PDF、附件时。建议第一次同步时:

1
2
3
三台设备连同一个 Wi-Fi
手机保持亮屏或不要被系统杀后台
先等同步完成再打开 Obsidian

忽略规则 .stignore

Syncthing 支持在同步文件夹根目录放置 .stignore 来排除不想同步的文件。官方文档说明,.stignore 必须放在被同步文件夹根目录,规则才会生效;并且 .stignore 文件本身不会被同步到其他设备。(Syncthing 文档)

你目前没有用 Git,所以不需要忽略 .git/,但仍然可以忽略一些系统垃圾文件。

在每台设备的 vault 根目录可以放一个 .stignore

1
2
3
4
5
6
.DS_Store
Thumbs.db
desktop.ini

.obsidian/cache/
.trash/

是否忽略 Obsidian 工作区文件要看需求。

如果你不想同步不同设备的窗口布局,可以加:

1
2
.obsidian/workspace.json
.obsidian/workspace-mobile.json

但有时移动端和桌面端本来就使用不同 workspace 文件,所以不是必须。


常见问题和处理

手机显示 Syncthing 未运行

说明手机端 Syncthing 后端没有启动。处理顺序:

1
2
3
4
5
6
确认安装的是 Syncthing-Fork
给文件权限和通知权限
允许自启动
允许后台活动
关闭电池优化
必要时清除 App 数据重新初始化

手机打开 Web GUI 显示 localhost 无法访问

这通常是因为 Syncthing 后端还没启动。先让 App 显示已连接到本机 Syncthing,再打开 Web GUI。

手机路径报 permission denied

常见错误路径:

1
2
3
/storage/Documents
/Documents
/某个文件夹ID

正确路径一般是:

1
/storage/emulated/0/Documents/Obsidian/MyVault

添加设备后没有同步

添加设备只是让设备互相信任。你还需要:

1
2
3
4
编辑文件夹
→ 共享
→ 勾选远程设备
→ 对方接受共享文件夹

出现冲突文件

比如同时在 Mac 和手机上改了同一篇笔记,Syncthing 可能产生冲突副本。解决方法是打开两个文件对比,把需要的内容合并,然后删除冲突文件。

为了减少冲突,建议:

1
2
3
换设备前先确认 Syncthing 已经 Up to Date
不要同时在两台设备上编辑同一篇笔记
大规模整理文件前先备份