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 posteriores
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 bandera 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
Por ejemplo, para encontrar los PID que se ejecutan en el puerto 80, ejecute,
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 los 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 utilizar 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
Por ejemplo
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
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 permanezca atento a más tutoriales informativos.