Ich habe eine unzuverlässige Netzwerkverbindung zwischen zwei Computern: Manchmal werden aktive TCP-Verbindungen aus Gründen unterbrochen, die außerhalb meiner Kontrolle liegen. Ich möchte eine zuverlässige TCP-Verbindung zwischen den beiden Maschinen herstellen.
Wenn das Netzwerk zuverlässig wäre, würde ich einfach laufen ssh -L 1234:localhost:1234 remotehost
, während der Server Port 1234 überwacht remotehost
, und den Client auf zeigen localhost:1234
. Wenn die SSH-Verbindung jedoch unterbrochen wird, wird auch die weitergeleitete Verbindung unterbrochen. Wie kann ich veranlassen, dass die Verbindung zwischen dem Client und dem Server automatisch wiederhergestellt wird?
Nichtlösungen:
- Dies gilt nicht für interaktive Anwendungen, daher gilt der Bildschirm nicht.
- Hier geht es nicht nur darum, einen SSH-Tunnel automatisch wieder anzuschließen, la autossh . Ich möchte weiterhin dieselbe getunnelte TCP-Verbindung verwenden und keine neue starten.
- Im Prinzip würde ein VPN den Trick tun. Aber es scheint übertrieben, wenn ich nur eine TCP-Verbindung möchte, und ich möchte eine Lösung, die auch dann funktioniert, wenn ich auf beiden Seiten keine Root-Berechtigungen habe.
Ich habe eine schwache Erinnerung an ein Programm namens rocks
, das genau das getan hat, aber es scheint vom Web gefallen zu sein. Ich interessiere mich hauptsächlich für Linux auf beiden Seiten (obwohl ich erwarten würde, dass ein Programm auf dieser Ebene auf andere Unices portierbar ist), aber wenn Sie ein Programm kennen, das zwischen QNX und VMS funktioniert, umso besser.
scp
. Ich habe mit ssh keepalives basierend auf Ihrem Beispiel für die Portweiterleitung geantwortet. Re: flockig Downstream - Hop, gibt es nicht viel Sie tun können, andere als eine SSH - Sitzung mit Keep Alive erstellen, die mehr tolerant (dh erlaubt mehr gefallen Keep Alive mit ServerAliveInterval > 0
und ServerAliveCountMax > 3
). NAT erfordert niedrigere Keepalives-Intervalle. Das Hauptproblem besteht darin, das Problem zu identifizieren und entsprechend anzupassen. Geben Sie die Optionen ein, .ssh/config
damit sie immer für Sie da sind
rocks
Implementierung zu hoffen ... obwohl dies offensichtlich ein echter Kludge ist