Tailscale在GitHub上放出一个叫tailcat的新工具,说白了是netcat的加密加强版:不用注册Tailscale账号,不用root权限,两台机器互相认一个临时生成的连接token,就能建起一条WireGuard加密隧道,传文件、开端口、连SSH都行。听起来像"轻量版Tailscale",但翻一下默认配置会发现一件更值得琢磨的事——这个工具默认对任何拿到token的人开门,身份验证是可选项,不是必选项。Tailscale最拿得出手的安全设计,恰恰是这次被主动拿掉的那部分。

一个token换一条隧道

功能不复杂:一端起server,打印出一串token;另一端拿着token连过去。中间发生的事全部由Tailscale现成的底层组件接管——magicsock做WireGuard点对点加密,DERP中继负责NAT穿透和兜底。两台机器先通过DERP侧信道交换一次"发现握手",再尝试打洞升级成直连UDP,打不通就继续走中继,只是速度打折。

连接建立四步 server启动 生成密钥 打印token DERP侧信道 Meow握手 交换公钥 WireGuard 隧道建立 端到端加密 直连或兜底 打洞成功→P2P 失败→走DERP 全程无需Tailscale账号、无需改路由表,连接元数据靠使用者自己带外传递

token等于万能钥匙,不等于门禁

token本身只是一段编码后的信息,包含server的WireGuard公钥和DERP区域,不含私钥,泄露了也不会被反推出私钥。但默认情况下server对任意持token的客户端开放连接,要限制身份,得自己手动加--allow白名单,否则被拒绝的连接会被静默忽略——用户往往不知道自己其实没设防。

这里容易被README的"全程WireGuard加密"带偏。加密解决的是传输过程有没有被偷看,不解决谁有权连进来。这两件事经常被混着理解,而tailcat的默认状态,把这条界线暴露得格外清楚。

加密保证没人偷看,不保证只有你能进门。

免认证SSH是这套逻辑里最扎眼的一项:官方文档明确建议只配合一次性临时token使用,或者干脆加--allow限制,否则等于把一台机器的shell暴露给任何知道token的人。

参照主产品:控制平面被拿掉了什么

Tailscale主产品靠一台协调服务器做身份认证、下发ACL策略,后来又加了Tailnet Lock,验证节点密钥是否经过tailnet自己的签名背书——目的就是不让身份信任完全压在协调服务器一个点上。tailcat把这整层拿掉,换成"带外交换token",用户自己决定怎么把这串字符串传给对方,可以是聊天工具,也可以是DNS TXT记录。

控制平面留下的,tailcat省掉的 Tailscale主产品 · 账号体系统一身份 · ACL策略集中下发 · Tailnet Lock签名背书 · 可随时撤销节点 tailcat · 无账号,靠token · 无策略引擎,靠--allow · 无签名背书机制 · 撤销=换密钥,靠自己记得

省掉的是账号和策略引擎带来的复杂度,代价是"谁能加入这条隧道"这件事,原本由协调层兜底,现在全靠使用者自己记得配。

  • 风险.不设--allow的token一旦被截获或转发,相当于把连接权限交给了任何拿到这串字符的人。

还是个半成品

目前tailcat没有正式release,官方明确说不保证API、CLI、输出格式的稳定性,近期提交密集,处于活跃开发状态。公开issue只有三条,分别涉及多区域健壮性、类似libtailscale的C语言绑定、以及浏览器/WebRTC支持——连"浏览器怎么连上"这种基础能力都还没落地。这说明它现在更像一个实验室里的探路工具,不是可以直接塞进运维流程的成熟产品。

另外提一句容易搞混的地方:市面上还有一家同名但完全不相关的隐私搜索公司叫Tailcat,后来被Brave收购,跟Tailscale这个GitHub项目没有任何关系,搜索时留意别认错。


开发者和系统管理员想临时打洞传个文件、免账号建隧道,场景是合适的,前提是老老实实用一次性密钥,或者花几秒钟加上--allow。企业IT该多想一层:默认宽松的权限模型意味着员工完全可能拿它绕开公司现有的网络管控,自建一条没人看得见的加密隧道,这是实打实的影子IT风险,不是危言。生产环境目前不建议直接接入,等正式release、等更明确的默认鉴权策略。

Tailscale自己最清楚协调服务器这道墙值多少钱,所以这次没有默认帮用户装上锁,而是把"要不要为安全买单"这道选择题,直接甩给了每一个拿到token的人。