tailscale
很多人第一次接触 Tailscale 时,都会有一个疑问:
我只是让朋友连上 Tailscale,这算不算 VPN?
答案是:算。
但这里面还要继续分清两种完全不同的使用方式:
- 普通 Tailscale 互联:设备和设备之间通过 Tailscale 安全直连,主要目的是“互相访问”。
- Tailscale 当 VPN 出口:把某一台设备设置成 exit node(出口节点),让别的设备把“整个互联网流量”都从它那里出去,主要目的是“改上网出口”。
很多人把这两种场景混在一起,结果就会出现各种误解,比如:
- “我能 ping 到家里的树莓派,所以我已经在翻墙了?”
- “我朋友连上我的 Tailscale,就等于他所有流量都走我家网络了吗?”
- “subnet router 和 exit node 是不是一回事?”
这篇文章就用尽量通俗的方式,把这些概念一次讲清楚。
一、先说结论:它们都属于 VPN,但用途不同
Tailscale 官方把自己定义为一种基于 WireGuard 的安全网络方案,可以在不同网络中的设备之间建立加密的点对点连接,也常被称作 mesh VPN(网状 VPN)。这意味着,只要你在两台设备上安装并登录同一个 tailnet,它们之间就已经处在一个加密的虚拟专用网络里了。
换句话说:
- 普通 Tailscale 互联,本身就是 VPN。
- Tailscale 当 VPN 出口,也还是 VPN,只是更接近大家熟悉的“传统 VPN”体验。
区别不在于“是不是 VPN”,而在于:
你是在用它连接设备,还是在用它接管上网出口。
二、什么叫“普通 Tailscale 互联”
“普通 Tailscale 互联”指的是:
两台或多台设备加入同一个 Tailscale 网络后,彼此之间可以通过 Tailscale IP、设备名或 MagicDNS 名称直接访问。
例如:
- 你在法国有一台树莓派
- 你朋友电脑也装了 Tailscale
- 你把朋友拉进你的 tailnet,或者把某台机器共享给他
- 这时你朋友就可以访问你的树莓派上的 SSH、网页、文件服务、游戏服务等
在这个场景里,Tailscale 的核心作用是:
- 给设备之间建立一条加密通道
- 尽量让设备点对点直连
- 如果直连失败,就自动使用加密中继
- 让双方像在一个私有网络里一样通信
所以,普通 Tailscale 互联最像什么?
最像这样一种体验:
虽然你们人在不同地方,但你们的设备被“虚拟地拉进了同一个局域网”。
这里有一个关键点:
普通互联并不等于“所有流量都经过对方网络”。
例如你朋友连上 Tailscale 后:
- 他访问你的树莓派,会走 Tailscale
- 他访问 Google、B 站、Steam、Discord 等普通网站或服务,默认还是走他自己的本地网络
也就是说,普通互联解决的是“访问某台设备”的问题,不是“改整个上网出口”的问题。
三、什么叫“Tailscale 当 VPN 出口”
这时就轮到另一个概念出场了:exit node(出口节点)。
Tailscale 官方文档对 exit node 的定义非常直接:
你可以把某一台设备设置为出口节点,然后让其他设备把公共互联网流量都通过它转发。
这意味着,一旦某个客户端启用了 exit node:
- 它访问网页、App、游戏平台、接口服务等外部互联网资源时
- 流量会先进入 Tailscale 加密通道
- 再发到这台出口节点
- 最后由出口节点替它访问互联网
于是目标网站看到的就不再是客户端自己本地网络的公网 IP,
而是:
出口节点所在网络的公网 IP。
这就是为什么 Tailscale 的 exit node 模式,会让人觉得它“特别像传统 VPN”:
- 传统 VPN:客户端把所有流量发给 VPN 服务器,再由服务器出网
- Tailscale exit node:客户端把所有流量发给出口节点,再由出口节点出网
官方文档甚至明确提到,这种模式相当于为客户端下发默认路由 0.0.0.0/0 和 ::/0,这和典型 VPN 的 full tunnel(全隧道)思路是相似的。
所以,Tailscale 当 VPN 出口,本质上就是:
把你自己的某台设备,临时变成“别人上网时的出口服务器”。
四、两者最核心的区别:访问设备 vs 接管上网出口
如果只记一个区别,那就记这句:
普通 Tailscale 互联,重点是“访问某台设备”;Tailscale 当 VPN 出口,重点是“通过某台设备上网”。
把它们拆开看会更清楚。
1. 普通 Tailscale 互联
默认情况下,Tailscale 让你访问的是 tailnet 里的设备本身。
比如:
- 打开远程桌面
- SSH 登录树莓派
- 访问 NAS 面板
- 打开某个本地网页服务
- 访问家里电脑上的游戏服务端口
这里的目标是:
“我要连到那台机器。”
不是:
“我要把自己的全网流量都改从那台机器走。”
2. Tailscale 当 VPN 出口
当客户端选择某个 exit node 后,目标就变成了:
“除了访问 tailnet 设备,我还要把所有普通互联网访问都从这台出口节点出去。”
例如:
- 浏览器访问网站
- 手机 App 连云端接口
- 游戏客户端连接服务器
- 某些地区敏感或需要特定出口的网络请求
这时的重点已经不是“访问某台机器”,而是:
“把我的默认出网路径切换到另一台设备所在的网络。”
五、subnet router 又是什么?为什么总和 exit node 混淆
很多人学到这里时,会再碰到第三个概念:subnet router(子网路由器)。
这个东西和 exit node 很像,因为它们都在“代转发流量”,但用途仍然不同。
subnet router 的作用
Tailscale 官方文档中,subnet router 指的是:
某台加入 tailnet 的设备,向其他设备通告一段局域网网段,让 tailnet 里的设备可以访问这个网段中的机器。
比如你家里有一堆没装 Tailscale 的设备:
- NAS:
192.168.1.10 - 打印机:
192.168.1.20 - 摄像头:
192.168.1.30
你可以让一台 Linux 主机或树莓派开启 subnet router,广告路由例如:
sudo tailscale set --advertise-routes=192.168.1.0/24
这样 tailnet 里的其他设备,就能通过这台中间机器去访问整个 192.168.1.0/24 网段。
它和 exit node 的区别
- subnet router:只负责把你带进某个指定局域网网段
- exit node:负责接管你的整个公网互联网流量
所以:
- 想访问你家里的 NAS、打印机、摄像头:更像 subnet router 的场景
- 想让手机或电脑“整机流量”都从家里公网 IP 出去:更像 exit node 的场景
一句话总结:
subnet router 是“带你进某个内网”;exit node 是“替你整个出网”。
六、用一个生活化类比来理解
如果把网络想象成交通系统,那么:
普通 Tailscale 互联
像是你和朋友之间打通了一条专用地下通道。
- 你可以直接去他家
- 他也可以直接来你家
- 但你们平时去商场、去公司、去别的地方,还是走各自原本的道路
这就是“只访问设备,不改整个上网出口”。
Tailscale exit node
像是你不但能去朋友家,
而且你从此以后出门去任何地方,都要先到朋友家,再从朋友家出发。
所以在外界看来:
- 你像是“从朋友家那个位置”出来的
- 你对外显示的是朋友家那边的网络身份
这就是“接管默认出网路径”。
subnet router
则更像是朋友家旁边还有一个大院子,里面有很多设备和房间。
- 你原本只能到朋友家门口
- 开了 subnet router 之后,你不仅能到朋友家,还能进他家后面的整个院子
但注意:
你依然不是所有出门都从朋友家出去。
七、一个最常见的误区:我能连上家里机器,不等于我已经“走家里公网 IP 上网”
这是很多人最容易搞混的地方。
比如你在外面用手机连接 Tailscale,然后成功访问了家里的树莓派管理页面。此时你可能会下意识觉得:
“既然我已经通过家里机器连上了,那我现在访问网页应该也是走家里公网 IP 吧?”
不一定。默认不是。
默认情况下,只有访问 Tailscale 网络内目标时,流量才会走 Tailscale 路径;你访问普通互联网时,通常还是走自己的本地网络。
只有当你明确启用了 exit node,你的客户端才会把公共互联网流量也交给那台出口节点处理。
所以:
- 能访问家里设备 ≠ 已经使用家里公网 IP 上网
- 启用了 exit node ≈ 才真正接近大家熟悉的“VPN 出口”模式
八、有没有公网 IP,对 Tailscale 是不是必须?
不是必须。
这是 Tailscale 和很多人印象中“必须有服务器、必须有公网 IP 的 VPN”很不一样的地方。
Tailscale 会优先尝试让设备之间建立直接连接。如果网络环境允许,这样速度和延迟通常更好;如果做不到直连,Tailscale 也可以通过自己的加密中继机制继续工作。
所以,没有公网 IP,Tailscale 依然通常能用。
当然,有公网 IP、网络策略更宽松、NAT 更友好时,点对点直连成功率往往更高,体验也可能更好。但它不是硬前提。
这也是为什么很多家庭网络、校园网、移动网络环境下,Tailscale 仍然能很好地跑起来。
九、什么时候该用普通互联,什么时候该用 exit node
更适合普通 Tailscale 互联的场景
如果你的需求是下面这些,通常不需要 exit node:
- 远程 SSH 到家里的 Linux 主机
- 访问树莓派、NAS、Jellyfin、Home Assistant
- 远程桌面到自己的电脑
- 打开家庭实验室里的某个 Web 面板
- 和朋友临时共享某台机器或某个服务
这些场景的核心是:
“我想安全访问某个设备或服务。”
这时普通 Tailscale 互联已经够用了。
更适合使用 exit node 的场景
如果你的需求是:
- 想让手机、电脑整机流量都从家里出去
- 想在外面使用家里的公网 IP 访问互联网
- 想在公共 Wi‑Fi 下把互联网流量先安全送回自己信任的网络再出网
- 想统一设备的出口位置
那么 exit node 才是更合适的方案。
这些场景的核心是:
“我不是只想连某台机器,我是想改变整个设备的出网方式。”
十、两者有没有可能同时用?
完全可以。
事实上,很多人的实际使用方式就是“混合模式”:
- 平时只用普通 Tailscale 互联,远程访问家里的设备
- 需要时再临时切换某台设备为 exit node
比如:
- 笔记本平时只是连家里的 NAS 和树莓派
- 到了公共 Wi‑Fi 环境,再打开 exit node,让整机流量安全走回家里
这种方式往往比“长期全流量都走出口节点”更灵活,也更节省带宽和性能开销。
十一、性能和体验上也有区别
普通互联
普通互联通常只在你访问 tailnet 内目标时使用 Tailscale,因此:
- 带宽消耗更集中
- 对整机上网体验影响更小
- 更适合长期常开
exit node
exit node 会让更多流量经过那台出口设备,因此:
- 出口节点的上行/下行压力会更大
- 延迟可能增加
- 取决于出口节点所在网络的质量
- 出口节点离你越远,绕路越明显
简单说:
普通互联更轻,exit node 更重。
普通互联像是“偶尔走专线去某个地方”,
exit node 更像是“整天所有车都改道从一个收费站走”。
十二、写给初学者的最终判断法
当你分不清到底该用哪种方式时,可以问自己两个问题:
问题 1:我的目标是不是某一台设备?
如果答案是“是”,例如:
- 我只想连树莓派
- 我只想 SSH 回家
- 我只想看 NAS 面板
那么大概率你需要的是:
普通 Tailscale 互联
问题 2:我是不是想让整台设备的上网出口都变掉?
如果答案是“是”,例如:
- 我想让手机所有流量都从家里出去
- 我想让浏览器、App、游戏都从另一台机器那边出网
那么你需要的是:
Tailscale exit node
如果你想访问的是一整段没装 Tailscale 的局域网设备,
那就再看第三种:
subnet router
十三、一段最简洁的总结
最后用三句话把全文收住:
- 普通 Tailscale 互联:让设备和设备之间安全互通,重点是“访问设备”。
- Tailscale 当 VPN 出口(exit node):让一台设备替另一台设备整机出网,重点是“接管互联网出口”。
- subnet router:让 tailnet 中的设备访问某一整段局域网,重点是“进入指定内网”。
所以,它们的关系不是谁替代谁,而是分别解决不同问题:
普通互联解决“我怎么连到那台机器”;exit node 解决“我怎么从那台机器所在网络出去上网”;subnet router 解决“我怎么进入那台机器后面的整段内网”。
理解了这三个层次,Tailscale 的多数使用场景就不会再混淆了。
参考资料
本文内容基于 Tailscale 官方文档整理:
- Tailscale 对自身的定义与加密点对点连接说明:
- https://tailscale.com/docs/concepts/what-is-tailscale
- https://tailscale.com/docs/concepts/all-your-offices
- Exit nodes(出口节点)说明:
- https://tailscale.com/docs/features/exit-nodes
- https://tailscale.com/docs/reference/glossary
- Subnet routers(子网路由器)说明:
- https://tailscale.com/docs/features/subnet-routers
- https://tailscale.com/docs/route
发表回复