自建私有云笔记:Syncthing + Tailscale + Joplin 全平台同步
一套完全免费、无云商、端到端可控的笔记同步方案: Joplin(笔记) + Syncthing(P2P 同步) + Tailscale(异地组网)
一、为什么要这样搭?
Section titled “一、为什么要这样搭?”最初的需求很简单:
- 不想把笔记丢到商业网盘
- 要跨平台:Windows + Android
- 手机断网也要能看、有网就能同步
- 不想折腾公网 IP、DDNS、端口映射
最终方案选型:
| 组件 | 作用 |
|---|---|
| Joplin | Markdown 笔记 + 附件管理 |
| Syncthing | 开源 P2P 文件同步(替代 Dropbox) |
| Tailscale | 零配置虚拟内网,解决 NAT 和异地直连 |
二、整体架构
Section titled “二、整体架构”Joplin (Windows) ↓↑ 文件系统同步Syncthing (Windows) ↕ Tailscale 虚拟内网直连Syncthing (Android) ↓↑ 文件系统同步Joplin (Android)- Syncthing:负责把 Joplin 的同步目录在设备间同步
- Tailscale:让两台设备永远”在一个内网”
- Joplin:只管读写笔记,不关心网络细节
三、安装与基础配置
Section titled “三、安装与基础配置”Windows:为什么推荐 SyncTrayzor?
Section titled “Windows:为什么推荐 SyncTrayzor?”Syncthing 本体(syncthing.exe)是纯后台命令行程序,没有系统托盘、没有开机自启、没有图形外壳。Windows 上直接跑会有这些麻烦:
- 每次要手动启动或注册 Windows 服务
- 同步状态不可见(需自己开浏览器)
- 锁屏/注销可能中断进程
SyncTrayzor 是 Windows 社区维护的官方推荐前端封装:
| 功能 | SyncTrayzor ✅ | 裸 syncthing.exe |
|---|---|---|
| 内嵌 Syncthing 内核 | ✅ 自动捆绑 | ✅ 需自己下 |
| 系统托盘图标 + 同步状态 | ✅ | ❌ |
| 开机自启(用户级) | ✅ 勾选即开 | ⚠️ 需手动配服务 |
| 一键升级 Syncthing | ✅ | ⚠️ 手动替换 |
下载地址:https://github.com/canton7/SyncTrayzor/releases
下 SyncTrayzorSetup-x64.exe → 安装 → 自动打开 http://127.0.0.1:8384
Android:Syncthing-Fork
Section titled “Android:Syncthing-Fork”在电脑 SyncTrayzor 的 Web UI 中:
- 右下角 Add Remote Device
- 粘贴手机 Device ID
- Save → 手机端弹出”新设备请求” → Accept
四、配置 Joplin 同步目录
Section titled “四、配置 Joplin 同步目录”创建 Syncthing 同步文件夹
Section titled “创建 Syncthing 同步文件夹”电脑端 Syncthing Web UI:
- Add Folder
- Folder Label:
JoplinSync - Folder Path:
C:\Users\你的用户名\Syncthing\JoplinSync - Sharing 标签页 → 勾选手机设备 → Save
- 手机端接受共享,选择本地路径:
/storage/emulated/0/Syncthing/JoplinSync
Joplin 设置为「文件系统」同步
Section titled “Joplin 设置为「文件系统」同步”Windows / Android 通用步骤:
- 设置 → 同步(Synchronization)
- 同步目标:选 File system(文件系统)
- 同步目录(填绝对路径):
- Windows:
C:\Users\你的用户名\Syncthing\JoplinSync - Android:
/storage/emulated/0/Syncthing/JoplinSync
- Windows:
- 点 同步(Synchronize)
首次同步会生成大量小文件,这是正常现象——Joplin 的笔记和资源都会写成独立文件。
开启删除同步
Section titled “开启删除同步”解决方法:
- 同步设置页 → 展开 显示高级设置
- 勾选 「同步时从同步目标中删除已删除的笔记/资源」
- 每台设备都要单独开启
五、解决”连上了但很慢”的问题(Tailscale)
Section titled “五、解决”连上了但很慢”的问题(Tailscale)”Syncthing 日志中出现:
Detected NAT type: Symmetric NATJoined relay说明两边网络是严格 NAT(对称型),Syncthing 打洞失败,被迫走官方中继(relay),带宽有限,速度慢、延迟高。
Tailscale 是什么?
Section titled “Tailscale 是什么?”Tailscale = 零配置 WireGuard 虚拟内网,把你的所有设备拉进同一个虚拟局域网:
- 每台设备装 Tailscale → 登录同一账号 → 自动获得固定虚拟 IP(如
100.x.x.x) - 不管设备在家 WiFi、公司网还是手机 4G/5G,都像插在同一台路由器上
- 流量端到端加密(WireGuard 协议),控制服务器只分发密钥,看不到你的数据
- 免费版个人日常使用完全够用
安装 Tailscale
Section titled “安装 Tailscale”Windows
- 下载官方 MSI:https://tailscale.com/download/windows
- 直接装官方安装包,不要用 Scoop
安装 → 托盘图标 → Login → 浏览器登录
Android
- Play Store / F-Droid 安装 Tailscale
- 登录同一个账号
安装完成后两台设备各自获得虚拟 IP(如 100.82.x.x 和 100.75.x.x)。
让 Syncthing 走 Tailscale 直连
Section titled “让 Syncthing 走 Tailscale 直连”在电脑 Syncthing Web UI:
- 点手机设备卡片 → Edit
- 展开 Show Advanced
- 找到 Addresses 字段(默认是
dynamic) - 改为手机 Tailscale IP,例如:
tcp://100.75.23.18:22000
- Save → 等设备变绿
手机端同理(可选):编辑电脑设备 → Addresses 改为电脑 Tailscale IP。
成功标志:
- 设备状态变绿 Connected
- 鼠标悬停设备 → 连接显示
tcp://100.x.x.x:22000 - 不再是
relay://...→ 直连成功,速度接近局域网
六、Android 保活
Section titled “六、Android 保活”国产 ROM 容易杀后台,需要手动配置:
系统设置(各品牌路径略有差异):
- 设置 → 应用管理 → Syncthing-Fork → 电池 → 不允许优化 / 无限制
- 允许开机自动启动 + 允许后台运行
- 多任务界面长按 Syncthing → 锁定🔒
Syncthing App 内设置:
打开 Syncthing-Fork → Settings → Run Conditions:
- ✅ Run on WiFi
- ✅ Run when charging(可选)
七、最终效果
Section titled “七、最终效果”- 笔记跨平台实时同步(Windows ↔ Android)
- 手机断网可离线阅读,有网自动同步
- 不依赖任何商业云服务
- 数据全程在自己设备之间流动
- 异地 WiFi / 4G / 公司网络均可直连
- 没有月费、没有容量上限
八、常见问题
Section titled “八、常见问题”| 问题 | 解决方案 |
|---|---|
| 电脑删笔记手机还在 | 开启 Joplin 同步高级设置中的”删除同步”选项 |
| 手机不弹共享请求 | 手动添加文件夹,Folder ID 必须与电脑完全一致 |
| 同步速度慢 | 安装 Tailscale,让 Syncthing 走虚拟内网直连 |
| 手机经常断连 | 关闭电池优化 + 允许自启 + 锁定后台 |
| iOS 能用吗? | ❌ iOS Joplin 不支持 File System 同步,只能用 Joplin Cloud / WebDAV / Dropbox |
| 数据安全吗? | Syncthing TLS 加密 + Tailscale WireGuard 加密 + Joplin 可选端到端加密 |
| 首次同步特别慢 | 正常,Joplin 会生成大量小文件,Syncthing 初次索引需要时间 |