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


Un puerto es una entidad lógica que representa un punto final de comunicación y se asocia con un proceso o servicio dado en un sistema operativo. En artículos anteriores, explicamos cómo encontrar una lista de todos los puertos abiertos en Linux y cómo verificar si los puertos remotos son accesibles mediante el comando ‘nc’

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

1. Usando el comando netstat

El comando netstat (estadísticas de red) se usa 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 – tells netstat to only show listening sockets.
  • t – tells it to display tcp connections.
  • n – instructs it show numerical addresses.
  • p – enables showing of the process ID and the process name.
  • grep -w – shows matching of exact string (:80).

2. Usando el comando lsof

El comando lsof (LiSt Open Files) se usa para enumerar todos los archivos abiertos en un sistema Linux. Para instalarlo en su sistema, escriba el comando a continuación.

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

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

$ lsof -i :80

3. Usando el comando fuser

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

Puedes 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 la escucha del proceso/servicio en un puerto particular ejecutando el siguiente comando (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. All You Need To Know About Processes in Linux [Comprehensive Guide]
  2. Limit CPU Usage of a Process in Linux with CPULimit Tool
  3. How to Find and Kill Running Processes in Linux
  4. Find Top Running Processes by Highest Memory and CPU Usage in Linux

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