Früher habe ich die ssh -L 10002:192.168.0.30:10002 192.168.1.135
Portweiterleitung eingerichtet, jetzt muss ich sie entfernen.
Wie mache ich das?
ssh
port-forwarding
user16654
quelle
quelle
Warning: remote port forwarding failed for listen port
Nachricht abgerufen wird.Antworten:
Wenn Sie Linux verwenden, können Sie den Prozess abbrechen, indem Sie:
und dann verwenden
Den Prozess abbrechen.
Wenn der Befehl kill nicht erfolgreich ist, können Sie es versuchen
quelle
kill -9
bis Sie gerade versucht habenkill
. Viele Prozesse verfügen über Signal-Handler, die den Ressourcenverbrauch bereinigen, Verbindungen sauber schließen und andere Aufgaben vor dem Herunterfahren ausführen. Wenn Sie mit -9 beenden, wird der Vorgang sofort abgebrochen, ohne dass die Bereinigung durchgeführt wird. Töten ohne -9 wird die meiste Zeit arbeiten.kill -9
ohne Grund ist wie mit einer Schrotflinte eine Mücke zu töten. :)pgrep ssh | xargs kill
. Verwenden Sie nicht-9
für nichts in der Tatssh
Befehl haben oder dass allessh
Befehle, die Sie ausführen, in Ordnung sind, um zu töten. Dies ist kaum eine gute allgemeine Annahme.ssh
ganze Zeit mit mehreren Instanzen auf mehreren Remote-Servern, einige davon ohne meine direkte aktive Beteiligung. Beispielsweise öffnet der Emacs Tramp-Modus einessh
Verbindung hinter den Kulissen, wenn ich einen Remote-Puffer besuche. Einige Leute benutzen Userspace-Dateisysteme, die etwas Ähnliches tun. Es ist überhaupt nicht ungewöhnlich. In der Tat würde ich davon ausgehen, dass ein einzelner Benutzer, eine einzelnessh
Instanz, ein Anwendungsfall für einen Rand der Minderheit ist. Wenn es für Sie funktioniert, ist es gut für Sie, aber es ist kein guter allgemeiner Rat.Wenn Sie ssh-Multiplexing verwenden, ist das Beenden des ssh-Prozesses häufig unerwünscht (es beendet alle offenen Verbindungen mit diesem Host), und Sie können nicht einfach auf das Escape zugreifen, da "Escape für Multiplexing-Sitzungen nicht verfügbar". Der richtige Weg ist dann, das Analogon des Weiterleitungsbefehls auszuführen, den Sie abbrechen möchten, aber hinzuzufügen
-O cancel
. Zum Beispiel:Dadurch wird die Portweiterleitung deaktiviert, ohne die Sitzung zu beenden. Auch dies funktioniert nur, wenn für die Verbindung zu 192.168.1.135 das ssh-Multiplexing verwendet wird .
quelle
ssh -O exit 192.168.1.135
.Sie können die "Escape-Taste" (normalerweise ~) gefolgt von C verwenden, um einen Cli für Ihre Verbindung zu erhalten. Von dort aus können Sie Tunnel entfernen, ohne die Verbindung zu trennen.
quelle
So brechen Sie einen weitergeleiteten Port in einer bereits laufenden SSH-Sitzung ab:
-KL port
Das solltest du sehen:
quelle
Sie können eine interaktive Konsole durch Eingabe von ~C(Großbuchstabe "C") aufrufen . Auf diese Weise können Sie (unter anderem) dynamisch Portweiterleitungen hinzufügen und entfernen.
Diese Reihenfolge muss unmittelbar nach einem Wagenrücklauf / Zeilenumbruch erfolgen. Geben Sie im Zweifelsfall einfach Enter~C(nacheinander) ein.
Wenn Sie die Zeichen nicht auf der Konsole sehen, machen Sie es richtig :)
Sie sollten jetzt eine
ssh>
Eingabeaufforderung sehen.Um den Port zu entfernen, geben Sie einfach
-KL 10002
gefolgt von ein Enter(wo10002
ist Ihr weitergeleiteter Port).Das Inverse - Hinzufügen eines neuen Forward - kann folgendermaßen erfolgen (von Anfang bis Ende):
Enter~C
Enter
quelle
~C escape not available to multiplexed sessions
. Wenn dies der Fall ist, lesen Sie die ausgezeichnete Antwort von a3nm.