Encuentra qué proceso está escuchando en un puerto

Encuentra qué proceso está escuchando en un puerto

Comprender qué proceso está escuchando en un puerto particular de su computadora puede no ser algo que crea que necesita, pero especialmente cuando ejecuta software de red o desarrollo web, eventualmente descubrirá que se usa un puerto, pero no es así. no sé por qué.

No necesariamente necesita conocer todos los entresijos de los puertos y procesos para comprender esto, pero una cosa que podría ser útil que debe saber es que solo un proceso puede usar un puerto a la vez, que debe reservarse. Una vez que se reserva el puerto, ningún otro programa/proceso puede utilizarlo. Si un puerto está en uso y su programa intenta abrirlo, obtendrá un error.

Ahora veamos cómo determinar qué proceso está escuchando en qué puerto.

Nota: En este artículo, nos centraremos en encontrar el proceso que está escuchando en un puerto en sistemas basados ​​en Unix, aunque algunas herramientas, como netstattambién están disponibles para sistemas Windows.

Varios métodos

Determinar qué proceso está escuchando en un puerto específico no es una solución única para todos, ya que depende mucho del sistema operativo. Cada sistema operativo (Windows, Linux o MacOS) suele tener sus propias herramientas para ayudarte con algo como esto. Aunque cada herramienta tiene el mismo propósito, todas tienen su propia funcionalidad y sintaxis de comandos.

En los sistemas basados ​​en Unix, normalmente usamos herramientas como netstat, lsofY ss. netstat es una poderosa herramienta de línea de comandos que viene preinstalada con la mayoría de las distribuciones de Linux y proporciona información sobre las conexiones de red. EL lsof El comando es otra herramienta poderosa que significa "lista de archivos abiertos". Como puedes imaginar, da información sobre archivos abiertos por procesos. Y ss es un reemplazo moderno para netstat es más rápido y proporciona aún más información.

Para los usuarios de MacOS, funcionarán muchos de los mismos comandos anteriores, además de la Utilidad de red para versiones anteriores de MacOS, que era una buena herramienta integrada que proporcionaba una buena cantidad de información sobre las actividades de la red.

En las siguientes secciones, veremos las herramientas de línea de comandos y cómo usarlas.

Herramientas

Aunque probablemente haya otros, netstat, lsofY ss son las tres herramientas en las que nos vamos a centrar. Con estos, podrá ver qué proceso está escuchando en qué puerto.

El primero es netstat. Puede usarlo para ver conexiones de red activas, tablas de enrutamiento y otras estadísticas de interfaz de red y protocolo de red. Es un excelente punto de partida para comprender lo que sucede en su red.

Aquí se explica cómo usarlo para encontrar un proceso escuchando en un puerto específico:

$ netstat -tuln | grep :<your-port-number>

Nota: Reemplazar <your-port-number> con el número de puerto que le interesa. Esto le mostrará la identificación del proceso (PID) y el nombre del proceso que está escuchando en ese puerto.

Si buscáramos el puerto 80, veríamos algo como esto:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::80                   :::*                    LISTEN      -

Entonces usaremos lsof. A pesar de su discreto nombre, lsof es una herramienta muy útil. En Unix/Linux, todo es un archivo (¡incluso los sockets de red!), y lsof puede enumerarlo todo para usted. Para averiguar qué proceso está escuchando en un puerto en particular, lo usaría de la siguiente manera:

$ sudo lsof -i :<your-port-number>

Aquí hay una salida de ejemplo para el puerto 22:

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1234   root    3u  IPv4  12345      0t0  TCP *:ssh (LISTEN)

Finalmente, tenemos ssel chico nuevo en el bloque. ss pretende ser un reemplazo más rápido e informativo para netstat. Como netstat, puede mostrar estadísticas de red más detalladas. Usar ss para identificar el proceso que escucha en un puerto específico, puede usar el siguiente comando:

$ ss -ltpn 'sport = :<your-port-number>'

Usando el puerto 5432, podríamos obtener un resultado como este:

State      Recv-Q Send-Q  Local Address:Port   Peer Address:Port              
LISTEN     0      128             *:5432             *:*        users:(("postgres",pid=1234,fd=5))

Nuevamente, no olvides reemplazar <your-port-number> con su número de puerto real.

Conclusión

Ya sea que sea un ingeniero de redes, un desarrollador o un administrador de sistemas, puede ser importante comprender qué proceso está escuchando en un puerto en particular. No solo lo ayuda a rastrear la actividad de la red, sino que también lo ayuda a solucionar problemas de red, configurar reglas de firewall y ejecutar aplicaciones locales.

En este artículo, hemos visto cómo usar herramientas de línea de comandos como netstat, lsofY ss. Aunque cada una de estas herramientas tiene sus propias características y sintaxis únicas, cada una puede usarse para encontrar qué proceso ha reservado un puerto específico.

Si quieres conocer otros artículos parecidos a Encuentra qué proceso está escuchando en un puerto puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas