3 formas de averiguar qué proceso escucha en un puerto en particular


Un puerto es una entidad lógica que representa un punto final de comunicación y está asociada con un proceso o servicio dado en un sistema operativo. En artículos anteriores, explicamos cómo averiguar que se puede acceder a los puertos remotos mediante el comando "nc".

En esta breve guía, mostraremos diferentes formas de encontrar el proceso/servicio escuchando en un puerto particular en Linux.

1. Usando el comando netstat

El comando netstat (estadísticas de red) se utiliza para mostrar información sobre conexiones de red, tablas de enrutamiento, estadísticas de interfaz y más. Está disponible en todos los sistemas operativos similares a Unix, incluido Linux y también en el sistema operativo Windows.

En caso de que no lo tenga instalado por defecto, use el siguiente comando para instalarlo.

$ sudo yum install net-tools	#RHEL/CentOS 
$ sudo apt install net-tools	#Debian/Ubuntu
$ sudo dnf install net-tools	#Fedora 22+

Una vez instalado, puede usarlo con el comando grep para encontrar el proceso o servicio que escucha en un puerto particular en Linux de la siguiente manera (especifique el puerto).

$ netstat -ltnp | grep -w ':80' 

En el comando anterior, las banderas.

  • l : le dice a netstat que solo muestre los sockets de escucha.
  • t : le indica que muestre las conexiones tcp.
  • n : le indica que muestre direcciones numéricas.
  • p : permite mostrar el ID del proceso y el nombre del proceso.
  • grep -w : muestra la coincidencia de la cadena exacta (: 80).

2. Usando el comando lsof

El comando lsof (LiSt Open Files) se usa para listar todos los archivos abiertos en un sistema Linux. Para instalarlo en su sistema, escriba el siguiente comando.

$ sudo yum install lsof	        #RHEL/CentOS 
$ sudo apt install lsof		#Debian/Ubuntu
$ sudo dnf install lsof		#Fedora 22+

Para encontrar el proceso/servicio que escucha en un puerto en particular, escriba (especifique el puerto).

$ lsof -i :80

3. Uso del comando fuser

El comando fuser muestra los PID de los procesos que utilizan los archivos o sistemas de archivos especificados en Linux.

Puede instalarlo de la siguiente manera:

$ sudo yum install psmisc	#RHEL/CentOS 
$ sudo apt install psmisc	#Debian/Ubuntu
$ sudo dnf install psmisc	#Fedora 22+

Puede encontrar el proceso/servicio escuchando en un puerto en particular ejecutando el comando a continuación (especifique el puerto).

$ fuser 80/tcp

Luego busque el nombre del proceso usando el número PID con el comando ps así.

$ ps -p 2053 -o comm=
$ ps -p 2381 -o comm=

También puede consultar estas guías útiles sobre procesos en Linux.

  1. Todo lo que necesita saber sobre los procesos en Linux [Guía completa]
  2. Limite el uso de CPU de un proceso en Linux con la herramienta CPULimit
  3. Cómo encontrar y eliminar procesos en ejecución en Linux
  4. Encuentre los principales procesos en ejecución por mayor uso de memoria y CPU en Linux

¡Eso es todo! ¿Conoce alguna otra forma de encontrar el proceso/servicio escuchando en un puerto en particular en Linux? Háganos saber a través del formulario de comentarios a continuación.