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