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


El estado de un puerto es abierto , filtrado , cerrado o sin filtro . Se dice que un puerto está abierto si una aplicación en la máquina de destino está escuchando las 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. Usando el Comando Netstat

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

$ sudo netstat -ltup 

La bandera -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 permite imprimir el nombre de la aplicación/programa escuchando en el puerto.

Para imprimir valores numéricos en lugar de nombres de servicio, 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 encontrar la aplicación vinculada, como se muestra.

$ sudo netstat -lntup | grep ":80"

2. Usando el comando ss

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

$ sudo ss -lntu

3. Usando el 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 tiempo en completarse).

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

4. Usando el comando lsof

La última herramienta que cubriremos para consultar puertos abiertos es el comando lsof, que se utiliza para listar archivos abiertos en Linux. Como 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 servicio y puertos numéricos.

$ sudo lsof -i

Para encontrar qué aplicación está escuchando en un puerto en particular, ejecute lsof en este formulario.

$ 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 opiniones o hacer cualquier pregunta a través del formulario de comentarios a continuación.