
ポート 'xxxx' でリッスンしているプロセスを見つけて終了するにはどうすればよいですか?
RemoteForward 2022 remote.host:22
.ssh/config ファイルにあります。
リモート サーバーに ssh で接続するたびに、ssh staging-environment
次のエラーが発生します。Warning: remote port forwarding failed for listen port 2022
ポート転送のためにこのポートを開く必要があります。
ポート 2022 でリッスンしているプロセスを見つけて終了するにはどうすればよいですか?
アップデート:
出力netstat -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 -
答え1
ポート2022を使用しているユーザーを確認する正しいコマンドは
sudo ss -ntp
まず、nestatは使用すべきではありません。これは今では時代遅れです(Linuxを使用している場合はそうだと思いますが、Unixを使用している場合はこれを忘れてください)。次に、コマンドを次のように実行する必要があります。須藤そうでなければ、ポートを使用しているプロセスを表示する権限がありません。3番目に、必ずない旗を使うあなたこれはUDPポートを確認することを意味しますが、sshこれは間違いなく、UDP ではなく TCP を使用しています。
答え2
これを行うには、いくつかの方法があります。netstat は、必要なことを実行するコマンド ライン ツールです。コマンド ラインの例は次のようになります。
# netstat -tulpn
これにより、システム上のポートと、それをリッスンしているアプリケーションがわかります。
お役に立てれば
答え3
現在このエラーを回避する方法は、サーバーにログインし、ps -ef | grep ssh
ユーザーによって生成されたすべてのセッションを終了することです。
答え4
簡単な一言で十分です
for pid in `netstat -tunpl | awk '{print $4, $7}' | grep ':2022' | awk '{print $2}' | cut -d '/' -f1`; do kill -9 $pid; done