6 comments

[ 2.9 ms ] story [ 31.4 ms ] thread
> This is similar to 'ssh -L' functionality, but does not use SSH and requires a pre-shared symmetric key.

I already have SSH set up and functional, what advantage does spiped offer?

There are several advantages to using spiped rather than tunneling via ssh:

* Reduced attack surface: The spiped protocol (and implementation) is orders of magnitude simpler than ssh.

* spiped opens a separate transport layer connection for each pipe, mitigating "noisy neighbour" effects where one busy connection tunneled over ssh can bottleneck other connections tunneled over the same ssh connection. (This is not perfect, since spiped is single-threaded: A connection which is busy enough will end up starving you for CPU time for the crypto. But you'll typically hit that limit with traffic orders of magnitude higher than you'd need to create a bottleneck if everything goes over the same TCP connection.)

* spiped has no persistent connection, so there's nothing to be interrupted if your network drops (or if you move between networks). Every connection is a new connection; spiped is effectively transparent.

Spiped is excellent, I use it in production for really critical stuff and it's rock solid. Seriously one of the best pieces of software ever written. I've never even once had to debug a problem with it, it just works.
I no longer have SSH listening on the bare internet on my VPS nodes .. I either place spiped in front of the standard daemon or disable it entirely and utilize Tailscale SSH