使用 Tailscale 从任何地方访问家中的 NAS 或 PC

在手机和存放文件的设备上安装 Tailscale,然后在 Owlfiles 中使用该设备的 Tailscale IP 进行连接。

你的文件不必只能在家中的 Wi-Fi 网络中访问。使用 Tailscale,你可以在 iPhone 或 Android 设备与家中的 NAS 或 PC 之间建立私密连接。然后通过 Owlfiles 浏览、打开、下载和上传文件,就像在本地网络中操作一样。

本文采用最简单的设置方式:在两台设备上安装 Tailscale,在 NAS 或 PC 上启用文件共享,然后在 Owlfiles 中输入该设备的 Tailscale IP 地址。你不需要在路由器上开放 SMB 端口,也不需要设置端口转发。

工作原理

Tailscale 提供网络连接,SMB 提供共享文件夹,Owlfiles 提供浏览文件的界面。

设备 安装或配置 作用
iPhone 或 Android 设备 Tailscale 和 Owlfiles 在外网连接并管理文件
家中的 NAS 或 PC Tailscale 和 SMB 文件共享 提供共享文件夹

Tailscale 本身不会创建共享文件夹。目标设备仍然需要运行文件共享服务,具体说明请参考 Tailscale 的设备连接指南

开始前的准备

请准备好以下内容:

  • 在 iPhone 或 Android 设备上安装 Owlfiles。
  • 一个 Tailscale 账号。在手机和家中的 NAS 或 PC 上登录同一个 tailnet。
  • NAS 或 PC 上的 SMB 共享文件夹。
  • 访问共享文件夹所需的用户名和密码。
  • NAS 或 PC 的 Tailscale IP 地址,通常是 100.x.y.z 这样的格式。

最新的安装说明请参考 安装 Tailscale在 iOS 上安装 Tailscale在 Android 上安装 Tailscale

1. 在手机和家中的设备上安装 Tailscale

在 iPhone 或 Android 设备上安装 Tailscale,并允许它添加 VPN 配置。使用 tailnet 对应的账号登录,然后确认 Tailscale 显示为已连接。

接着,在存放文件的设备上安装 Tailscale:

  • Windows、macOS 或 Linux PC: 安装 Tailscale 客户端并登录。
  • NAS: 安装适用于 NAS 平台的软件包或应用,然后登录。Tailscale 的 NAS 指南列出了 Synology、QNAP、TrueNAS SCALE 和 Unraid 等官方集成。

两台设备都应该出现在 Tailscale 管理控制台的 Machines 页面中。需要访问文件时,请保持 NAS 或 PC 开机,并让 Tailscale 保持运行。

2. 在 NAS 或 PC 上共享文件夹

创建或选择要从外网访问的文件夹,然后为它启用 SMB 文件共享。

  • PC: 启用文件共享,并将文件夹共享给 Owlfiles 要使用的账号。
  • NAS: 启用 SMB 服务,创建共享文件夹,并为用户授予读取或写入权限。

建议使用权限范围有限的专用账号。如果条件允许,可以先让手机连接家中的网络,测试共享文件夹是否正常,再通过 Tailscale 测试。

3. 查找设备的 Tailscale IP

在 NAS 或 PC 上打开 Tailscale,复制它的 IPv4 地址;也可以打开 Tailscale 管理控制台中的 Machines 页面查看。请使用 Tailscale 地址,它通常以 100. 开头。

例如:

100.101.102.103

在家以外的网络中,不要使用设备的本地地址,例如 192.168.1.20。这个地址只能在家中的局域网内使用,也不要使用家里的公网 IP;本方案通过 Tailscale 连接。

4. 将共享文件夹添加到 Owlfiles

iPhone 和 Android 上的操作基本相同。

  1. 打开 Owlfiles,添加连接。
  2. 选择适合设备的连接类型,例如 WindowsMacNAS
  3. Host Name/IP 字段中输入设备的 Tailscale IP,例如 100.101.102.103
  4. 输入 SMB 共享的用户名和密码。这是 NAS 或 PC 的文件共享账号,不是 Tailscale 登录账号。
  5. 保存连接。
  6. 打开 Tailscale 应用并连接网络。

手机上的 Tailscale 连接成功后,Owlfiles 就可以通过 Tailscale IP 访问共享文件夹。根据账号权限,你可以打开文件、将文件复制到手机、上传新文件以及管理共享文件夹。

5. 从外网测试连接

可以按以下步骤确认连接确实能通过 Tailscale 工作:

  1. 保持手机上的 Tailscale 处于连接状态。
  2. 关闭 Wi-Fi,改用移动数据,或者连接到其他 Wi-Fi 网络。
  3. 在 Owlfiles 中打开保存的连接。
  4. 浏览共享文件夹,并打开一个较小的文件。

如果使用移动数据时仍然可以打开文件夹,说明 Tailscale 连接正常。不过,这个测试本身不能说明当前路径是直连还是经过中继。Tailscale 会为每台设备分配一个 Tailscale IP,因此不同网络中的设备也可以互相连接。更多信息请参考连接设备

关于连接类型和网速

使用 Tailscale IP 并不意味着每个数据包都会从手机直接传到家中。Tailscale 会优先尝试建立点对点直连。如果两个网络的条件不允许直连,它可能会使用中继,通常是 Tailscale DERP 服务器,从而保证连接仍然可以使用。

中继连接通常比直连具有更高的延迟和更低的吞吐量。在浏览大文件夹、在线播放视频或复制数 GB 的文件时,这种差异会更加明显。Tailscale 的连接类型文档性能指南介绍了其中的区别,并建议在可能的情况下使用直连。

即使成功直连,速度也会受到整个链路中最慢部分的限制:

  • 从家中下载到手机时,通常受家中网络的上传速度限制。
  • 上传到家中时,通常受家中网络的下载速度或手机的上传速度限制。
  • Wi-Fi 质量、移动网络信号、延迟、丢包、NAS 或 PC 的性能,以及 SMB 协议开销,都可能进一步降低速度。
  • 运营商可能存在流量策略、拥塞管理或上下行速率不对称的套餐,因此实际速度可能低于宣传速率。

从 Wi-Fi 切换到移动数据时,连接类型也可能发生变化。如果速度很重要,可以在支持 Tailscale 命令行的设备上运行 tailscale pingtailscale status 检查路径。结果中的 direct 表示直连,relay 表示经过中继。可以参考 Tailscale 的网络性能故障排查指南了解如何解读这些结果。

如果无法连接

请按以下顺序检查:

  • 两台设备上的 Tailscale 都已连接。 手机和 NAS 或 PC 必须登录同一个 tailnet。
  • NAS 或 PC 处于在线状态。 处于睡眠状态的 PC 无法提供共享文件夹。
  • IP 地址正确。 不要猜测地址,请从 Tailscale 中复制当前的 100.x.y.z 地址。
  • SMB 共享已启用。 Tailscale 提供网络路径,但不能替代 SMB。
  • 防火墙允许文件共享。 在 PC 上,请在合适的专用或可信网络配置文件中允许 SMB / 文件共享。
  • 账号和共享名称正确。 使用 NAS 或 PC 上为共享文件夹配置的账号。
  • tailnet 策略允许连接。 如果你修改过 Tailscale 的访问控制,请确认手机可以访问家中的设备。

一些安全建议

使用 Tailscale,你可以访问家中的私有设备,而不必将 SMB 直接暴露到公网。不过,仍然应及时更新 NAS 或 PC、Tailscale 和 Owlfiles。为文件共享账号设置强密码,只授予必要的权限,也不要将 tailnet 分享给不应访问该设备的人。

连接配置完成后,使用过程很简单:在手机上连接 Tailscale,打开 Owlfiles,然后使用保存好的连接。只要有互联网连接,你就可以访问家中的文件,同时 NAS 或 PC 仍然位于家中路由器的内侧。