
Wie finde ich den Prozess, der auf Port „xxxx“ lauscht, und beende ihn?
Ich habe es RemoteForward 2022 remote.host:22
in meiner .ssh/config-Datei.
Immer wenn ich mich per SSH mit einem Remote-Server in Verbindung setze, ssh staging-environment
erhalte ich diese Fehlermeldung:Warning: remote port forwarding failed for listen port 2022
Ich muss diesen Port für die Portweiterleitung geöffnet haben.
Wie finde ich den Prozess, der auf Port 2022 lauscht, und beende ihn?
AKTUALISIEREN:
Ausgabe vonnetstat -tulpn
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:83 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:84 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:85 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:86 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:2022 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:2023 0.0.0.0:* LISTEN -
Antwort1
Der richtige Befehl, um zu sehen, wer Port 2022 verwendet, lautet
sudo ss -ntp
Erstens sollten Sie nestat nicht verwenden, da dieses mittlerweile veraltet ist (wenn Sie Linux verwenden, was ich glaube, aber wenn Sie Unix verwenden, vergessen Sie es einfach); zweitens sollten Sie den Befehl wie folgt ausführen:sudo, sonst haben Sie nicht die Berechtigung, die Prozesse anzuzeigen, die den Port verwenden; drittens sollten Sie unbedingtnichtbenutze die FlaggeSie, weil dies bedeutet, dass Sie die UDP-Ports überprüfen müssen, während Sie einen Fehler erhalten beissh, das mit Sicherheit TCP und nicht UDP verwendet.
Antwort2
Sie können hierfür mehrere Methoden verwenden. netstat ist ein Befehlszeilentool, das das gewünschte Ergebnis liefern sollte. Ein Befehlszeilenbeispiel wäre etwa:
# netstat -tulpn
Dadurch werden die Ports auf Ihrem System und die darauf lauschende Anwendung gelöscht.
Hoffe das hilft
Antwort3
Ich umgehe diesen Fehler derzeit, indem ich mich bei meinem Server anmelde und ps -ef | grep ssh
alle von meinem Benutzer gestarteten Sitzungen beende.
Antwort4
Ein kurzer Einzeiler genügt
for pid in `netstat -tunpl | awk '{print $4, $7}' | grep ':2022' | awk '{print $2}' | cut -d '/' -f1`; do kill -9 $pid; done