ELI5? I barely understood original Tailscale.
post
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.

Okay so i think this section is one of the most useful ones for a normal user:
Send and receive files
To receive files, run a drop box and share the printed tailcat address:
$ tailcat recv ~/inbox
# 🐈 Server listening with new address: tcXXXXXXXXX
The sender then runs:
$ tailcat cp report.pdf tcXXXXXXXXX:
tailcat cp runs the system scp with the connection routed through
tailcat, so you get its usual progress display, and -r for
directory trees. The drop box is write-only: senders can't list the
directory, read anything back, or touch existing files.
To offer files instead, serve a directory read-only (the default) or read-write:
$ tailcat serve files # current directory, read-only
$ tailcat serve --files=/pub:rw files # a given directory, read-write
$ tailcat ls -l tcXXXXXXXXX
$ tailcat cp tcXXXXXXXXX:report.pdf .
And this can presumably hopefully finally fucking condemn hamachi to the grave, maybe?
Forward local ports to a tailcat server
To make ports served by a tailcat server available as ordinary local TCP ports (for browsers, database clients, or other tools that do not support SOCKS or stdio), run forward with the server's tailcat address:
$ tailcat serve 8080,3306
# 🐈 Server listening with new address: tcXXXXXXXXX
$ tailcat forward tcXXXXXXXXX 18080:8080 3306
A local port of 0 asks the operating system for a free port; each listener prints its address once it's listening.
To forward local ports to assets on the network reachable by an exit-node server, run the server in exit-node mode and specify each remote IP address and port in the mapping:
$ tailcat serve exit-node
# 🐈 Server listening with new address: tcXXXXXXXXX
$ tailcat forward tcXXXXXXXXX \
3001:172.23.52.30:3001 \
17170:172.23.52.31:17170
This forwards 127.0.0.1:3001 to 172.23.52.30:3001 and 127.0.0.1:17170 to 172.23.52.31:17170 through the exit-node server.
By default, listeners bind to 127.0.0.1 and diagnostic logs are suppressed. Pass --verbose before the subcommand to enable verbose networking logs. Use --bind=0.0.0.0 only when clients on other machines should be able to connect:
$ tailcat forward --bind=0.0.0.0 tcXXXXXXXXX 18080:8080
Press Ctrl-C to stop forwarding.
So... Wireguard?
It sounds more like netcat maybe? Less server client architecture more peer to peer?
"like netcat" huh, i wonder what netcat is..
"netcat (often abbreviated to nc) is a computer networking utility for reading from and writing to network connections using TCP or UDP. The command is designed to be a dependable back-end that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and investigation tool, since it can produce almost any kind of connection its user could need and has a number of built-in capabilities."
no comments (yet)