警告:偵聽連接埠「xxxx」的遠端連接埠轉送失敗

警告:偵聽連接埠「xxxx」的遠端連接埠轉送失敗

如何找到正在偵聽連接埠“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,那就忘記這一點吧);其次,您應該運行命令須藤,否則將無權顯示使用該連接埠的進程;第三,你絕對應該不是使用旗幟,因為這意味著查看 UDP 端口,而您在SSH,這絕對是使用 TCP,而不是 UDP。

答案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

相關內容