GNU/Linux >> Linux Esercitazione >  >> Linux

Controlla quale servizio è in ascolto su una determinata porta Linux

Installazione e utilizzo di lsof

lsof è un'utilità della riga di comando per elencare tutti i file aperti appartenenti a tutti i processi attivi.

Per installarlo su Linux, usa i seguenti comandi a seconda del tipo di distribuzione che usi.

Su Debian, Ubuntu:

sudo apt install lsof

Su CentOS, RHEL:

sudo yum install lsof

Versioni più recenti come CentOS 8, RHEL 8 o Fedora

sudo dnf install lsof

Per trovare quali processi sono in esecuzione su quali porte, specifica semplicemente il numero di porta:

sudo lsof -i :3000

Esempio di output:

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

Per maggiori dettagli, fare riferimento alle pagine man.

man lsof

Installazione e utilizzo di netstat

Netstat è un'utilità della riga di comando utilizzata per stampare connessioni di rete, tabelle di routing, statistiche dell'interfaccia, connessioni mascherate e iscrizioni multicast.

Netstat è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.

Per installarlo su Linux e le sue varianti, fai:

Su CentOS, RHEL:

sudo yum install net-tools

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

Su Debian, Ubuntu:

sudo apt install net-tools

Usa il comando seguente per trovare quali servizi sono in ascolto su quali porte:

sudo netstat -tulpn

Esempio di output:

# 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

Se sei interessato a una porta specifica, puoi utilizzare grep per filtrare:

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

Bandiere:

  • -t flag mostra le connessioni TCP.
  • -u flag mostra le connessioni udp.
  • Il flag -l mostra le prese in ascolto.
  • -p flag mostra l'ID del processo (PID) e il nome del processo di qualunque cosa stia usando quella porta.
  • -n flag mostra gli indirizzi numerici.

Per maggiori dettagli, fare riferimento alle pagine man.

man netstat

Utilizzo del comando "ss"

ss è un'utilità della riga di comando per esaminare i socket. È un'alternativa a netstat e all'uso di ss è quasi uguale a netstat . Viene preinstallato su distribuzioni Linux popolari come Redhat, Debian e le loro varianti.

Per trovare quali servizi sono in ascolto su quali porte, esegui:

sudo ss -tulpn

Esempio di output:

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

Per filtrare l'output per un particolare servizio (ad es. grafana), utilizzare:

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

Per maggiori dettagli, fare riferimento alle pagine man.

man ss

Installazione e utilizzo del comando fusore

L'utilità della riga di comando fuser viene anche utilizzato per identificare i processi utilizzando file o socket. Visualizza i PID dei processi che utilizzano i file oi file system specificati.

È anche disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.

Per installarlo su Linux, esegui:

Su Debian, Ubuntu:

sudo apt install psmisc

Su CentOS, RHEL:

sudo yum install psmisc

sudo dnf install psmisc

Abbiamo bisogno di trovare il PID di un servizio o processo in ascolto su una particolare porta. Controlliamo il PID del processo in ascolto sulla porta 3000 usando questo comando:

sudo fuser 3000/tcp

Vedrai un output come di seguito.

3000/tcp:            264023

Qui, 264023 è il PID.

E poi scopri il processo effettivo usando il PID usando il comando:

ps -p 264023 -o comm=

Uscita

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

Nota:aggiunta del dettagliato -v flag consente di visualizzare i dettagli completi in un unico comando:

sudo fuser -v 3000/tcp

Uscita:

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

Per maggiori dettagli, consulta le pagine man.

man fuser

Linux
  1. Configurazione dei reindirizzamenti delle porte in Linux con ncat

  2. Controlla le porte di ascolto con netstat

  3. Controlla l'uso della porta in Linux

  4. Come controllare quale fuso orario in Linux?

  5. Come posso verificare quali porte sono occupate e quali porte sono libere sulla mia macchina Linux?

Come trovare il numero di porta di un servizio in Linux

Come trovare quale servizio è in ascolto su una porta particolare

Scopri quali processi sono in ascolto su una porta particolare in Linux

Come verificare che una porta sia aperta su un sistema Linux remoto

Tutti i modi per verificare se una porta è aperta in Linux

Linux:scopri su quale numero di porta è in ascolto un processo