Ihr Kommentar zum "Stalling" eines Reverse-SSH-Tunnels nach einer Weile ist wahrscheinlich darauf zurückzuführen, dass ein NAT-Router versucht, die Tabelle der offenen Verbindungen zu minimieren, und sollte mithilfe der Anweisung "ServerAliveInterval" behoben werden, wie in den OpenSSH-FAQ erläutert .
In einigen Fällen schränkt der Router / die Firewall Ihre Sitzungen ohnehin aggressiv ein (schlecht!), Wenn die Verbindung für längere Zeit nicht genutzt wird, wodurch Sie gezwungen werden, das ServerAliveInterval zu verringern (siehe Hinweis ).
Der Trick in diesem Fall besteht darin, eine Art Wrapper zu verwenden, der den ssh-Daemon überwacht und bei Bedarf neu startet. Autossh erledigt genau das, um Ihr Problem sofort zu lösen!
Hinweis : Dies ist etwas, das Sie einschränken möchten, da eine Erhöhung der Häufigkeit von Keepalive-Paketen auf einer instabilen Verbindung das Risiko von Unterbrechungen erhöht. Die als x Keepalive-Antwortpakete definierten TCP-ACK-Pakete sind in Wirklichkeit nacheinander fehlgeschlagen.
Wenn Ihr Link zuverlässig ist, können Sie diese Direktive nach Belieben reduzieren (Vorsicht, Sie benötigen kein Keepalive-Paket pro Sekunde), um eine schnellere Trennung vom Server zu erkennen.
PS: Um meinen Kommentar zu der Frage zu erläutern, ich bin ein bisschen abgestoßen von der Idee, Ping als Bedingung für den Neustart eines Dienstes zu verwenden und ihn auf einem Server zu verwenden, den Sie nicht besitzen und der daher möglicherweise nicht für die Verfügbarkeit garantieren kann Morgen wird Google entscheiden, nicht mehr auf Echo-Pings zu reagieren, und Ihr Server wird auf unbestimmte Zeit neu gestartet.
Ein weiteres Problem ist, was Sie als "Internetverbindung" definieren, per Definition eine große Sammlung von Netzwerken, und das Testen eines einzelnen Endpunkts kann zu klein sein, um eine Vorstellung von Ihrer Konnektivität im Netzwerk zu bekommen. Aus diesem Grund werden bei Überwachungsdiensten im Web verschiedene Methoden verwendet von Links zum Verfolgen der Antwortzeit / -verfügbarkeit / etc ...