とても簡単です。これは以前に私に起こったことを知っています。 AUで適切な答えが見つかりませんでした。
ポートをバインドしてsshセッションを実行していました。
ssh -L 3000:<server_name>:22
接続が切れました。同じコマンドを使用して再接続しようとすると、次のエラーが表示されます。
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3000
ポートを再びバインドできるように、マシンのsshをリセットするにはどうすればよいですか?ローカルマシンのリセットは機能します。
そのポートを使用しているものをすべて殺すことはできませんか?
lsof -ti:5901 | xargs kill -9
lsof -ti:5901
は、ポート5901
を使用しているものを見つけます。
kill -9
にすべてを渡して、ポート5901
を使用していたものをすべて削除します。
再度開きたいポートに置き換えます。
ローカルポート3000にまだ何かが接続されていると思います。
あなたはそれを見つけることができます
netstat -tulpn | grep 3000
そしてそれを処分します。たとえば、私のマシンでは:
[:~] % netstat -tulpn | grep 5900
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 2547/vino-server
tcp6 0 0 :::5900 :::* LISTEN 2547/vino-server
ポート5900(vncサーバー)で待機および接続されているプロセスを正しく識別します。
別の便利なコマンドは
fuser 3000/tcp
...ポートを開いているプロセスを所有していない場合は、それらすべてをSudo
で実行する必要があります。
次の操作を行うことで、再作成して修正することができました。
ps -ae
)sh
(kill <proc_number>
)というプロセスを強制終了します次に、ssh接続を再度開きます
あるいは、私は以下で成功しました:
killall ssh
ローカルマシンのターミナルで
もう1つの候補:ss
次のように使用できます。ss -ltp | grep 3000
は、ポート3000でリッスンしているプログラムを検索します