Cómo verificar el servicio que se ejecuta en un puerto específico en Linux

Ocasionalmente, es posible que necesitemos verificar el número de puerto predeterminado de servicios / protocolos específicos o servicios que escuchan en ciertos puertos en Linux. Hay varias herramientas de línea de comandos disponibles para ayudarlo a buscar nombres y números de puertos en su sistema Linux.

1) Usando el comando Netstat

El comando Nestat es una herramienta que se utiliza para verificar las conexiones de red activas, las estadísticas de la interfaz y la tabla de enrutamiento. Está disponible en todas las distribuciones de Linux. Sin embargo, para instalaciones mínimas, puede instalarlo ejecutando

Para RedHat y CentOS

sudo yum install net-tools

Para Fedora 22 y después

dnf install net-tools

Para Debian / Ubuntu

sudo apt-get install net-tools

Uso

Para mostrar información detallada de los puntos finales TCP y UDP, ejecute

netstat -pnltu

Producción

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      13878/mysqld
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      21487/memcached
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1208/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1032/master
tcp6       0      0 :::80                   :::*                    LISTEN      13625/httpd
tcp6       0      0 :::22                   :::*                    LISTEN      1208/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1032/master
udp        0      0 0.0.0.0:64561           0.0.0.0:*                           569/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           569/dhclient
udp        0      0 127.0.0.1:323           0.0.0.0:*                           525/chronyd
udp6       0      0 :::11200                :::*                                569/dhclient
udp6       0      0 ::1:323                 :::*                                525/chronyd
  • -p flag Da el ID del proceso y el nombre del proceso.
  • -n bandera muestra direcciones numéricas
  • -l indicador muestra enchufes de escucha
  • -t bandera muestra conexiones TCP
  • -u bandera muestra conexiones UDP

Para encontrar un servicio que escuche la ejecución de un puerto específico

netstat -pnltu | grep -i "80"

Producción

tcp6       0      0 :::80                   :::*                    LISTEN      13625/httpd

Del mismo modo, para encontrar qué puerto está escuchando un servicio en ejecución

netstat -pnltu | grep -i "httpd"

Producción

tcp6       0      0 :::80                   :::*                    LISTEN      13625/httpd

2) Uso del comando fuser

El comando fuser se utiliza para mostrar los ID de proceso de los servicios que se ejecutan en puertos específicos.
No está instalado de forma predeterminada en la mayoría de los sistemas. Para instalarlo ejecuta

Para RedHat y CentOS

yum install psmisc

Para Fedoraa 22 y posteriores

dnf install psmisc

Para Debian y Ubuntu

apt-get install psmisc

Para example, para encontrar los PID que se ejecutan en el puerto 80,

fuser 80/tcp

Producción

80/tcp:              13625 18390 18391 18392 18393 18394 18442 19926 24386

Para buscar el nombre del proceso mediante la ejecución del proceso PID

ps -p 13625 -o comm=

Producción

httpd

3) Usando el comando lsof

El comando lsof se puede utilizar para examinar puntos finales TCP y UDP activos. Para instalar la herramienta de línea de comandos

Para RedHat y CentOS

yum install lsof

Para Fedoraa 22 y posteriores

dnf install lsof

Para Debian y Ubuntu

apt-get install lsof

Para mostrar puntos finales TCP y UDP activos con lsof run,

lsof -i

Producción

COMMAND     PID      USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
chronyd     525    chrony    1u  IPv4    14681      0t0  UDP localhost:323
chronyd     525    chrony    2u  IPv6    14682      0t0  UDP localhost:323
dhclient    569      root    6u  IPv4    15731      0t0  UDP *:bootpc
dhclient    569      root   20u  IPv4    15720      0t0  UDP *:64561
dhclient    569      root   21u  IPv6    15721      0t0  UDP *:11200
master     1032      root   13u  IPv4    17345      0t0  TCP localhost:smtp (LISTEN)
master     1032      root   14u  IPv6    17346      0t0  TCP localhost:smtp (LISTEN)
sshd       1208      root    3u  IPv4    18639      0t0  TCP *:ssh (LISTEN)
sshd       1208      root    4u  IPv6    18641      0t0  TCP *:ssh (LISTEN)
sshd       7749      root    3u  IPv4 11570561      0t0  TCP ip-172-31-16-136.us-east-2.compute.internal:ssh->197.232.61.206:51088 (ESTABLISHED)
sshd       7752  ec2-user    3u  IPv4 11570561      0t0  TCP ip-172-31-16-136.us-east-2.compute.internal:ssh->197.232.61.206:51088 (ESTABLISHED)
httpd     13625      root    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
mysqld    13878     mysql   14u  IPv4  7277635      0t0  TCP *:mysql (LISTEN)
httpd     18390    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
httpd     18391    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
httpd     18392    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
httpd     18393    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
httpd     18394    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
httpd     18442    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
httpd     19926    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)
memcached 21487 memcached   26u  IPv4  6250352      0t0  TCP localhost:memcache (LISTEN)
httpd     24386    apache    4u  IPv6  7277180      0t0  TCP *:http (LISTEN)

Para mostrar los procesos / servicios que escuchan en un puerto en particular, escriba el comando a continuación mientras especifica el puerto

lsof -i :80
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd   13625   root    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   18390 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   18391 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   18392 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   18393 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   18394 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   18442 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   19926 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)
httpd   24386 apache    4u  IPv6 7277180      0t0  TCP *:http (LISTEN)

4) Uso de la herramienta Whatportis

Whatportis es una herramienta de línea de comandos que le permite buscar nombres de puertos y números de servicios que se ejecutan en su sistema. La herramienta obtiene la lista de puertos TCP / UDP oficiales de iana sitio web. Como resultado, se crea un script privado para buscar regularmente el sitio web y actualizar el ports.json file Para usar la herramienta de línea de comandos, primero debemos instalarla en nuestro sistema.
Primero, necesitamos instalar python-pip

Para Ubuntu 16 y posteriores y sistemas Debian

apt install python-pip

Para sistemas RHEL y CentOS

Instalar el repositorio de EPEL

yum install epel-release

A continuación, instale las herramientas de configuración de Python

sudo yum install python34-setuptools

Instalar pip

sudo easy_install-3.4 pip

Finalmente, instale whatportis usando pip

pip install whatportis

Uso de Whatportis

Para buscar un puerto asociado con un nombre de servicio, ejecute

whatportis service-name

Para example

whatportis ssh

Por el contrario, puede buscar el servicio asociado con el número de puerto

whatportis 22

También puede buscar un patrón sin saber el nombre exacto ejecutando

whatportis ssh --like

También puede mostrar los resultados como salida JSON

whatportis 22 --json

Leer también

  • Cómo habilitar o deshabilitar servicios en Ubuntu Systemd / Upstart

Eso es todo lo que teníamos para hoy. Como siempre, apreciamos sus pensamientos y sus comentarios siempre son bienvenidos. No dude en comunicarse con nosotros a través de la sección de comentarios a continuación. Gracias por su tiempo y estén atentos a más tutoriales informativos.