你是否曾为临时调试跨网络服务而头疼?想把本地开发的 Web 服务安全暴露给同事,又不想开公网端口、配反向代理或注册 Tailscale 账号?Tailcat 正是为此而生——它复用 Tailscale 成熟的底层数据平面(magicsock + DERP + WireGuard),剥离掉所有账户体系、控制平面和系统级配置,仅用一条命令就能在任意两台联网设备间建立**完全用户态、零依赖、端到端加密的点对点隧道**。它不是 Tailscale 的简化版,而是“Tailscale 的核心能力裸奔版”:没有登录、没有 daemon、不碰路由表、不改 DNS,连 root 权限都不需要。
核心功能
- 即启即用的加密管道:服务器端运行
tailcat即生成一个一次性连接令牌(如tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu),客户端用该令牌直连,stdin/stdout 自动双向透传——就像 netcat,但所有流量默认经 WireGuard 加密,且自动穿透 NAT。 - 本地端口安全转发:用
tailcat --serve=8080,8443将本机 8080/8443 端口暴露为加密隧道服务;客户端执行tailcat <token> 8080即可访问,无需配置防火墙或云厂商安全组,适合临时分享本地开发环境。 - 免认证 SSH 快速接入:在 Linux/macOS 上运行
tailcat --serve=no-auth-ssh,即可启动一个无密码、纯内存的 SSH 服务端;客户端用tailcat ssh <token>直连执行命令(如ls -la),特别适合 DevOps 工程师快速诊断远程机器状态,规避 SSH 密钥分发与权限管理成本。 - SOCKS5 加密代理通道:通过
tailcat socks <token>启动本地 SOCKS5 代理,所有经该代理的流量(如curl --proxy socks5h://localhost:1080 http://server.tailcat:8081/)均走 Tailcat 加密隧道,可安全访问对方内网资源,且支持将令牌直接作为 hostname 使用(如curl http://tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu:8081/)。 - 智能路径探测与优化:
tailcat ping --until-direct <token>持续测试连接质量,实时显示数据包是经 DERP 中继(如via DERP(sfo))还是已升级为直连 UDP(如via 203.0.113.7:41641),帮助判断网络环境并验证 NAT 打洞效果。 - 全平台轻量部署:支持 Go 直接安装(
go install)、Nix flakes 一键运行、Docker 容器化使用,甚至提供 WebAssembly 版本在线 Demo(https://tailscale.github.io/tailcat/),浏览器中即可收发文件或文本,与 CLI 完全互通。 - 完全自主可控的中继:默认使用 Tailscale 免费 DERP 中继(
https://tailcat.dev/derpmap.json),也可按官方文档自建 derper 服务,替换为私有 DERP 地址,满足企业对流量出口的合规要求。
技术亮点
- 复用 Tailscale 最稳定的数据平面,而非重造轮子:底层直接调用 Tailscale 开源库中的
magicsock(负责 NAT 穿透、连接保活、路径选择)与 WireGuard 内核协议栈,继承其经过生产环境大规模验证的 P2P 连接成功率与低延迟特性,避免同类工具常见的“看似连上实则卡顿”问题。 - 彻底解耦控制平面,实现真·零配置:不依赖任何中心化身份服务、不生成长期密钥对、不写入系统配置文件;连接元数据(如对端公钥、DERP 路由信息)全部通过短令牌(base64 编码的加密 blob)离线交换,用户可微信/邮件/二维码随意传递,安全模型更透明可控。
- 纯用户态运行,无系统侵入性:全程不修改路由表、不劫持 DNS、不创建虚拟网卡、不请求 root 权限——这意味着它能在受限环境(如 CI/CD 构建容器、共享云主机、教育机房)中无障碍运行,也杜绝了因网络配置变更引发的系统故障风险。
- 渐进式连接升级机制:首次连接必经 DERP 中继完成握手,随后 magicsock 自动发起 STUN 探测与 UDP 打洞;一旦直连成功,后续流量立即切换至低延迟 P2P 通路,并持续监控链路质量,失败时无缝回退至 DERP,整个过程对上层应用完全透明。
适合哪些人用
Tailcat 的核心价值在于「降低安全连接的使用门槛」。它最适合三类人群:
- 开发者与测试工程师:当你在咖啡馆用笔记本调试微服务,需要让测试同学访问你本机的
localhost:3000,只需运行tailcat --serve=3000并把令牌发过去,对方执行tailcat <token> 3000即可,全程无需申请域名、配 HTTPS、开防火墙。 - 运维与 SRE 工程师:紧急排查客户现场无法外网访问的嵌入式设备时,让对方在设备上运行
tailcat --serve=no-auth-ssh,你本地tailcat ssh <token> top实时查看负载,比搭建跳板机快 10 倍,且所有操作日志不落地于第三方平台。 - 隐私敏感型个人用户:想在家庭 NAS 和出差笔记本间同步照片,又不愿用商业网盘或暴露 SMB 端口,用
tailcat --serve=5001(Rclone Web UI 端口)+ 客户端tailcat <token> 5001,全程加密,流量不经过任何云服务商。
快速上手
安装仅需一条命令(需已安装 Go 1.21+):
go install github.com/tailscale/tailcat/cmd/tailcat@latest
启动服务端(生成令牌):
tailcat
客户端连接(以传输文本为例):
echo "Hello from client" | tailcat tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu
服务端将立即输出 Hello from client。如需转发端口,服务端运行 tailcat --serve=8080,客户端运行 tailcat <token> 8080 即可。
同类对比 / 注意事项
- vs. netcat + stunnel/openssl:Tailcat 不需手动管理证书、配置 TLS 参数,WireGuard 加密由 magicsock 自动完成,且内置 NAT 穿透能力,netcat 在多数家庭路由器后根本无法直连。
- vs. Tailscale 官方客户端:Tailcat 不需要注册账号、不绑定邮箱、不产生长期设备身份,适合一次性、临时性、高隐私要求的场景;但也不提供 ACL、退出策略等企业级管控能力。
- 注意事项:令牌有效期默认为 24 小时(可代码修改),过期后需重启服务端;WebAssembly 版本暂不支持 WebRTC 直连,所有浏览器流量均经 DERP 中继;若需长期服务,建议配合 systemd 或 supervisor 守护进程管理。
项目信息
like netcat, but over Tailscale’s data plane, without Tailscale’s control plane
3.6k
今日 +789 stars today
Stars
107
Forks
Go
BSD-3-Clause
编程语言:Go|Star 数:3569|开源协议:BSD-3-Clause|GitHub 项目地址
如果你厌倦了为一次临时连接折腾证书、端口、防火墙和账号体系,Tailcat 就是你数字工作流中那根即插即用、加密可靠、拔掉就消失的「信任网线」。



