📅 2026-08-30 · 🏷️ 网络工具 · 点对点互联 · 开源项目
项目概览
GitHub: tailscale/tailcat · 语言: Go · ⭐ 3.4k+ · WireGuard数据面
一句话:像 netcat 一样,但走 Tailscale 的数据面——不需要 Tailscale 的控制平面。你用惯了 nc 的"管道连接两台机器"心智模型,tailcat 给你同样的体验,但底层是加密的 WireGuard 通道,而且是去中心化的:没有集中账号,没有登录,两台机器直接互通。
它最大的卖点:无需任何开放入站端口。NAT 后面的机器(家庭宽带、蜂窝网络)也能被直接访问,因为流量走 WireGuard + DERP 中继。
# 标准方式(需要 Go)
go install github.com/tailscale/tailcat/cmd/tailcat@latest
# Nix 用户
nix run github:tailscale/tailcat
nix profile install github:tailscale/tailcat
官方还提供了编译成 WebAssembly 的浏览器演示版(https://tailscale.github.io/tailcat/),可以在网页里和 CLI 互传文件或文本,方便快速体验。
在接收端机器启动服务(生成临时地址):
server$ tailcat serve
# 输出类似:tcXXXXXXXXX(一次性地址,进程退出即作废)
在发送端把地址给过去:
client$ cat file.txt | tailcat tcXXXXXXXXX
client$ tailcat tcXXXXXXXXX > received.txt
传输走加密通道,地址是一次性的——每个 serve 进程都会在内存里生成一把全新密钥,别人永远不会看到这个地址,进程退出地址永久失效。这是默认的安全设计。
| 类型 | 说明 | 适用 |
|---|---|---|
| 临时密钥(默认) | 每次运行内存生成,退出即丢 | 临时传文件 |
| 持久密钥 | tailcat genkey 存盘复用 | 常驻服务(如SSH) |
不需要端口转发、不需要端口敲门。在 DNS 上放一条 TXT 记录,就能用域名直接 SSH:
# DNS:my-server.example.com 300 IN TXT "tailcat=tcXXXXXXXXX"
# 客户端直接连
client$ tailcat ssh my-server.example.com
client$ tailcat example.com 8080
client$ tailcat ping example.com
客户端会自动使用保存的 client-default 密钥作为身份,别人的握手会被静默忽略——对方连"这里有个 SSH 服务"都探测不到。适合想隐藏服务的场景。
不依赖 Tailscale 官方中继,可以自建:
# 部署 derper(需 TLS 域名,可自动 Let's Encrypt)
# 然后生成用自己中继的密钥
server$ tailcat genkey --region=derp.example.com
网络隐私与本地优先是当下开源工具的重要趋势。想深入了解本地化与隐私工具,可看FreeTube私密YouTube播放器教程;更完整的本地AI栈搭建参考ODS本地AI服务器教程。
GitHub: tailscale/tailcat · 语言: Go · ⭐ 3.4k+ · WireGuard数据面
个人开发者:家里 NAS / 开发机,不想买公网 IP 或做端口转发