
如何找到正在偵聽連接埠“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