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 的核心作用是:

  1. 给设备之间建立一条加密通道
  2. 尽量让设备点对点直连
  3. 如果直连失败,就自动使用加密中继
  4. 让双方像在一个私有网络里一样通信

所以,普通 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