Tailscale 官方放出了一个小工具 Tailcat:用法像 netcat,但底下走的是 Tailscale 的数据平面(WireGuard 加密、NAT 打洞、DERP 中继兜底),不需要 Tailscale 账号,不需要 root,也不改路由和 DNS。一端起服务拿到一个短地址,另一端拿这个地址去连,就是一条端到端加密的隧道。
临时给朋友传个文件、远程连一下内网的某个端口、让别人临时进你机器排查问题,这类"用完就扔"的场景,它比搭一套 VPN 或开公网端口轻得多。
它是怎么工作的
Tailscale 的组件拆开看是两块:控制平面(账号、ACL、分发密钥)和数据平面(点对点 WireGuard 隧道加 DERP 中继)。Tailcat 只拿了数据平面,连接所需的元数据压进那个 tc 开头的地址里,靠你自己带外传递(微信、邮件、口头念都行)。连接先经 DERP 服务器引导,随后尝试 UDP 打洞,成功就直连,不行就继续走中继。
默认用的是官方提供的、有速率限制的免费 DERP,也可以自己跑 derper 当中继。
能做什么
最基础的是像 netcat 一样管道传数据:
// 机器 A
tailcat
// 输出一个 tcXXXX 地址,然后等待
// 机器 B
echo hello | tailcat tcXXXX
在这之上有一堆子命令:
tailcat serve 8080,8443:把本机端口暴露出去,对端用tailcat forward <地址> 18080:8080映射成本地端口,浏览器、数据库客户端都能直接用;tailcat browse直接开浏览器serve 5555:10.2.200.213:5555:端口映射到内网别的设备,不用把整个网段暴露出去serve exit-node:当出口节点,对端可以访问服务端所在网络里的任意 IP:端口serve ssh/tailcat ssh:内置 SSH 服务端,可以用authorized_keys或用户名@github直接拉 GitHub 公钥做认证;也有免认证的no-auth-ssh,但此时地址就等于密码,别公开serve exec -- 命令:像 inetd,每个连接跑一次命令recv ~/inbox/cp:文件投递箱,发送端用tailcat cp report.pdf tcXXXX:,投递箱只写不读,无法列目录或覆盖已有文件serve files:只读或读写共享一个目录,路径限制在目录内,..和符号链接都逃不出去perf:类似 iperf 的吞吐和延迟测试,只在直连路径上跑,拒绝占用共享中继ping --until-direct:看当前是走中继还是直连socks:起一个走隧道的 SOCKS5 代理
另外还有个实验性的浏览器版(编译成 WebAssembly),能和命令行互传文件和文本,不过浏览器端目前只能走 DERP 中继,没有直连。
安装
Linux、Windows 有静态二进制和 deb / rpm 包,macOS 走 Homebrew,Windows 也有 Scoop,另外有 Snap、Nix、AUR、conda-forge 和容器镜像。Go 工具链的话:
go install github.com/tailscale/tailcat/cmd/tailcat@latest
适合谁,注意什么
适合经常要在两台机器之间临时打通通道的人,比如运维、跨 NAT 调试、给远程同事发大文件。它也是个 Go 库,可以直接嵌进自己的程序里,给应用加一个"免公网 IP 的点对点通道"。
几点要留意:
- 地址即凭据,别发到公开场合。要长期开放的服务,用
--allow限定允许的对端,或者配 SSH 公钥认证 - 官方免费中继有限速,大流量传输最好等直连打通,或者自建 DERP
- 项目还很新(最近版本是 v0.7.0,2026-09-20),接口可能还会变
- 它不是 Tailscale 的替代品:没有组网、没有 ACL、没有固定地址,每次启动地址都是新的
项目信息
- 语言:Go
- License:BSD-3-Clause
- Star:截至 2026-10-04 约 8100
- GitHub:GitHub - tailscale/tailcat: like netcat, but over Tailscale's data plane, without Tailscale's control plane · GitHub
- 官网:tailcat
- 浏览器 Demo:tailcat