Syncthing for Obsidian
用 Syncthing 同步 Obsidian 的方案,覆盖电脑和手机端配置。
方案概览
这里以mac+win+android为使用场景,当前方案没有使用 Git,所以偶尔备份一下历史版本
同步结构可以理解成:
1 | Mac Obsidian Vault |
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 | 操作 / Actions |
这样可以避免本机上其他程序随意访问 Syncthing 管理界面。
然后在 Syncthing 主界面可以看到两个主要区域:
1 | 文件夹 / Folders |
这两个概念要分清楚:
1 | 添加远程设备 = 让两台设备认识彼此 |
只添加设备并不会自动同步文件夹。
Android 端基本配置
手机安装 Syncthing-Fork 后,第一次启动要给权限:
1 | 文件和媒体权限 |
荣耀、华为、小米、OPPO、vivo 这类系统很容易杀后台,尤其要检查:
1 | 设置 → 应用 → Syncthing-Fork → 权限 |
如果有:
1 | 管理所有文件 |
也建议给 Syncthing-Fork 打开。
手机端正常运行后,应该能看到本机设备 ID、文件夹、远程设备等信息。如果显示:
1 | Syncthing 未运行 |
说明后端没有启动成功,通常需要重新安装 Syncthing-Fork、清除旧配置,或者检查后台权限。
添加远程设备
三台设备之间需要互相添加 Device ID。
在一台设备上查看 Device ID
在 Mac / Windows Web GUI 里:
1 | 操作 / Actions |
会显示一长串 Device ID 和二维码。
Android Syncthing-Fork 里也可以在设备信息里找到本机 Device ID,通常也支持扫码。
在另一台设备上添加
在另一台设备的 Syncthing 里选择:
1 | 添加远程设备 / Add Remote Device |
填入对方的 Device ID,设备名称可以写:
1 | Mac |
保存后,对方设备通常会弹出请求:
1 | 设备 xxx 想要连接 |
点击接受。
推荐添加方式
你有三台设备,推荐都互相添加:
1 | Mac 添加 Windows 和 Android |
这样任何两台在线设备之间都可以同步。如果只想简单一点,也可以让 Mac 作为中心节点:
1 | Mac ↔ Windows |
但这种情况下,如果 Mac 不在线,Windows 和 Android 之间可能无法直接同步。为了三端都更灵活,建议三台互相添加。
添加并共享 Obsidian 文件夹
这是最关键的一步。
在主力设备上添加文件夹
比如你先在 Mac 上有完整 Obsidian vault。
在 Mac 的 Syncthing Web GUI 里:
1 | 添加文件夹 / Add Folder |
填写:
1 | 文件夹标签:Obsidian |
文件夹 ID 建议用英文小写,稳定不变,例如:
1 | obsidian-vault |
不要每台设备乱写不同 ID。Syncthing 是靠 Folder ID 识别同一个同步文件夹的。
在共享里勾选远程设备
添加文件夹窗口里进入:
1 | 共享 / Sharing |
勾选:
1 | Windows |
保存。
这一步完成后,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 | 内部存储 |
你之前报错的路径类似:
1 | /storage/Documents |
这是错误的。/storage/Documents 不是正常的用户文档目录,/shdaz-hzvmx 则是在根目录下创建文件夹,Android 不允许普通应用这么做。
所以手机端正确做法是:
1 | 先用文件管理器创建: |
文件夹类型同样选:
1 | Send & Receive |
同步完成后,手机 Obsidian 选择:
1 | 打开文件夹作为库 / Open folder as vault |
然后选择:
1 | Documents/Obsidian/MyVault |
验证与维护
确认同步是否成功
三台设备上都看 Syncthing 状态。
理想状态是:
1 | 文件夹:最新 / Up to Date |
如果正在同步,会显示:
1 | 同步中 / Syncing |
第一次同步 1G 文件可能比较慢,尤其是有很多小图片、PDF、附件时。建议第一次同步时:
1 | 三台设备连同一个 Wi-Fi |
忽略规则 .stignore
Syncthing 支持在同步文件夹根目录放置 .stignore 来排除不想同步的文件。官方文档说明,.stignore 必须放在被同步文件夹根目录,规则才会生效;并且 .stignore 文件本身不会被同步到其他设备。(Syncthing 文档)
你目前没有用 Git,所以不需要忽略 .git/,但仍然可以忽略一些系统垃圾文件。
在每台设备的 vault 根目录可以放一个 .stignore:
1 | .DS_Store |
是否忽略 Obsidian 工作区文件要看需求。
如果你不想同步不同设备的窗口布局,可以加:
1 | .obsidian/workspace.json |
但有时移动端和桌面端本来就使用不同 workspace 文件,所以不是必须。
常见问题和处理
手机显示 Syncthing 未运行
说明手机端 Syncthing 后端没有启动。处理顺序:
1 | 确认安装的是 Syncthing-Fork |
手机打开 Web GUI 显示 localhost 无法访问
这通常是因为 Syncthing 后端还没启动。先让 App 显示已连接到本机 Syncthing,再打开 Web GUI。
手机路径报 permission denied
常见错误路径:
1 | /storage/Documents |
正确路径一般是:
1 | /storage/emulated/0/Documents/Obsidian/MyVault |
添加设备后没有同步
添加设备只是让设备互相信任。你还需要:
1 | 编辑文件夹 |
出现冲突文件
比如同时在 Mac 和手机上改了同一篇笔记,Syncthing 可能产生冲突副本。解决方法是打开两个文件对比,把需要的内容合并,然后删除冲突文件。
为了减少冲突,建议:
1 | 换设备前先确认 Syncthing 已经 Up to Date |
