GNU/Linux >> Tutoriales Linux >  >> Linux

Verifique qué servicio está escuchando en un puerto Linux dado

Instalación y uso de lsof

lsof es una utilidad de línea de comandos para enumerar todos los archivos abiertos que pertenecen a todos los procesos activos.

Para instalarlo en Linux, use los siguientes comandos según el tipo de distribución que use.

En Debian, Ubuntu:

sudo apt install lsof

En CentOS, RHEL:

sudo yum install lsof

Versiones más nuevas como CentOS 8, RHEL 8 o Fedora

sudo dnf install lsof

Para encontrar qué procesos se están ejecutando en qué puertos, simplemente especifique el número de puerto:

sudo lsof -i :3000

Salida de muestra:

# lsof -i :3000
COMMAND      PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
grafana-s 264023 grafana   10u  IPv6 2887779      0t0  TCP *:hbci (LISTEN)

Para obtener más detalles, consulte las páginas man.

man lsof

Instalación y uso de netstat

Netstat es una utilidad de línea de comandos que se utiliza para imprimir conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones enmascaradas y membresías de multidifusión.

Netstat está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux.

Para instalarlo en Linux y sus variantes, haga:

En CentOS, RHEL:

sudo yum install net-tools

# On Fedora, RHEL 8 and Centos8
sudo dnf install net-tools

En Debian, Ubuntu:

sudo apt install net-tools

Use el siguiente comando para encontrar qué servicios están escuchando en qué puertos:

sudo netstat -tulpn

Salida de muestra:

# sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8088          0.0.0.0:*               LISTEN      538847/influxd
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      900/nginx: master p
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:7088            0.0.0.0:*               LISTEN      538639/docker-proxy
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      900/nginx: master p
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      970/sshd
tcp6       0      0 :::9080                 :::*                    LISTEN      393063/promtail-lin
tcp6       0      0 :::3000                 :::*                    LISTEN      264023/grafana-serv
tcp6       0      0 :::3100                 :::*                    LISTEN      391839/loki-linux-a
tcp6       0      0 :::9090                 :::*                    LISTEN      263154/prometheus
tcp6       0      0 :::9096                 :::*                    LISTEN      391839/loki-linux-a
tcp6       0      0 :::9100                 :::*                    LISTEN      262769/node_exporte
tcp6       0      0 :::44303                :::*                    LISTEN      393063/promtail-lin
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::7088                 :::*                    LISTEN      538645/docker-proxy
tcp6       0      0 :::80                   :::*                    LISTEN      900/nginx: master p
tcp6       0      0 :::8086                 :::*                    LISTEN      538847/influxd
tcp6       0      0 :::22                   :::*                    LISTEN      970/sshd
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd
udp        0      0 127.0.0.1:323           0.0.0.0:*                           777/chronyd
udp6       0      0 :::111                  :::*                                1/systemd
udp6       0      0 ::1:323                 :::*                                777/chronyd
udp6       0      0 fe80::458:3aff:fed6:546 :::*                                850/NetworkManager

Si está interesado en algún puerto específico, puede usar grep para filtrar:

sudo netstat -tulpn | grep 3000
sudo netstat -tulpn | grep grafana

Banderas:

  • -t bandera muestra conexiones tcp.
  • -u indicador muestra conexiones udp.
  • -l bandera muestra enchufes de escucha.
  • El indicador
  • -p muestra el ID del proceso (PID) y el nombre del proceso de lo que sea que esté usando ese puerto.
  • El indicador
  • -n muestra las direcciones numéricas.

Para obtener más detalles, consulte las páginas man.

man netstat

Usando el comando "ss"

ss es una utilidad de línea de comandos para investigar sockets. Es una alternativa a netstat y al uso de ss es casi lo mismo que netstat . Viene preinstalado en distribuciones de Linux populares como Redhat, Debian y sus variantes.

Para encontrar qué servicios están escuchando en qué puertos, ejecute:

sudo ss -tulpn

Salida de muestra:

Netid   State    Recv-Q   Send-Q                        Local Address:Port        Peer Address:Port   Process
udp     UNCONN   0        0                                   0.0.0.0:111              0.0.0.0:*       users:(("rpcbind",pid=705,fd=5),("systemd",pid=1,fd=33))
udp     UNCONN   0        0                                 127.0.0.1:323              0.0.0.0:*       users:(("chronyd",pid=777,fd=6))
udp     UNCONN   0        0                                      [::]:111                 [::]:*       users:(("rpcbind",pid=705,fd=7),("systemd",pid=1,fd=35))
udp     UNCONN   0        0                                     [::1]:323                 [::]:*       users:(("chronyd",pid=777,fd=7))
udp     UNCONN   0        0           [fe80::458:3aff:fed6:8255]%eth0:546                 [::]:*       users:(("NetworkManager",pid=850,fd=26))
tcp     LISTEN   0        128                               127.0.0.1:8088             0.0.0.0:*       users:(("influxd",pid=538847,fd=3))
tcp     LISTEN   0        128                                 0.0.0.0:443              0.0.0.0:*       users:(("nginx",pid=902,fd=8),("nginx",pid=901,fd=8),("nginx",pid=900,fd=8))
tcp     LISTEN   0        128                                 0.0.0.0:111              0.0.0.0:*       users:(("rpcbind",pid=705,fd=4),("systemd",pid=1,fd=32))
tcp     LISTEN   0        128                                 0.0.0.0:7088             0.0.0.0:*       users:(("docker-proxy",pid=538639,fd=4))
tcp     LISTEN   0        128                                 0.0.0.0:80               0.0.0.0:*       users:(("nginx",pid=902,fd=9),("nginx",pid=901,fd=9),("nginx",pid=900,fd=9))
tcp     LISTEN   0        128                                 0.0.0.0:22               0.0.0.0:*       users:(("sshd",pid=970,fd=5))
tcp     LISTEN   0        128                                       *:9080                   *:*       users:(("promtail-linux-",pid=393063,fd=10))
tcp     LISTEN   0        128                                       *:3000                   *:*       users:(("grafana-server",pid=264023,fd=10))
tcp     LISTEN   0        128                                       *:3100                   *:*       users:(("loki-linux-amd6",pid=391839,fd=9))
tcp     LISTEN   0        128                                       *:9090                   *:*       users:(("prometheus",pid=263154,fd=8))
tcp     LISTEN   0        128                                       *:9096                   *:*       users:(("loki-linux-amd6",pid=391839,fd=10))
tcp     LISTEN   0        128                                       *:9100                   *:*       users:(("node_exporter",pid=262769,fd=3))
tcp     LISTEN   0        128                                       *:44303                  *:*       users:(("promtail-linux-",pid=393063,fd=11))
tcp     LISTEN   0        128                                    [::]:111                 [::]:*       users:(("rpcbind",pid=705,fd=6),("systemd",pid=1,fd=34))
tcp     LISTEN   0        128                                    [::]:7088                [::]:*       users:(("docker-proxy",pid=538645,fd=4))
tcp     LISTEN   0        128                                    [::]:80                  [::]:*       users:(("nginx",pid=902,fd=10),("nginx",pid=901,fd=10),("nginx",pid=900,fd=10))
tcp     LISTEN   0        128                                       *:8086                   *:*       users:(("influxd",pid=538847,fd=5))
tcp     LISTEN   0        128                                    [::]:22                  [::]:*       users:(("sshd",pid=970,fd=7))

Para filtrar la salida de un servicio en particular (por ejemplo, grafana), use:

sudo ss -tulpn | grep grafana
sudo ss -tulpn | grep 3000

Para obtener más detalles, consulte las páginas man.

man ss

Instalación y uso del comando fuser

La utilidad de línea de comandos fuser también se usa para identificar procesos usando archivos o sockets. Muestra los PID de los procesos que utilizan los archivos o sistemas de archivos especificados.

También está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux.

Para instalarlo en Linux, ejecute:

En Debian, Ubuntu:

sudo apt install psmisc

En CentOS, RHEL:

sudo yum install psmisc

sudo dnf install psmisc

Necesitamos encontrar el PID de un servicio o proceso escuchando en un puerto en particular. Verifiquemos el PID del proceso que escucha en el puerto 3000 usando este comando:

sudo fuser 3000/tcp

Verá una salida como la siguiente.

3000/tcp:            264023

Aquí, 264023 es el PID.

Y luego descubra el proceso real usando el PID usando el comando:

ps -p 264023 -o comm=

Salida

# ps -p 264023 -o comm=
grafana-server

Nota:Agregar el -v detallado flag le permite ver los detalles completos en un solo comando:

sudo fuser -v 3000/tcp

Salida:

# sudo fuser -v 3000/tcp
                     USER        PID ACCESS COMMAND
3000/tcp:            grafana   264023 F.... grafana-server

Para obtener más detalles, consulte las páginas man.

man fuser

Linux
  1. Configuración de redirecciones de puertos en Linux con ncat

  2. Compruebe los puertos de escucha con netstat

  3. Servicio del sistema operativo Linux 'dhcpd'

  4. ¿Cómo verificar qué zona horaria en Linux?

  5. ¿Cómo puedo verificar qué puertos están ocupados y qué puertos están libres en mi máquina Linux?

Cómo encontrar el número de puerto de un servicio en Linux

Cómo encontrar qué servicio está escuchando en un puerto en particular

Averigüe qué procesos están escuchando en un puerto particular en Linux

Cómo comprobar que un puerto está abierto en un sistema Linux remoto

Todas las formas de verificar si un puerto está abierto en Linux

Linux:averigüe en qué número de puerto está escuchando un proceso