Búsqueda de sitios web

Tres formas de encontrar qué proceso de Linux escucha en un puerto


Un puerto es una entidad lógica que representa un punto final de comunicación y está asociada con un proceso o servicio determinado en un sistema operativo. En artículos anteriores, explicamos cómo encontrar la lista de todos los puertos abiertos en Linux y cómo verificar si se puede acceder a los puertos remotos usando el comando Netcat.

En esta breve guía, mostraremos diferentes formas de encontrar el proceso/servicio que escucha 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 tipo Unix, incluido Linux, y también en el sistema operativo Windows.

En caso de que no lo tengas instalado de forma predeterminada, utiliza el siguiente comando para instalarlo.

sudo apt-get install net-tools    [On Debian/Ubuntu & Mint] 
sudo dnf install net-tools        [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
pacman -S netstat-nat             [On Arch Linux]
emerge sys-apps/net-tools         [On Gentoo]
sudo dnf install net-tools        [On Fedora]
sudo zypper install net-tools     [On openSUSE]

Una vez instalado, puede usarlo con el comando grep para encontrar el proceso o servicio escuchando 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 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).

Nota: El comando netstat está obsoleto y reemplazado por el comando ss moderno en Linux.

2. Usando el comando lsof

El comando lsof (Listar archivos abiertos) se utiliza para enumerar todos los archivos abiertos en un sistema Linux.

Para instalarlo en su sistema, escriba el siguiente comando.

sudo apt-get install lsof     [On Debian, Ubuntu and Mint]
sudo yum install lsof         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/lsof  [On Gentoo Linux]
sudo pacman -S lsof           [On Arch Linux]
sudo zypper install lsof      [On OpenSUSE]    

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

lsof -i :80

3. Usando el comando fusor

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

Puedes instalarlo de la siguiente manera:

sudo apt-get install psmisc     [On Debian, Ubuntu and Mint]
sudo yum install psmisc         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/psmisc  [On Gentoo Linux]
sudo pacman -S psmisc           [On Arch Linux]
sudo zypper install psmisc      [On OpenSUSE]    

Puede encontrar el proceso/servicio escuchando en un puerto en 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 útiles guías sobre procesos en Linux.

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