Tailcat:一个Token直连两台机器,P2P隧道工具来了

导语:想不想像科幻电影里那样,两台电脑之间点对点直连,加密隧道凭空搭起,不需要注册账号、不需要配置路由、不需要任何管理员权限?Tailscale官方最近开源了一款叫Tailcat的工具,说是”有Tailscale的体验,没有Tailscale的控制面”。这事儿吧,听着就有点意思。


一句话概括

Tailcat 是什么?它是Tailscale官方出品的开源工具,本质上是Tailscale开源组件的” remix”,能把两台机器用WireGuard加密隧道直连起来——但不需要Tailscale账号,不需要控制面板, Token即连即用

两台设备通过加密隧道直连的可视化展示

它能干什么?

这工具用法非常直接,一句话:服务提供方起一个监听,拿到一串Token;另一方拿着Token连进来,隧道自动建立。 具体支持的玩法包括:

  • 数据传输:像netcat那样传文本、传文件,两台机器直接对话
  • 本地端口暴露:把目标机器的某个端口映射到本地,本地访问远程服务
  • SSH直连:不需要配置SSH密钥,也不需要知道对方IP,Token即身份
  • SOCKS5代理:通过隧道跑一个SOCKS5代理, curl之类的工具直接走加密隧道
  • Exit Node(出口节点):客户端可以借用服务端的网络出口,访问对方所在局域网
  • 文件传输(浏览器版):官方还提供了一个实验性的WebAssembly版本,在浏览器里就能传文件

整个过程加密端到端,默认走P2P直连(NAT穿透成功的情况下),如果NAT打洞失败才fallback到DERP中继。


技术原理:Tailscale数据面,无控制面

Tailcat的核心逻辑并不复杂,它复用了Tailscale的开源组件:

WireGuard负责加密隧道本身,这个大家都熟悉。magicsock(Tailscale内部组件)负责NAT穿透和打洞,它会在直连可行时尝试建立UDP直连,如果双方都位于对称型NAT之后打洞失败,DERP服务器作为中继兜底。DERP的默认配置使用的是Tailscale官方提供的公共DERP节点,当然你也可以自己搭一个。

关键点在于:传统的Tailscale需要一个控制面(control plane)来管理节点间的密钥交换和元数据分发,而Tailcat把这个控制面去掉了——所有连接元数据通过Token带外交换,Token本质上包含了对方WireGuard公钥和DERP信息,扫码、聊天、甚至邮件发字符串都行。


安装使用:一条命令搞定

Tailcat由Go语言编写,安装只需要一行命令:

go install github.com/tailscale/tailcat/cmd/tailcat@latest

也可以用Nix:

nix run github:tailscale/tailcat

服务端(接收方)运行:

tailcat
# Selected bootstrap relay region 302, San Francisco
# 🐈 Server listening with new address: tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu

拿到这串Token,发给客户端。

客户端(发起方)运行:

echo hello | tailcat tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu

服务端立即收到hello,连接建立。

其他常见用法:

# 暴露远程8080端口到本地
tailcat <token> 8080

# 启动无认证SSH服务
tailcat --serve=no-auth-ssh
tailcat ssh <token>

# 通过隧道做SOCKS5代理
tailcat socks <token>

# 测试延迟,看走直连还是DERP
tailcat ping <token>

安全性: Ephemeral Key(临时密钥)机制

Token对应的是WireGuard公钥。Tailcat默认每次运行生成临时密钥(Ephemeral Key),进程退出后密钥即销毁,地址永久失效。也可以用tailcat genkey生成持久密钥,地址跨重启保持不变,但需要自己承担地址共享的风险。

此外,如果想限制只有特定客户端能连,可以用--allow参数做客户端证书限制。


适用场景

Tailcat的典型使用场景包括:

内网穿透这件事从来都是老大难问题,frp、ngrok、Cloudflare Tunnel这些方案各有各的门槛。Tailcat的出现给了一个新选择——不需要服务端、不需要账号,只需要两台能联网的机器。对于临时调试、跨云互通、快速搭建测试环境这类需求,这个工具相当实用。


下载地址

项目链接
GitHub仓库<https://github.com/tailscale/tailcat>
官方介绍页<https://tailscale.com/tailcat>
浏览器体验版(WebAssembly)<https://tailscale.github.io/tailcat/>

图片版权 华盟网

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容