Advertencia: el reenvío de puerto remoto falló para el puerto de escucha 'xxxx'

Advertencia: el reenvío de puerto remoto falló para el puerto de escucha 'xxxx'

¿Cómo encuentro el proceso que está escuchando en el puerto 'xxxx' y lo elimino?

Tengo RemoteForward 2022 remote.host:22en mi archivo .ssh/config.

Cada vez que ingreso por ssh a un servidor remoto: ssh staging-environmentaparece este error:Warning: remote port forwarding failed for listen port 2022

Necesito este puerto abierto para el reenvío de puertos.

¿Cómo encuentro el proceso que está escuchando en el puerto 2022 y lo elimino?

ACTUALIZAR:

Salida denetstat -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      -

Respuesta1

El comando correcto para ver quién está usando el puerto 2022 es

  sudo ss -ntp

En primer lugar, no deberías usar Nestat, que ya está obsoleto (si estás en Linux, como creo, pero si estás en Unix, olvídate de esto); segundo, debes ejecutar el comando comosudo, de lo contrario no tendrá autoridad para mostrar los procesos usando el puerto; tercero, definitivamente deberíasnousa la banderatu, porque esto significa mirar los puertos UDP, mientras recibe un error enssh, que definitivamente usa TCP, no UDP.

Respuesta2

Puede utilizar un par de métodos para hacer esto. netstat es una herramienta de línea de comandos que debería hacer lo que quieras. Un ejemplo de línea de comando sería algo como:

# netstat -tulpn

Esto determinará los puertos de su sistema y qué aplicación lo está escuchando.

Espero que esto ayude

Respuesta3

La forma en que actualmente estoy solucionando este error es iniciar sesión en mi servidor y ps -ef | grep ssheliminar todas las sesiones generadas por mi usuario.

Respuesta4

Sólo una frase rápida será suficiente.

for pid in `netstat -tunpl | awk '{print $4, $7}' | grep ':2022' | awk '{print $2}' | cut -d '/' -f1`; do kill -9 $pid; done

información relacionada