I have an unreliable network connection between two machines: sometimes active TCP connections get dropped for reasons beyond my control. I want to establish a reliable TCP connection between the two machines.
If the network was reliable, I'd just run
ssh -L 1234:localhost:1234 remotehost, with the server listening on port 1234 on
remotehost, and point the client at
localhost:1234. But if the ssh connection dies, so will the forwarded connection. How can I arrange to automatically restore the connection between the client and the server?
- This isn't for interactive applications, so screen does not apply.
- This isn't just about reconnecting an SSH tunnel automatically, à la autossh. I want to continue using the same tunneled TCP connection, not start a new one.
- In principle, a VPN would do the trick. But it seems overkill when I just want one TCP connection, and I'd like a solution that works even if I don't have root permissions on either side.
I have a dim memory of a program called
rocks that did just that, but it seems to have fallen off the face of the web. I'm mostly interested in Linux on both sides (though I'd expect a program at this level to be portable to other unices), but if you know of a program that works between QNX and VMS, all the better.