tailscale 新项目 tailcat

项目地址: https://tailscale.com/tailcat

Tailcat
Tailcat 是对 Tailscale 开源组件的重新组合,旨在实现类似 netcat 的功能,但运行在 Tailscale 的数据平面之上,且不依赖 Tailscale 的控制平面。Tailscale 的数据平面(内部称为 magicsock)在两台机器之间提供点对点的 WireGuard® 加密隧道;其中,DERP 既充当 NAT 穿透通信的辅助通道,也作为 NAT 穿透失败时的最终中继方案。与使用 Tailscale 控制平面不同,Tailcat 的所有连接元数据均通过带外(out-of-band)方式交换,具体交换方式由用户自行决定。

Tailcat 命令行工具(位于 cmd/tailcat 目录)构建于 Tailcat Go 库(可通过 github.com/tailscale/tailcat 导入)之上。

无论将 Tailcat 用作命令行工具还是库,使用流程均为:一方运行 Tailcat 服务器(监听模式)并获取一个简短的 Tailcat 地址,另一方则将该地址传递给 Tailcat 客户端以发起连接。双方之间的所有流量均通过 WireGuard 进行端到端加密。初始连接通过 DERP 服务器建立(详见下文),随后 magicsock 会执行 NAT 穿透,在条件允许时(通常都能成功!)将连接升级为直接的点对点 UDP 连接。

你无需拥有 Tailscale 账户,也无需机器的 root 或管理员权限(它不会修改机器的路由表、DNS 设置等)。它仅仅是一个用户态库和命令行工具。

而且,它完全开源。

你可以使用我们免费但有速率限制的 DERP 中继服务(默认 DERP 映射配置位于 https://tailcat.dev/derpmap.json),也可以自行搭建中继服务。

此外,还有一个基于浏览器运行的实验性 Web 演示(由 Tailcat 编译为 WebAssembly),地址为 https://tailscale.github.io/tailcat/;它支持发送和接收文件或文本,并能与命令行工具互操作。目前的浏览器流量仅通过 DERP 中继传输,在 WebRTC 支持(Issue #4)实现之前,无法建立直接连接。