4 formas de averiguar qué puertos están escuchando en Linux


El estado de un puerto es abierto, filtrado, cerrado o sin filtrar. Se dice que un puerto está abierto si una aplicación en la máquina de destino está escuchando conexiones/paquetes en ese puerto.

En este artículo, explicaremos cuatro formas de verificar los puertos abiertos y también le mostraremos cómo encontrar qué aplicación está escuchando en qué puerto en Linux.

1. Uso del comando Netstat

Netstat es una herramienta ampliamente utilizada para consultar información sobre el subsistema de red de Linux. Puede usarlo para imprimir todos los puertos abiertos como este:

$ sudo netstat -ltup 

El indicador -l le dice a netstat que imprima todos los sockets de escucha, -t muestra todas las conexiones TCP, -u muestra todas las conexiones UDP y -p habilita la impresión del nombre de la aplicación/programa que se escucha en el puerto.

Para imprimir valores numéricos en lugar de nombres de servicios, agregue la marca -n .

$ sudo netstat -lntup

También puede usar el comando grep para averiguar qué aplicación está escuchando en un puerto en particular, por ejemplo.

$ sudo netstat -lntup | grep "nginx"

Alternativamente, puede especificar el puerto y buscar la aplicación vinculada, como se muestra.

$ sudo netstat -lntup | grep ":80"

2. Usando el comando ss

El comando ss es otra herramienta útil para mostrar información sobre sockets. Su salida es similar a la de netstat. El siguiente comando mostrará todos los puertos de escucha para conexiones TCP y UDP en valor numérico.

$ sudo ss -lntu

3. Uso del comando Nmap

Nmap es una potente y popular herramienta de exploración de redes y escáner de puertos. Para instalar nmap en su sistema, use su administrador de paquetes predeterminado como se muestra.

$ sudo apt install nmap  [On Debian/Ubuntu]
$ sudo yum install nmap  [On CentOS/RHEL]
$ sudo dnf install nmap  [On Fedora 22+]

Para escanear todos los puertos abiertos/de escucha en su sistema Linux, ejecute el siguiente comando (que debería tardar mucho en completarse).

$ sudo nmap -n -PN -sT -sU -p- localhost

4. Usando el comando lsof

La herramienta final que cubriremos para consultar puertos abiertos es que todo es un archivo en Unix/Linux, un archivo abierto puede ser una secuencia o un archivo de red.

Para enumerar todos los archivos de Internet y de red, use la opción -i . Tenga en cuenta que este comando muestra una combinación de nombres de servicios y puertos numéricos.

$ sudo lsof -i

Para encontrar qué aplicación está escuchando en un puerto en particular, ejecute lsof de esta forma.

$ sudo lsof -i :80

¡Eso es todo! En este artículo, hemos explicado cuatro formas de verificar los puertos abiertos en Linux. También mostramos cómo verificar qué procesos están vinculados a puertos particulares. Puede compartir sus pensamientos o hacer cualquier pregunta a través del formulario de comentarios a continuación.