Overview
Tailcat offers the power of Tailscale's secure data plane, enabling WireGuard®-encrypted, peer-to-peer connections without the need for Tailscale's control plane or accounts. It's a versatile tool, reminiscent of netcat, that allows you to establish direct, encrypted communication channels between machines using Tailscale's robust magicsock library. Imagine secure, direct connections for any application, even across challenging network environments, all managed out-of-band.
Key Features
- WireGuard® Encryption: All data transmitted is end-to-end encrypted with WireGuard, ensuring privacy and security.
- Tailscale Data Plane: Leverages
magicsockfor NAT traversal, DERP relay fallback, and direct UDP peer-to-peer connections. - Control Plane Independent: Operates without a Tailscale account or control server, offering greater flexibility.
- Userspace Operation: No root or admin privileges required; it runs entirely in user space without altering system routes or DNS.
- Flexible Connection Metadata: Connection details are exchanged out-of-band, giving you complete control over how endpoints discover each other.
- Multiple Server Modes:
- Standard
netcatMode: Pipe stdin/stdout between machines. - Port Forwarding: Expose local TCP ports through the tunnel.
- Auth-Free SSH: Run a simplified SSH server for quick access.
- SOCKS5 Proxy: Route network traffic through a SOCKS5 proxy.
- Exit Node: Act as an exit node for client network access.
- Standard
- Key Management Options: Supports ephemeral keys for one-off connections and saved keys for persistent server addresses, with optional client restrictions.
- DNS Integration: Publish connection tokens as DNS TXT records for easy discoverability.
- Self-Hosted DERP: Option to run your own DERP relay for complete control over your network infrastructure.
- Go Library: Usable as an importable Go library for building custom applications.
- WebAssembly Demo: An experimental in-browser demo for file and text transfer.
Typical Use Cases
- Secure File Transfer: Effortlessly send files between two machines with end-to-end encryption, bypassing traditional file-sharing complexities.
- Remote Shell Access: Establish secure SSH connections to machines without opening inbound ports or complex firewall configurations.
- Exposing Local Services: Make local development servers or services accessible over the internet securely, through a tunnel.
- Inter-Process Communication: Build custom applications that require direct, secure, and reliable communication channels between distributed processes.
- Testing Network Connectivity: Use the
pingcommand to verify direct or DERP-relayed connections and assess network path quality. - Private Network Access: Create ad-hoc private networks for specific tasks without the overhead of traditional VPNs or dedicated infrastructure.
