LINUX

Come utilizzare il comando ss per risolvere i problemi di rete su Linux

Linux fornisce diversi strumenti per l’analisi delle statistiche di rete; ss è una di quelle utility da riga di comando. In questo tutorial, esamineremo le basi del comando ss con alcuni semplici esempi.

Ordine SS

Il comando Socket Statistics (ss) in Linux visualizza informazioni sul socket di rete. Quando viene utilizzato per scaricare le statistiche sui socket, il comando ss presenta dati come netstat, ma più veloce e più semplice.

Con ss, puoi visualizzare informazioni dettagliate sui socket utilizzati dal tuo sistema, incluso il loro stato, gli indirizzi di origine e destinazione e altre informazioni correlate. Può visualizzare molte più informazioni e stato TCP rispetto alla maggior parte degli altri strumenti.

Di seguito è riportato l’output del comando ss, che mostra i dati in diverse colonne. Il comando ss senza opzioni elenca tutti i socket non in ascolto aperti (ad es. TCP/UNIX/UDP) che hanno stabilito la connessione.

Esamineremo tutte le colonne una per una:

colonne d'ordine ss
  • Pulito – È semplicemente un tipo Socket. TCP, UDP, SOCK_SEQPACKET e ICMP sono tipi comuni di socket.
  • Stato – Stato della presa. Gli stati socket comuni possono essere SYN-RECV, SYN-SENT, TIME-WAIT o ESTB (stabilito).
  • recv-Q – Indica il numero di pacchetti ricevuti dalla coda.
  • invia-Q – Indica il numero di pacchetti inviati dalla coda.
  • Indirizzo locale: porta – Mostra il computer locale e l’indirizzo della porta.
  • Indirizzo peer: porta – Visualizza gli indirizzi ei numeri di porta associati alle macchine remote.

Sintassi

ss [Options] [Filters]

È possibile utilizzare diverse opzioni e filtri con il comando ss per ottenere i dati secondo le proprie esigenze.È possibile ottenere un elenco di tutte le opzioni disponibili utilizzando il seguente comando:

ss -h

comando ss contro netstat

Lo strumento ss è incluso nel pacchetto iproute2 ed è l’impostazione predefinita nella maggior parte delle distribuzioni Linux. Per avere netstat, devi installare net-tools, che è già deprecato.

Rispetto al comando netstat, ss è più veloce e più semplice da usare e fornisce informazioni in un formato presentabile. ss prende direttamente dal kernel.

SS non è una sostituzione completa di netstat, parte del comando netstat è sostituita dal comando ip.

Installazione

L’utilità della riga di comando ss è preinstallata con la maggior parte delle distribuzioni Linux. Lo strumento ss viene fornito con il pacchetto iproute2. Tuttavia, la tua distribuzione non lo ha installato se ricevi il messaggio di errore “comando ss non trovato” durante l’esecuzione di questo comando.

Puoi installarlo usando uno dei seguenti comandi:

Ubuntu

sudo apt install iproute2   

Cappello rosso

sudo yum install iproute2 

cappello

sudo dnf install iproute

Come usare il comando ss

Come con tutti i comandi Linux, il comando ss funziona inviando il comando eseguibile e quindi utilizzando qualsiasi assortimento di opzioni disponibili per seguirlo.

Il comando ss ha meno opzioni disponibili rispetto al comando netstat. Tuttavia, questo non significa che sia meno funzionale. Il comando ss è un po’ più robusto.

Nota: L’esecuzione del comando ss senza opzioni o filtri restituisce un elenco esaustivo di socket TCP con connessioni stabilite.

1. Elenca le tue connessioni di rete

È possibile elencare tutte le connessioni di rete in ascolto e non in ascolto utilizzando l’opzione -a o -all.

ss -a
Elenca tutte le connessioni in ascolto e non in ascolto

2. Elenca le prese di ascolto

Per visualizzare solo i socket in ascolto, che sono omessi per impostazione predefinita, utilizzare l’opzione -l o –listen.

ss -l
Elenco di tutte le prese di ascolto

3. Elenca le connessioni TCP

Per visualizzare la connessione socket TCP, utilizzare l’opzione -t o –tcp.

 ss -t

Per visualizzare l’elenco di tutte le connessioni TCPPuoi usare -a e -t Opzioni. Ciò include tutti gli stati del socket.

ss -at
Elenco di tutte le connessioni TCP

Per mostrare la connessione TCP per tutti gli stati di ascolto, combinare -l e -t Opzioni.

ss -alt

4. Elenca tutte le connessioni TCP in ascolto

Per mostrare la connessione TCP per tutti gli stati di ascolto, combinare -l e -t Opzioni.

ss -alt
Elenco di tutte le connessioni TCP in ascolto

5. Elenca le connessioni UDP

Per visualizzare la connessione socket UDP, utilizzare -u o --udp opzione.

ss -u

Da visualizzare elenco di tutte le connessioni UDPuso -a e -u Opzioni. Ciò include tutti gli stati del socket.

ss -au
Elenco di tutte le connessioni UDP

6. Elenca tutte le connessioni UDP in ascolto

Puoi combinare -l e -u per visualizzare la connessione UDP per tutti gli stati di ascolto.

ss -lu
Elenco di tutte le connessioni UDP in ascolto

7. Elenca i socket Unix

Per elencare tutti i socket Unix, puoi usare il comando ss insieme a -f unix o -x.

ss -f unix
Elenco di tutti i socket UNIX

8. Elenca i socket grezzi

Per visualizzare tutti i socket Raw, è possibile utilizzare -w o l’opzione –raw.

ss -w
Elenco dei socket grezzi

9. Elenca la connessione di un indirizzo IP

Possiamo utilizzare il comando ss per visualizzare la connessione dell’elenco di una specifica destinazione o indirizzo IP di origine.

Ad esempio, per elencare la connessione dell’indirizzo IP di destinazione:

ss dst 157.240.227.60
Elenca la connessione di un indirizzo IP.

Ad esempio, per elencare la connessione dell’indirizzo IP di origine:

ss src 192.168.18.151

10. Elenca le connessioni socket IPv4 e IPv6

Se si desidera visualizzare l’elenco delle connessioni socket IPv4, utilizzare l’opzione -4 e -6 per visualizzare l’elenco delle connessioni socket IPv6.

Per visualizzare l’elenco delle connessioni IPv4:

ss -4
Elenco dei socket IPv4

Per visualizzare l’elenco delle connessioni socket IPv6:

ss -6
Elenca i socket IPv6

Per elencare tutte le connessioni TCP IPv4, puoi utilizzare il seguente esempio.

ss -at4

11. Identificazione dei processi

Potete trovare processi presa uso -p opzione insieme al comando ss. Per identificare il processo, avrai bisogno dell’autorizzazione sudo.

sudo ss -t -p 
elenco dei processi

12. Elenca le connessioni senza risoluzione del nome host

Per risolvere l’indirizzo numerico/le porte utilizzare l’opzione -r (risolvere). Invece –n l’opzione non tenta di risolvere i nomi dei servizi.

Qui nell’esempio puoi vedere la differenza tra i due:

$ ss -tn
 State  Recv-Q Send-Q  Local Address:Port Peer Address:Port   Process
 ESTAB  0      0       74.208.235.196:22  48.192.234.17:60216
$ ss -tr
 State  Recv-Q Send-Q Local Address:Port         Peer Address:Port  Process
 ESTAB  0      64     li82-186.members.linode.com:ssh                          n47-172-231-17.sun4.vic.optusnet.com.au:60317
$

13. Filtra per connessione

Il comando ss consente il filtraggio avanzato dei risultati e la ricerca di porte o stati TCP specifici.

Filtra utilizzando gli stati TCP

Per filtrare la connessione TCP con l’ascolto dello stato, digitare:

ss -t state listening
Ascolto dello stato TCP

Puoi anche usare grep comando per filtrare in modo convenzionale. Qui ti mostro tutte le connessioni TCP nello stato di ascolto:

ss -at | grep LISTEN
ss usando il comando grep

Per visualizzare le connessioni alla porta ssh stabilite:

ss -tr state established '( dport = :22 or sport = :22 )'

Filtra per numero di porta

Filtra per uno specifico numero di porta di destinazione o nome di porta:

ss <options> dst :<port number or name>

Ad esempio, utilizza un nome di porta:

ss dst :https
Filtra le connessioni in base al nome della porta

mere Opzioni di comando

Come accennato in precedenza nel documento, il comando ss può richiedere alcuni parametri opzionali per ottenere informazioni di rete specifiche. Di seguito è riportato l’elenco di tutte le opzioni e la relativa descrizione:

scelta Descrizione
– h Mostra un elenco di tutte le opzioni.
v Mostra informazioni sulla versione.
– n I nomi dei servizi non vengono risolti.
-r I nomi host vengono risolti
-UN Mostra tutte le prese
esso Mostra tutte le prese di ascolto
-un Visualizza informazioni sul timer
– è visualizza informazioni dettagliate sulla presa
– m mostra l’utilizzo della memoria del socket
– p mostra il processo usando socket
loro mostra le informazioni TCP interne
–typecnfo visualizzare le informazioni interne della presa typc
-S mostra il riepilogo dell’utilizzo del socket
-b visualizzare le informazioni sulla presa del filtro bpf
– È visualizza continuamente i socket man mano che vengono distrutti
.com mostra i contesti di sicurezza del processo SELinux
.com mostra il processo SELinux e il contesto di sicurezza del socket
-N passare al nome dello spazio dei nomi di rete specificato
-4 mostra solo i socket IP versione 4
-6 mostra solo socket IP versione 6
-0 mostra PACKAGE prese
t mostra solo i socket TCP
– M mostra solo i socket MTCP
-S mostra solo i socket SCTP
-u mostra solo i socket UDP
d mostra solo le prese DCCP
-w mostra solo i socket RAW
-X mostra solo socket di dominio Unix
– f FAMILY display socket di tipo FAMILYFAMILY := {inet|inet6|link|unix|netlink|vsock|tipc|xdp|help}
K forzare la chiusura delle prese, visualizzare ciò che era chiuso
-H Elimina la riga di intestazione
-UN dati socket stampati su un’unica riga
d Trasferisci le informazioni non elaborate sui socket TCP in FILE
– F leggere le informazioni sul filtro da FILE

Il comando ss Status Filters

Fornisce un metodo per costruire qualsiasi insieme di stati corrispondenti. La sua sintassi è costituita dalle parole chiave state ed exclude in questo ordine, seguite dall’identificatore di stato.

Gli identificatori disponibili set, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, close-wait, last-ack, listen e close sono tutti stati TCP comuni. La tabella seguente mostra tutti questi stati:

Filtro di stato Descrizione
tutto per tutti gli stati
connesso tutti gli stati tranne ascolto e chiuso
sincronizzare tutti gli stati connessi tranne syn-sent
benna stati, che vengono mantenuti come miniplug, cioè time-wait e syn-recv
grande opposto con secchio

Conclusione

L’utilità di comando ss è un successore più leggero e veloce del primitivo comando netstat. Fornisce opzioni di filtraggio avanzate per le statistiche di rete e socket. Pertanto, è uno strumento indispensabile per i casi d’uso di risoluzione dei problemi di rete.

Puoi seguire pagina manuale dell’ordine ss per maggiori dettagli.

Circa l’autore

Bobina Zaccaria

Bobina Zaccaria

Bobbin ha iniziato la sua carriera nell’IT nel 2000 come istruttore di informatica e ha lavorato come ingegnere di sistemi Linux e ruolo di analista senior. Attualmente lavoro in ambienti DevOps per aumentare l’efficienza e migliorare i tempi di consegna nell’infrastruttura AWS Cloud. È certificato in RHEL, CCNA e MCP e ha conseguito un Master in Informatica. Nel tempo libero si diverte a giocare a cricket, bloggare e ascoltare musica.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close