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?
Non-solutions:
- 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.