Tailscale 真正解决的不是“VPN 太难配”,而是今天的机器已经不再老老实实待在同一个机房里了。
一台开发机在家里,一台测试机在云上,一个 NAS 躲在运营商 NAT 后面,几台服务器散在不同厂商的 VPC,手机和笔记本还要随时接进来。传统 VPN 的默认假设是“先有一个中心网关,再把人接进去”;Tailscale 的默认假设更现实:设备本来就分散,那就把身份、密钥、路由和访问控制重新编排一遍,让它们像在同一张私有网里协作。
所以别只把它理解成“更好用的 VPN”。Tailscale 更像一层个人和小团队的安全内网控制面:底层用 WireGuard 做加密通信,上层用账号、ACL、MagicDNS、Subnet Router、Exit Node、SSH 和 Serve/Funnel 把网络运维里最烦的那些碎活收掉。
它和传统 VPN 的差别,主要不在速度
WireGuard 本身已经把 VPN 协议做得足够轻。Tailscale 的价值不只是“用了 WireGuard,所以快”,而是替你处理了 WireGuard 在真实团队里最难维护的部分:
- 每台设备的密钥怎么生成、分发、轮换。
- NAT 后面的设备怎么互相发现。
- 两台机器能直连就直连,不能直连时怎么走中继兜底。
- 新人入职、设备更换、员工离职时,访问权限怎么跟身份系统联动。
- 家里 NAS、云服务器、内网数据库、测试环境,怎么只暴露给该看到的人。
传统 VPN 往往是“连上网关就进了一个大内网”。这事省事,但权限边界粗。Tailscale 的思路更细:每台设备都是 tailnet 里的节点,能不能访问,尽量由身份和策略决定,而不是靠“你连进来了,所以默认都能看”。
这个变化挺关键。过去小团队做内网访问,常见结局是开公网端口、搞一堆跳板机、临时发 SSH key、或者把测试服务扔到某个谁都知道的域名下面。能跑,但账很乱。Tailscale 把这件事往“可管理的私有网络”方向拉了一把。
最小上手:先把两台机器拉进同一张私有网
以 Linux 服务器为例,官方提供了一条安装脚本。生产环境里你可以改成发行版包管理器安装,先跑通时这样最快:
执行 tailscale up 后,终端会给出登录链接。用浏览器打开,选择 Google、GitHub、Microsoft 或企业 SSO 登录,授权后这台机器就进入你的 tailnet。
查看状态:
查看当前机器在 tailnet 里的 IP:
另一台机器也安装并登录同一个账号后,就可以直接用 Tailscale IP 互相访问:
这一步看着简单,但背后已经做了几件事:设备注册、WireGuard 密钥交换、NAT 穿透、节点发现、加密链路建立。如果两端网络环境允许,流量会尽量点对点直连;如果打洞失败,会走 DERP 中继,仍然保持端到端加密。
MagicDNS:别再记 100.x.y.z
IP 能用,但不好记。Tailscale 的 MagicDNS 会给 tailnet 里的设备一个可读名字。比如一台机器叫 devbox,你可以直接:
小团队里这比写一堆内网 DNS 记录舒服多了。尤其是临时开发机、测试机、家用 NAS,经常换网络、换公网出口、换云厂商,固定公网 IP 反而不现实。设备名能跟着身份和 tailnet 走,网络位置变化就没那么折腾。
不过命名也要有纪律。别把机器都叫 server、test、ubuntu,后面迟早乱。建议按用途命名:
名字不只是好看,后续写 ACL、排查访问、做审计都会用到。
Subnet Router:把整段内网接进来
很多时候你不是只想访问一台机器,而是想访问某个内网网段。比如家里有 NAS、路由器后台、打印机,或者云上有一个 VPC 私网段。Tailscale 的 Subnet Router 可以让一台已经加入 tailnet 的机器代为宣告某个内网网段。
假设这台 Linux 机器能访问 192.168.10.0/24,先打开 IP 转发:
然后启动 Tailscale 并宣告路由:
接下来要到 Tailscale 管理后台批准这条 route。批准后,其他设备就可以通过 tailnet 访问这个网段里的资源。
这东西好用,但别乱开。Subnet Router 等于把一段传统内网桥接进 tailnet,权限边界会变宽。比较稳的做法是:
- 只宣告必要网段,不要一上来就把整个公司内网全打进去。
- 给不同环境分开路由,比如家用、测试、生产不要混成一锅。
- 配合 ACL 限制哪些用户和设备能访问这段网。
- 对数据库、管理后台这类高风险服务,再加应用层账号和审计。
说白了,Tailscale 能让你少开公网端口,但不是让你把内网安全全交出去。
Exit Node:把某台机器当安全出口
Exit Node 的作用是把一台 tailnet 设备设置成全局流量出口。你在外面用公共 Wi-Fi 时,可以让笔记本的流量从家里服务器或可信云服务器出去。
在出口机器上:
到管理后台批准后,客户端选择这个 Exit Node 即可。Linux 客户端也可以命令行启用:
它适合三类场景:
- 出差或公共网络下,把流量走回可信出口。
- 访问只允许某个固定出口 IP 的内部服务。
- 给临时测试环境提供一个稳定访问路径。
但 Exit Node 不是万能加速器,也不是用来绕规则的工具。你把所有流量都压到一台机器上,就要承担这台机器的带宽、延迟、日志和合规责任。尤其是团队共用出口,最好明确谁能用、用来做什么、日志保留多久。
Tailscale SSH:少发一把 SSH key
Tailscale SSH 的思路是:既然设备身份和用户身份都在 tailnet 里,那 SSH 访问也可以交给策略控制,不必到处复制公钥。
启用方式大致是:
然后在管理后台的访问策略里允许某些用户登录某些机器。示意上可以理解成这样:
实际规则要按你的 tailnet、用户组和 tag 调整。重点不是照抄 JSON,而是把 SSH 权限从“机器上散落的 authorized_keys”收回到一套可审查策略里。
这对小团队很实用。新人入职不用到处发 key;人走了,禁用身份就行;某台机器临时需要开放维护权限,也能有边界。别小看这个变化,很多内网事故不是加密算法不够强,而是访问凭据散得到处都是,没人知道谁还能上哪台机器。
ACL 和 tag:Tailscale 能不能安全,主要看这里
很多人装完 Tailscale 只停在“设备互通”。这只是第一层。真正要在团队里长期用,必须认真写 ACL。
一个简单原则:不要让所有节点默认互访。至少把设备按用途分组:
- 个人设备:手机、笔记本、桌面机。
- 开发环境:devbox、CI runner、临时实验机。
- 测试环境:staging API、测试数据库。
- 生产环境:线上机器、生产数据库、监控后台。
- 家用设备:NAS、路由器、媒体服务。
然后用 tag 给服务器打标签,比如:
策略上可以做成:开发者能进测试环境,但不能直接碰生产数据库;运维组能进生产跳板;家用 NAS 只给个人账号访问;CI runner 只能拉取必要依赖,不能反向访问办公设备。
ACL 的核心价值不是写得多复杂,而是把“谁能访问什么”变成一份可读、可评审、可回滚的配置。这个方向,比“大家都连上 VPN 再说”靠谱得多。
Serve 和 Funnel:别把临时服务一股脑暴露到公网
Tailscale Serve 可以把本机服务发布给 tailnet 内的其他设备访问。比如你本地跑了一个 3000 端口的 Web 应用:
这样 tailnet 里的同事可以通过你的设备名访问它,不用 ngrok,不用临时部署到公网服务器。
Funnel 更进一步,可以把服务公开到互联网。这个能力要谨慎用。它很适合短期 demo、Webhook 测试、临时回调,但不要把后台管理、数据库控制台、Agent Web Terminal 这类敏感东西直接 Funnel 出去。
比较稳的规则是:
- 只 Funnel 无敏感数据、短期使用的服务。
- 开之前确认认证、限流和日志。
- 用完立刻关掉。
- 长期服务还是走正式域名、反向代理、TLS、WAF 或 Zero Trust 策略。
临时工具越好用,越容易被当成长期方案。这块别上头。
给 Agent 和自托管服务准备一张私有运维网
Tailscale 对现在的 AI/Agent 工作流尤其合适。因为 Agent 相关服务天然会散:本地有 Claude Code、Codex、OpenClaw、浏览器自动化、向量库、临时 Web UI;云上有实验机、模型网关、日志面板、任务队列。每个都开公网端口,迟早出事。
更稳的做法是把它们先放进 tailnet:
- Agent 控制台只监听本机或内网地址。
- 通过 Tailscale IP / MagicDNS 访问 Web UI。
- 数据库、Redis、向量库不开放公网端口。
- 需要给外部系统回调时,单独处理入口,不要顺手把整个控制台暴露出去。
- 对长期在线的实验机打 tag,并用 ACL 限制访问人群。
顺手提一嘴,如果你最近正折腾这类长期在线的 Agent 实验机、模型网关或私有运维节点,最好单独准备一台干净云服务器,不要和生产数据库、个人主机混跑。雨云这类云服务器适合拿来做隔离实验环境,按需开小规格,跑完就清掉,成本和风险都更好控。
一套更稳的落地清单
如果只是个人尝鲜,装客户端、登录、互 ping,就能感受到爽点。但要在团队里用,建议按下面这条线走。
先从设备盘点开始:
再给服务器设置 tag:
把默认互通收紧,只开放必要路径。示意规则可以这样设计:
然后再逐步加 Subnet Router、Exit Node、Tailscale SSH、Serve/Funnel。别一口气全开。网络工具最怕“先打通再补权限”,因为打通之后大家就会默认它一直这么用。
常见坑:不是装不上,而是边界没想清楚
第一,别把 Tailscale 当公网防火墙的替代品。它可以减少公网暴露面,但机器本身的系统更新、服务认证、最小权限、防火墙仍然要做。
第二,别让个人账号长期承载团队关键网络。个人项目无所谓,团队环境最好接企业身份系统,配 2FA,设备命名、tag、ACL、审批流程都要有基本规范。
第三,别滥用 Subnet Router。它方便,也最容易把“一个节点”变成“一整段内网入口”。家用 NAS 和测试网段可以大胆试,生产网段要慎重,最好先走只读、跳板、审计和变更审批。
第四,别把 Funnel 当长期公网发布方案。它适合临时暴露服务,不适合替代正式的线上入口。尤其是数据库后台、Agent 控制台、管理面板,别往公网一挂就完事。
第五,别忽略密钥和设备生命周期。丢手机、换电脑、员工离职、云服务器释放,都要及时从 tailnet 移除或吊销。私有网越好用,越要定期清理旧设备。
它适合谁,不适合谁
Tailscale 很适合这些场景:
- 个人开发者远程访问家里 NAS、树莓派、实验服务器。
- 小团队访问测试环境、内部面板、CI runner。
- 多云服务器之间建立轻量私有管理网。
- Agent / RPA / 自动化服务需要长期在线,但不想裸露公网端口。
- 出差时需要一个可信 Exit Node。
它不适合拿来掩盖混乱的权限管理。也不适合把大规模企业网络简单“一键迁移”进去。组织越大,越要把身份、设备合规、日志、审批、网段规划、现有 Zero Trust 体系一起考虑。
真正值得看的是:Tailscale 把网络从“连到一个地方”变成“基于身份连接一组资源”。这句话听着有点抽象,但落到开发者日常就是:少开公网端口,少发 SSH key,少折腾内网穿透,少让测试服务裸奔。
这才是它比传统 VPN 更像新一代基础设施的地方。不是因为按钮更少,而是它让私有网络终于能跟上今天这种分散、临时、自动化越来越多的工作方式。