Ich versuche, einen SSH-Tunnel von zu Hause aus über einen Computer an der Universität zu verwenden, damit ich auf einige Artikel zugreifen kann.
Auf beiden Computern wird Ubuntu 11.04 ausgeführt. Die Maschine der Universität läuft openssh-server
.
Zu Hause habe ich diese Anweisungen befolgt:
Öffnen Sie eine SSH-Sitzung:
ssh -D 9999 -C user@my_addr.com
Dann habe ich Firefox für die Benutzer-SOCKS5-Verbindung am Port
9999
von konfiguriertlocalhost
.
Dies funktioniert seit einiger Zeit. Dann hängt plötzlich die Verbindung und das Terminal friert einfach ein.
Was fehlt mir hier?
ssh
ssh-tunneling
lcguida
quelle
quelle
-v
ausführen und sehen, was ausgedruckt wird, wenn die Verbindung unterbrochen wird.Antworten:
Ich schlage auch vor, autossh mit while-Skript zu verwenden, zum Beispiel:
Ich habe das in crontab:
Während wird immer versucht, eine Verbindung herzustellen und die Verbindung herzustellen, einen Sockenport zu erstellen und den Tintenfischport zu formulieren. Dies hat sich für mich als sehr stabil erwiesen.
quelle
Sie können versuchen, die Variablen ClientAliveInterval und ClientAliveCountMax in Ihrer sshd-Konfigurationsdatei auf die für Sie geeigneten Werte festzulegen.
Aus dem Handbuch:
quelle
Versuchen Sie es
autossh
. Es erkennt blockierte Verbindungen und stellt die Verbindung automatisch wieder her. Ich habe es in der Vergangenheit in einer ähnlichen Situation benutzt und es hat gut für mich funktioniert.BEARBEITEN
Früher habe ich es ausgeführt
screen
, was zwei Vorteile hat: im Hintergrund ausführen (möglich) und später zur Sitzung zurückkehren, um den Status zu überprüfen und gegebenenfalls zu debuggen, wie folgt:Dies startet den Bildschirm im Hintergrund. Wenn Sie den
autossh
Prozess überprüfen möchten , können Sie erneut eine Verbindung zu dieserscreen
Sitzung mit herstellenscreen -R my-autossh-tunnel
Ich habe aus Bequemlichkeitsgründen eine leere Passphrase verwendet, aber für zusätzliche Sicherheit habe ich die folgenden Optionen in den autorisierten Schlüsseln am Remote-Ende verwendet:
Auf diese Weise kann der Tunnel mit dem Schlüssel eingerichtet werden, und die Shell kann nicht für andere Zwecke missbraucht werden.
quelle
autossh
innerhalb einerscreen
Sitzung. Es ist besser als der Hintergrund, da ich ein spezielles "Fenster" dafür habe, von dem ich mich trennen und später wieder anhängen kann, um den Status zu überprüfen.Ich hatte das gleiche Problem mit der Verwendung von VNC über SSH-Tunnel. Die Einfrierungen traten häufig auf, sowohl bei Kitt (Windows) als auch bei OpenSh (Linux).
Mit Putty habe ich das Verbindungsprofil kopiert und einige Optionen geändert, um zu sehen, was passiert ist und nicht mehr einzufrieren! Die Änderungen im Kitt sind:
Verbindung: Deaktivieren Sie "Nagles Algorithmus deaktivieren" (ich habe "TCP-Keepalives aktivieren" aktiviert und "Sekunden zwischen Keepalives" bei 30 aktiviert). Wählen Sie "Internetprotokollversion" IPv4 (anstelle von "Auto").
Verbindung - SSH: PRÜFEN Sie "Komprimierung aktivieren"
Ich bin mir nicht sicher, welche Option den Trick gemacht hat, aber ich bin jetzt ein glücklicher Camper. Ich kann es nicht zum Einfrieren bringen, aber als ich zur Überprüfung zum alten Profil zurückgeschaltet habe, ist es innerhalb weniger Sekunden eingefroren.
Das Einfrieren trat hauptsächlich beim Senden großer Updates über VNC auf, z. B. beim Scrollen eines Fensters. Möglicherweise hat der deaktivierte Nagle-Algorithmus den Server mit zu vielen kleinen Paketen überflutet, oder möglicherweise, weil IPv6 auf dem Remote-VNC-Server deaktiviert wurde, jedoch nicht auf den anderen Hosts. Es würde einige weitere Tests mit den einzelnen Optionen erfordern, um dies herauszufinden.
quelle