Tailscale 内网穿透:为什么我用过大半年后,还是觉得它最省心

先给结论

如果你只是想在家里访问公司那台跑着代码的机器,或者在外面掏出手机就能连上家里的 NAS,Tailscale 大概率是目前最省心的选择。装上、登录、就能用,三步不到五分钟。

但如果你打算拿它在国内做大流量中转,或者指望免费版永远稳定跑满带宽,那最好先把预期摆正。这工具真正的甜区是”几台设备互相找得到、能直连就直连、连不上就中继兜底”,不是替代你那台跑了三年的 FRP 服务器。

下面是我自己用了大半年的真实感受,加几个踩过的坑。不吹不黑,看完你应该能判断它到底适不适合你。

几种内网穿透方案,差别到底在哪

先把市面上常见的几个方案摆一起,省得你来回查。我按”适合什么人”来讲,而不是简单的好坏排名。

FRP 是老牌选手。原理直白:你得有一台带公网 IP 的 VPS 当中转,内网机器主动连上去,外面的人通过 VPS 访问进来。它最稳,速度也最可控,因为流量完全走你自己的服务器。代价是你得养一台 VPS,便宜的也要几十块一个月,还要自己维护。适合愿意折腾、对稳定性要求高、流量不小的场景。

Cloudflare Tunnel 走的是另一条路。你不用买 VPS,Cloudflare 给你一条免费隧道,自带域名和 HTTPS 证书。配置简单到离谱,一个 Docker 命令就跑起来了。但它的服务器都在海外,国内访问延迟偏高,偶尔还会断流,而且不支持 UDP。如果你只是想把一个 Web 服务暴露出去给客户演示,或者给朋友分享个文件,它是最省事的。想拿来打游戏联机或者跑远程桌面,体验会打折扣。

ZeroTier 和 Tailscale 思路接近,都是把分散的设备拉进一个虚拟局域网。ZeroTier 资历更老,国内用户也多。问题是它的根服务器在国内经常打不通,掉线后重连慢,体验有点看运气。

Tailscale 基于 WireGuard,底层是点对点加密。它能优先尝试让两台设备直接打通(P2P),打通了就直连,速度接近裸网络;打不通就回落到中继服务器(DERP)转发。配置门槛比上面几个都低,客户端覆盖 Windows、Mac、Linux、安卓、iOS,装上登录就行。

这四个不是互相替代的关系,更像各有各的活儿。我自己家里跑 Tailscale 连日常设备,公司那边有台 FRP 做固定中转,临时演示用 Cloudflare Tunnel。混着用反而最舒服。

Tailscale 实际用起来什么感觉

装好客户端、用 GitHub 或 Google 账号登录,设备就进网了。每台机器会分到一个 100.x.x.x 的固定 IP,以后你直接拿这个 IP 访问就行,不用记端口、不用配域名。

日常体验分两种情况。

两台设备在同一局域网,或者网络条件好能 P2P 直连的时候,速度基本就是裸网络水平。我在公司访问家里的 NAS,传文件能跑到 30MB/s 以上,跟在本地几乎没区别。SSH 连服务器延迟也就十几毫秒,比那些商业远程桌面工具顺太多。

麻烦的是 P2P 打不通的时候。Tailscale 会自动回落到官方的中继节点(DERP)转发。官方 DERP 大多在海外,国内连上去延迟可能飙到一两百毫秒,带宽也受限。这种状态下跑远程桌面会卡,传大文件更别想。

免费版有个限制要知道:一个账号最多 100 台设备、3 个用户。对个人和小团队完全够用,真到了上百台的规模,你早该考虑付费或者自建了。

从零搭一个,三步跑通

假设你有一台家里的 Linux 服务器和一台外面的笔记本,想把它们拉到一个网里。

第一步,两台机器都装客户端。Linux 上一般一行命令搞定:

curl -fsSL https://tailscale.com/install.sh | sh

Windows 和 Mac 直接去官网下载安装包。手机端各应用商店也有。

第二步,运行 tailscale up,会弹出一个浏览器让你登录授权。用同一个账号登录所有设备,它们就自动进同一个网络了。

第三步,拿 tailscale status 看一眼连接状态。你会看到每台设备的 IP 和它当前是直连还是走中继。到这里,两台机器已经能互相 ping 通了。

如果你想让外面的笔记本能访问家里整个局域网(不只是那台装了 Tailscale 的服务器),要在服务器上开子网路由:

tailscale up --advertise-routes=192.168.1.0/24

把网段换成你家的实际网段。然后去 Tailscale 后台的机器设置里,把这台设备的子网路由批准一下(approve)。这一步很多人会忘,结果就是死活访问不到其他内网设备,还以为配置错了。

几个真实踩过的坑

中继太慢怎么办。 国内连官方 DERP 延迟高是硬伤。解法是自己搭一个国内的中继节点,放在你那台有公网 IP 的 VPS 上。搭完之后,P2P 打不通的设备就走你自己的中继,延迟能压到几十毫秒。配置不算难,网上有现成的 Docker 镜像,但要注意开放对应端口(一般是 3478/UDP 和自定义 TCP 端口),云服务商的安全组别漏了。

子网路由不生效。 九成是忘了在后台 approve。Tailscale 的安全策略是,即使你 advertise 了子网,也要管理员显式批准才生效。去 admin 控制台找到那台设备,在路由设置里点一下允许就行。

设备偶尔掉线不重连。 这个多见于 OpenWrt 路由器上跑的客户端,或者休眠后唤醒的笔记本。一般重启服务就好。如果想彻底解决,把 Tailscale 设成开机自启、并加个定时检测脚本(ping 不通就 restart)能省不少心。

ACL 权限搞混。 默认状态下同一个网络里所有设备能互相访问。设备一多,你可能想限制某些机器只能单向访问。Tailscale 的 ACL 用 JSON 写,规则不算复杂,但第一次配容易绕。建议从最简单的”允许所有”开始,跑通了再收紧。

什么情况下我不推荐你用 Tailscale

说了这么多好处,也得讲讲它不适合的场合,免得你折腾半天发现方向错了。

如果你要做的是固定的大流量中转——比如每天稳定传几十 G 的备份、跑视频监控流——那 FRP 配一台靠谱的 VPS 更合适。Tailscale 的优势在灵活和省事,不在扛大流量中转,而且一旦走 DERP,带宽和稳定性都不是你能完全掌控的。

如果你只暴露一个 HTTP 服务给外面看,比如临时给客户演示个 Demo,Cloudflare Tunnel 比 Tailscale 更省事。它自带域名和证书,不用让对方装客户端,发个链接就行。

如果你追求完全自主可控,连账号体系都不想交给 Tailscale,可以看看 Headscale。它是 Tailscale 协议的开源控制端实现,自己搭一套,客户端不变,控制权全在你手里。配置门槛高一些,适合有强迫症的技术人。

最后几句实在话

内网穿透这事儿没有银弹。我见过太多人追着”最完美的方案”折腾大半年,结果需求其实一个 FRP 或者一条 Cloudflare Tunnel 就解决了。也见过人明明只需要远程连两台电脑,非去搞复杂的 VPN 隧道。

Tailscale 的价值在于把”让几台设备互相找得到”这件事的门槛压到了最低。它不解决所有问题,但它解决的这部分,目前确实做得最顺手。

我的建议是:先拿免费版试一周,把日常要连的设备都加进去。跑顺了,再根据实际遇到的瓶颈决定要不要自建 DERP、要不要上 Headscale、要不要补一台 FRP。别一上来就想一步到位,那是给自己找麻烦。

zh_CNChinese