Kiedyś ssh -L 10002:192.168.0.30:10002 192.168.1.135
ustanawiałem przekierowanie portów, ale teraz muszę go usunąć.
Jak mam to zrobic?
ssh
port-forwarding
użytkownik16654
źródło
źródło
Warning: remote port forwarding failed for listen port
komunikat.Odpowiedzi:
Jeśli używasz Linuksa, możesz zabić proces poprzez:
a następnie użyj
Aby zabić proces.
Jeśli polecenie zabicia nie powiedzie się, możesz spróbować
źródło
kill -9
dopóki nie spróbujeszkill
. Wiele procesów będzie miało procedury obsługi sygnałów, które oczyszczą ich wykorzystanie zasobów, wyczyszczą połączenia i wykonają inne zadania przed zamknięciem. Jeśli zabijesz za pomocą -9, proces umiera natychmiast, bez czyszczenia. Zabijanie bez -9 będzie działać przez większość czasu.kill -9
bez powodu przypomina strzelanie do komara. :)pgrep ssh | xargs kill
. Nie używaj-9
za darmossh
polecenie lub że wszystkie uruchomionessh
polecenia są w porządku do zabicia. To nie jest dobre ogólne założenie.ssh
instancjami na wielu zdalnych serwerach przez cały czas, niektóre z nich bez mojego bezpośredniego aktywnego udziału. Na przykład tryb Trac Emacsa otwierassh
połączenie za kulisami, gdy odwiedzam zdalny bufor. Niektóre osoby używają systemów plików przestrzeni użytkownika, które robią coś podobnego. To wcale nie jest rzadkie. W rzeczywistości zakładałbym, że pojedynczy użytkownik, pojedynczassh
instancja jest przypadkiem marginalnym. Jeśli to dla ciebie działa, to dobrze dla ciebie, ale nie jest to dobra ogólna rada.Podczas korzystania z multipleksowania ssh zabicie procesu ssh jest często niepożądane (zabija wszystkie otwarte połączenia z tym hostem) i nie można łatwo uzyskać dostępu do escape, ponieważ „escape niedostępny dla sesji multipleksowanych”. Właściwy sposób to uruchomienie analogu polecenia przekazywania, które chcesz anulować, ale dodając
-O cancel
. Na przykład:Spowoduje to wyłączenie przekierowania portów bez przerywania sesji. Ponownie zadziała to tylko wtedy, gdy do połączenia z 192.168.1.135 jest używane multipleksowanie ssh .
źródło
ssh -O exit 192.168.1.135
.Jak anulować przekierowany port w już uruchomionej sesji SSH:
-KL port
Powinieneś to zobaczyć:
źródło
Możesz użyć „klawisza Escape” (zwykle ~), a następnie C, aby uzyskać cli do połączenia. Możesz stamtąd usunąć tunele bez zrywania połączenia.
źródło
Możesz wejść do interaktywnej konsoli, wpisując ~C(wielkie „C”). Pozwala to dynamicznie dodawać i usuwać przekierowania portów (między innymi).
Ta sekwencja musi przyjść zaraz po powrocie karetki / nowej linii. W razie wątpliwości wystarczy wpisać Enter~C(w sekwencji).
Jeśli nie widzisz postaci pojawiających się na konsoli, robisz to dobrze :)
Powinieneś teraz zobaczyć
ssh>
monit.Aby usunąć port, po prostu wpisz,
-KL 10002
a następnie Enter(gdzie10002
jest Twój przekierowany port).Odwrotność - dodawanie nowego do przodu - można wykonać w następujący sposób (od początku do końca):
Enter~C
Enter
źródło
~C escape not available to multiplexed sessions
. W takim przypadku zobacz doskonałą odpowiedź a3nm.