从 Cloudflare Zero-trust 到 Tailscale
Source: Dev.to

去年我花了一些时间在我的 Home Assistant 和我的 Synology NAS 上实现 Cloudflare Tunnels。
在 Mastodon 上,我收到了不止一位评论者推荐 Tailscale:
Nicolas Fränkel 🇪🇺🇺🇦🇬🇪 – “我开始构建一个用于在多个社交媒体平台上安排发布的应用程序。细节与本文无关。可以说,这些模块在我家中的 #Docker 容器里的 #SynologyNAS 上运行。它在我在家时可以访问。然而,我即将前往澳大利亚数周,并且想继续发布内容。于是出现了一个问题:我该如何从那里安全地访问它?”
标签: #TOTP #Cloudflare
Source: …
为什么我改用了 Tailscale
我决定尝试 Tailscale 并迁移我的服务器和设备。感谢 Heiko Does 和 higgins 提醒我进一步了解!
Tailscale 是什么,怎么用,为什么用?
“一个基于零信任身份的连接平台,取代传统 VPN、SASE 和 PAM,连接远程团队、多云环境、CI/CD 流水线、边缘与 IoT 设备以及 AI 工作负载。” – Tailscale
换句话说,Tailscale 创建了一个 mesh VPN(了解更多),让设备在私密网络中相互通信,且与外部世界隔离。
在我的 Cloudflare Zero‑Trust 设置中,用户设备并不在同一网络里,所以我必须暴露公共端点——这带来了隐私和安全问题。Tailscale 消除了这种需求:我的设备加入同一个隔离网络,根本不需要公共端点。
Tailscale 入职体验
入职体验非常出色。你可以选择一个身份提供商(IdP),Tailscale 将所有认证委托给它。请慎重选择——你的账户无法绑定多个 IdP 作为备选。
默认情况下,你会获得 14 天免费 Enterprise 试用。如果不需要额外功能,可以切换到个人免费计划(3 位用户,100 台设备),这对我的使用场景已经足够。
添加服务器和设备
我在每台机器上安装了 Tailscale 并通过 IdP 进行认证。支持的平台包括:
- Linux
- Windows
- macOS
- iOS
- Android
- Synology
如果设备无法呈现 IdP 认证的网页 UI,你可以使用专用的 enrollment key 生成现成脚本(甚至还有对应的 API)。
注意: 我特意使用 服务器 与 设备 这两个术语。
设备 与个人身份绑定;服务器 则不绑定。认证后,服务器可以被分配 标签(查看文档)。标签类似服务账号,但更灵活——可以为同一设备分配多个标签。
收获与代价
从 Cloudflare Tunnel/公共端点迁移到 Tailscale 为我带来了多项好处,也有少量权衡。
| 方面 | 迁移前(Cloudflare) | 迁移后(Tailscale) |
|---|---|---|
| 公共端点 | 必须(子域名 + TLS 证书) | 不需要;Tailscale 提供 *.ts.net 子域名 |
| 远程 SSH | 不可用 | 任意设备均可通过 mesh 访问 |
| 媒体同步(Synology) | 只能通过内部 IP | 任意设备均可通过 Tailscale IP/名称访问 |
| 命名 | 手动 IP | MagicDNS – 可通过名称引用设备(nas.pTsDVj8tCL11XNTRL.ts.net 或简写 nas) |
| 安全性 | 暴露在互联网 | 零信任、私有 mesh |
访问方式
| 类型 | 示例 |
|---|---|
| IPv4 | 100.98.98.68 |
| IPv6 | fd7a:115c:a1e0::3701:6261 |
| 完全限定域名 | nas.pTsDVj8tCL11XNTRL.ts.net |
| 简单名称 | nas(通过 MagicDNS) |
迁移到 Tailscale – 快速回顾
而且最终,我可以移除家用路由器上所有的端口转发规则。
以上都是净收益,但也有一些损失。因为我放弃了子域名,当同一主机上有多个应用时,我需要记住端口号。Tailscale 提供了services 来为端口起别名,但 Synology 插件自带的 Tailscale 版本并不支持。
默认情况下,Tailscale 不会在内部服务器上提供 TLS。它确实可以生成证书。不过我现在懒得去配置它们,因为私有网格的概念本应能防止中间人攻击。此外,即使 Tailscale 想要窃听流量,也完全可以,因为它本身就会生成证书。
最后一个障碍是来自 Tailscale 不支持的设备的网络访问,例如智能手表。理论上,我可以通过相关应用 从我的 Garmin 手表访问 Home Assistant。我已经安装了它,但从未使用过。由于既没有公共端点也没有专用软件,我现在无法再使用它。针对这种特定使用场景,Tailscale 提供了Subnets。
我稍后会进一步检查这些功能。
结论
迁移到 Tailscale 是一次大胆的尝试,但我非常高兴自己这么做了。我的设置在隐私和安全方面都有了很大提升,也在满足我的需求方面变得更简单。我鼓励大家去看看。
更进一步
最初发表于 A Java Geek 于2026年1月11日