Linux: 3 comandos para identificar el proceso que escucha en un puerto determinado

3 comandos para identificar el proceso que escucha en un puerto determinado

En esta guía, aprenderemos 3 formas diferentes de identificar el proceso o servicio que escucha en un puerto particular en Linux. Este artículo se centra en el uso de tres herramientas: netstat, lsof y fusor.

Un puerto es un elemento lógico que representa un punto de comunicación en una máquina y este puerto está asociado a un proceso o servicio en el sistema operativo. Por ejemplo, el puerto "80" está asociado al protocolo "http", que corresponde a un servidor web, generalmente Apache o Nginx (y por tanto a este proceso). Sin más preámbulos, veamos varias formas de identificar el proceso asociado a un puerto.

1. Utilice el comando netstat (ss)

En Linux, el comando netstat (estadísticas de red) se utiliza para mostrar información sobre conexiones de red, tablas de encaminamiento, estadísticas de interfaz, etc. Está disponible en todos los sistemas operativos Unix, incluidos Linuxasí como en el sistema operativo Windows, ¡lo que lo convierte en un comando esencial!

Si no está instalado por defecto en su máquina, utilice el siguiente comando para instalarlo según su distribución:

# Ubuntu / Debian
sudo apt-get install net-tools
# Rocky Linux / Alma Linux / Fedora / CentOS / RHEL
sudo dnf install net-tools
# Arch Linux
sudo pacman -S netstat-nat [En Arch Linux]

Una vez instalado, puede utilizarlo en combinación con el comando grep para encontrar el proceso o servicio que escucha en un puerto determinado en Linux. Aquí tienes un ejemplo con una búsqueda en el puerto "80", pero puedes adaptarlo a tu número de puerto.

netstat -ltnp | grep -w ':80'

Para el puerto 22, que generalmente se asocia con SSH, esto da :

netstat -ltnp | grep -w ':22'

En el comando anterior, las opciones son las siguientes:

  • l – indique à netstat de n’afficher que les sockets en écoute.
  • t – lui indique d’afficher les connexions TCP.
  • n – lui indique d’afficher les adresses numériques.
  • p – permets d’afficher l’ID du processus et le nom du processus.
  • grep -w – affiche la correspondance de la chaîne exacte, ici « :80 ».

Aunque sigue funcionando, debe saber que el comando netstat está obsoleto y ha sido sustituido por el comando ss en Linux. Esta nueva orden puede utilizarse siguiendo el mismo principio que lo que estamos intentando hacer hoy.

En el ejemplo siguiente, el proceso "sshd" puede identificarse como asociado al puerto 22 en esta máquina.

2. Utilizar el comando lsof

El comando lsof (Lista de archivos abiertos) se utiliza para listar todos los archivos abiertos en un sistema Linux. Para instalarlo en su sistema, ejecute el siguiente comando correspondiente a su distribución (aunque puede estar integrado por defecto dependiendo del entorno):

# Ubuntu / Debian
sudo apt-get install lsof
# Rocky Linux / Alma Linux / Fedora / CentOS / RHEL
sudo yum install lsof
# Arch Linux
sudo pacman -S lsof [En Arch Linux]

Para identificar el proceso o servicio que escucha en un puerto determinado, utilice la sintaxis siguiente, adaptando el número de puerto.

lsof -i :22
Encontrar un puerto utilizando el comando lsof

3. Uso del comando fusor

El comando fuser muestra los PID de los procesos que utilizan los archivos especificados en Linux, para que pueda ver qué proceso/servicio está conectado a un puerto.

Puedes instalarlo de la siguiente manera:

# Ubuntu / Debian
sudo apt-get install psmisc
# Rocky Linux / Alma Linux / Fedora / CentOS / RHEL
sudo yum install psmisc
# Arch Linux
sudo pacman -S psmisc

Puede identificar el proceso/servicio que escucha en un puerto concreto ejecutando el comando que se indica a continuación. Aquí hay un ejemplo con una búsqueda en el puerto 22, en TCP.

fusor 22/tcp

A continuación, en la salida del comando, recupere el número PID del proceso y obtenga su nombre con el comando ps de la siguiente manera:

ps -p 618 -o comm=

He aquí un ejemplo:

Encontrar el puerto y el ID del proceso en Linux

4. Conclusión

Gracias a este artículo de la caja de tutoriales de informática, podrásIdentifique el proceso o servicio que se oculta tras un puerto de escucha en su máquina. Los comandos netstat (ss) y lsof son los más prácticos, aunque también se puede utilizar fuser, como acabamos de ver.

Recursos :

También te podría gustar...

Deja una respuesta

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