GNU/Linux >> Tutoriels Linux >  >> Linux

Vérifier quel service écoute sur un port Linux donné

Installer et utiliser lsof

lsof est un utilitaire en ligne de commande pour lister tous les fichiers ouverts appartenant à tous les processus actifs.

Pour l'installer sur Linux, utilisez les commandes suivantes en fonction du type de distribution que vous utilisez.

Sur Debian, Ubuntu :

sudo apt install lsof

Sur CentOS, RHEL :

sudo yum install lsof

Des versions plus récentes comme CentOS 8, RHEL 8 ou Fedora

sudo dnf install lsof

Pour savoir quels processus s'exécutent sur quels ports, indiquez simplement le numéro de port :

sudo lsof -i :3000

Exemple de sortie :

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

Pour plus de détails, consultez les pages de manuel.

man lsof

Installation et utilisation de netstat

Netstat est un utilitaire de ligne de commande utilisé pour imprimer les connexions réseau, les tables de routage, les statistiques d'interface, les connexions masquées et les adhésions multidiffusion.

Netstat est disponible dans les dépôts par défaut de la plupart des distributions Linux.

Pour l'installer sur Linux et ses variantes, faites :

Sur CentOS, RHEL :

sudo yum install net-tools

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

Sur Debian, Ubuntu :

sudo apt install net-tools

Utilisez la commande suivante pour trouver quels services écoutent sur quels ports :

sudo netstat -tulpn

Exemple de sortie :

# 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 vous êtes intéressé par un port spécifique, vous pouvez utiliser grep pour filtrer :

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

Drapeaux :

  • l'indicateur -t affiche les connexions tcp.
  • -u flag montre les connexions udp.
  • -l drapeau affiche les sockets d'écoute.
  • -p drapeau affiche l'ID de processus (PID) et le nom de processus de tout ce qui utilise ce port.
  • -n drapeau affiche les adresses numériques.

Pour plus de détails, consultez les pages de manuel.

man netstat

Utiliser la commande "ss"

ss est un utilitaire de ligne de commande pour étudier les sockets. C'est une alternative à netstat et à l'utilisation de ss est presque identique à netstat . Il est préinstallé sur les distributions Linux populaires telles que Redhat, Debian et leurs variantes.

Pour trouver quels services écoutent sur quels ports, exécutez :

sudo ss -tulpn

Exemple de sortie :

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))

Pour filtrer la sortie d'un service particulier (par exemple, grafana), utilisez :

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

Pour plus de détails, consultez les pages de manuel.

man ss

Installation et utilisation de la commande fuser

L'utilitaire de ligne de commande fuser est également utilisé pour identifier les processus utilisant des fichiers ou des sockets. Il affiche les PID des processus utilisant les fichiers ou systèmes de fichiers spécifiés.

Il est également disponible dans les dépôts par défaut de la plupart des distributions Linux.

Pour l'installer sous Linux, exécutez :

Sur Debian, Ubuntu :

sudo apt install psmisc

Sur CentOS, RHEL :

sudo yum install psmisc

sudo dnf install psmisc

Nous devons trouver le PID d'un service ou d'un processus en écoute sur un port particulier. Vérifions le PID du processus écoutant sur le port 3000 à l'aide de cette commande :

sudo fuser 3000/tcp

Vous verrez une sortie comme ci-dessous.

3000/tcp:            264023

Ici, 264023 est le PID.

Et puis découvrez le processus réel en utilisant le PID en utilisant la commande :

ps -p 264023 -o comm=

Sortie

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

Remarque :Ajout du verbeux -v flag vous permet de visualiser tous les détails en une seule commande :

sudo fuser -v 3000/tcp

Sortie :

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

Pour plus de détails, consultez les pages de manuel.

man fuser

Linux
  1. Configuration des redirections de port sous Linux avec ncat

  2. Vérifier les ports d'écoute avec netstat

  3. Service du système d'exploitation Linux "dhcpd"

  4. Service d'exploitation Linux "anacron"

  5. Service d'exploitation Linux "iptables"

Comment trouver le numéro de port d'un service sous Linux

Comment trouver quel service écoute sur un port particulier

Découvrez quels processus écoutent sur un port particulier sous Linux

Comment vérifier qu'un port est ouvert sur un système Linux distant

Toutes les façons de vérifier si un port est ouvert sous Linux

Linux :Découvrez sur quel numéro de port un processus écoute