警告:监听端口‘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 端口,而你正在收到错误远程控制,它肯定使用的是 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

相关内容