Tailcat教程:像netcat一样用,走Tailscale数据面零配置互联

📅 2026-08-30 · 🏷️ 网络工具 · 点对点互联 · 开源项目

项目概览

GitHub: tailscale/tailcat · 语言: Go · ⭐ 3.4k+ · WireGuard数据面

Tailcat是什么?

一句话:像 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 寻址的 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 服务"都探测不到。适合想隐藏服务的场景。

用自己的 DERP 中继

不依赖 Tailscale 官方中继,可以自建:

# 部署 derper(需 TLS 域名,可自动 Let's Encrypt)
# 然后生成用自己中继的密钥
server$ tailcat genkey --region=derp.example.com

适合谁

网络隐私与本地优先是当下开源工具的重要趋势。想深入了解本地化与隐私工具,可看FreeTube私密YouTube播放器教程;更完整的本地AI栈搭建参考ODS本地AI服务器教程

📚 相关阅读

FreeTube教程:开源私密YouTube客户端

Win11Debloat教程:一键精简Windows

📚 常见问题

Tailcat是什么?

GitHub: tailscale/tailcat · 语言: Go · ⭐ 3.4k+ · WireGuard数据面

如何上手Tailcat?

个人开发者:家里 NAS / 开发机,不想买公网 IP 或做端口转发