Skip to content
Tech News
← Back to articles

Tailcat – Like netcat, but over Tailscale’s data plane

read original more articles
Why This Matters

Tailcat introduces a lightweight, open-source tool that enables encrypted peer-to-peer communication over Tailscale's data plane without relying on Tailscale's control plane. This innovation enhances privacy and flexibility for users needing direct connections, especially in environments where control plane access is limited or undesirable. It broadens the potential use cases for Tailscale's secure networking technology, benefiting both developers and consumers seeking more control over their data and connections.

Key Takeaways

"Tailscale without Tailscale, by Tailscale"

Tailcat

Tailcat is a remix of Tailscale open source pieces to act like netcat, but over Tailscale's data plane, without Tailscale's control plane. Tailscale's data plane ( magicsock , internally) gives you point-to-point WireGuard®-encrypted tunnels between two machines with DERP as the NAT-hole-punching communication side channel and the ultimate relay-of-last-resort if NAT traversal fails. Instead of using the Tailscale control plane, all tailcat connection metadata is exchanged out of band, however you want.

The tailcat CLI (in cmd/tailcat ) is built on the tailcat Go library (importable as github.com/tailscale/tailcat ).

Whether you use tailcat as a CLI tool or library, one side runs a tailcat server (listener) and gets back a short connection token. The other side passes that token to tailcat 's client side to connect. All traffic between the two is encrypted end-to-end with WireGuard. The initial connection bootstraps through a DERP server (see below), and then magicsock performs NAT traversal to upgrade to a direct peer-to-peer UDP connection when possible (usually!).

You don't need a Tailscale account, root/admin access on the machine (it doesn't alter your machine's routing tables, DNS, etc.). It's just a userspace library and CLI tool.

And it's all open source.

You can use our free rate-limited DERP relays (the default DERP map is https://tailcat.dev/derpmap.json) or you can run your own.

Install

$ go install github.com/tailscale/tailcat/cmd/tailcat@latest

... continue reading