用 Tailscale + Syncthing 实现手机、电脑与 NAS 的跨网络文件同步
环境:CasaOS NAS · Android 手机 · Windows 电脑
前言
家里的 NAS 装满了照片和文档,但每次出门想同步文件,都得依赖内网或者繁琐的端口映射。其实有一个更优雅的方案:用 Tailscale 打通所有设备之间的虚拟私有网络,再让 Syncthing 在这条隧道上自动同步文件。
这套方案的核心思路是:Tailscale 负责「让所有设备永远互相可达」,Syncthing 负责「文件的双向同步」。两者分工明确,组合起来几乎零配置就能让手机在任意网络下与 NAS 保持同步。
架构概览
手机(任意网络)──┐
├── Tailscale 加密隧道 ──► NAS(CasaOS)
Windows 电脑 ────┘ Syncthing + 磁盘
NAS 作为中心节点,所有设备通过 Tailscale 分配的虚拟 IP(100.x.x.x)互相通信。Syncthing 的流量完全走 Tailscale 的 WireGuard 隧道,无需开放任何公网端口,无需路由器做 NAT 穿透。
第一部分:NAS 端配置(CasaOS)
1. 安装 Syncthing
打开 CasaOS 界面,进入 App Store ,搜索 Syncthing 并安装。安装完成后在「My Apps」中可以看到它。
如果 App Store 里找不到,也可以手动添加 Docker 容器,镜像使用官方的 syncthing/syncthing。
注意 :如果通过 Docker 安装,需要在容器设置里把 NAS 磁盘的实际路径挂载进容器,否则同步的文件只存在于容器内部,而不是你的 NAS 磁盘上。例如把
/volume1/sync挂载到容器的/var/syncthing。
2. 首次访问 Web UI
点击 CasaOS 里的 Syncthing 图标,浏览器会打开 Syncthing 的管理界面,地址通常是:
http://NAS的局域网IP:8384
第一次进入会提示设置用户名和密码,务必设置,后续远程访问时需要验证身份。
3. 创建同步文件夹
点击左侧「添加文件夹」,填写以下信息:
| 字段 | 示例值 |
|---|---|
| 文件夹标签 | 手机照片 |
| 文件夹路径 | /DATA/手机照片 |
路径需要填写 NAS 磁盘上已存在的目录,建议提前在 CasaOS 文件管理器里创建好。
4. 记录 NAS 的 Device ID
点击右上角「操作 」→「显示 ID」,会显示一串类似下面格式的设备标识符:
XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX
截图保存,手机和电脑配对时需要用到。
5. 查看 NAS 的 Tailscale IP
在 CasaOS 中打开 Tailscale 应用,查看分配给这台 NAS 的虚拟 IP,格式为 100.x.x.x。也可以登录 tailscale.com 的 Machines 页面查看所有设备的虚拟 IP。
第二部分:Android 手机配置
1. 安装并登录 Tailscale
在 Google Play 安装「Tailscale 」,用与 NAS 相同的 Tailscale 账号 登录。登录成功后,手机会出现在同一个虚拟网络中,理论上可以直接 ping 通 NAS 的 100.x.x.x 地址。
2. 安装 Syncthing-Fork
推荐安装「Syncthing-Fork 」而非官方版本,它对 Android 后台保活的支持更好,且有更丰富的设置选项。在 Google Play 搜索 Syncthing-Fork 即可找到。
3. 添加 NAS 设备
打开 Syncthing-Fork,进入「设备」标签,点击右下角「+」,填写:
-
Device ID:粘贴第一部分记录的 NAS Device ID
-
地址:手动填写,改为:
tcp://100.x.x.x:22000
将 100.x.x.x 替换为 NAS 实际的 Tailscale IP。
4. 设置同步文件夹
进入「文件夹」标签,点击「+」新建文件夹,选择手机上要同步的本地路径(如相机相册目录),在共享设置里勾选与 NAS 共享。NAS 端会收到配对请求,接受后同步即开始。
建议:在 Syncthing-Fork 的设置中,开启「在充电时同步」,并将应用加入系统电池白名单,防止后台被 Android 杀掉进程。
第三部分:Windows 电脑配置
1. 安装并登录 Tailscale
前往 tailscale.com/download 下载 Windows 版客户端,安装后使用同一账号登录。登录成功后任务栏会出现 Tailscale 图标,右键菜单中可以看到当前设备的虚拟 IP 以及网络中的其他设备。
2. 安装 SyncTrayzor
Windows 上推荐使用「SyncTrayzor」,它是 Syncthing 的 Windows 封装版本,提供系统托盘图标、开机自启、内置界面等功能,比直接使用命令行版方便得多。
前往 GitHub 下载:
https://github.com/canton7/SyncTrayzor/releases
下载 SyncTrayzor-x64.exe,安装后会自动启动并打开 Syncthing 管理界面。
3. 添加 NAS 设备
在 Syncthing 界面点击「添加远程设备」,填写:
-
Device ID:NAS 的设备标识符
-
地址:
tcp://100.x.x.x:22000
4. 添加同步文件夹
点击「添加文件夹 」,选择电脑上需要同步的本地目录(如 D:\同步到NAS),在「共享」标签页里勾选 NAS 设备,保存后等待 NAS 端确认。
SyncTrayzor 默认设置为开机自启,Syncthing 会常驻后台,无需手动管理。
第四部分:设备配对确认
配置完客户端设备后,配对流程如下:
-
NAS 收到连接请求 :在 NAS 的 Syncthing Web UI(
:8384)右上角,会弹出提示「有新设备请求连接」,点击接受,并在对话框中选择要与该设备共享的文件夹。 -
客户端确认文件夹:手机或电脑的 Syncthing 里也会收到「NAS 想共享文件夹 XXX」的通知,接受后选择本地的存放路径。
-
验证同步是否正常:在手机或电脑的同步目录里放入一个测试文件,等待几秒后在 NAS 对应目录里查看是否出现。两边 Syncthing 界面均显示「同步完成」即表示配置成功。
首次同步时 Syncthing 会扫描全部文件,耗时视文件数量而定。之后的增量同步通常在秒级完成。
常见问题
Q:Syncthing 22000 端口需要在路由器上做端口映射吗?
不需要。Tailscale 的 WireGuard 隧道已经处理了 NAT 穿透,Syncthing 的流量在虚拟局域网内部传输,无需对外暴露任何端口。
Q:NAS 关机后文件还能同步吗?
不能。NAS 需要保持开机状态,Tailscale 和 Syncthing 服务均设置为开机自启(CasaOS 默认会管理容器的自动重启)。
Q:手机 Android 后台总是断开怎么办?
将 Tailscale 和 Syncthing-Fork 均加入「电池优化白名单」,部分品牌(如小米、华为)还需要在「后台管理」里单独允许这两个应用常驻后台。
总结
| 工具 | 作用 |
|---|---|
| Tailscale | 为所有设备建立加密虚拟局域网,解决跨网络连通性 |
| Syncthing | 在虚拟局域网内进行端对端文件同步,无需中转服务器 |
| CasaOS | NAS 的管理系统,统一管理 Docker 容器和存储 |
这套方案完全去中心化,文件直接在设备间传输,不经过任何第三方服务器。加上 Tailscale 的 WireGuard 加密,数据安全性也有充分保障。配置完成后日常使用几乎是无感的------文件放进同步目录,剩下的事情交给后台自动完成。