Come usare il comando ss per monitorare le connessioni di rete Linux

Se utilizzi Linux, prima o poi dovrai conoscere meglio la tua rete. Ci sono diversi strumenti che ti aiutano a farlo ed alcuni sono più complicati di altri. Il comando “ss” è qualcosa su cui puoi contare, quindi è utile conoscerlo.

Cos’è il comando ss?

Come molti comandi Linux / Unix, il nome è un’abbreviazione di ciò che fa il comando. Quindi, ss sta per Socket Statistics, che ha sostituito il vecchio nerstat. Il suo compito è quello di mostrare informazioni non solo sui socket TCP e UDP, i più comunemente usati, ma anche su quelli di dominio quali DCCP, RAW e Unix.

Utilizzo di base

Il modo più semplice per usare il comando ss è semplicemente eseguirlo senza argomenti. Siccome mostrerà un bel po’ di dati, per una più facile lettura è meglio filtrarlo.

ss | less

Il comando così com’è mostra un sacco di informazioni e quindi difficile da leggere. Per semplificare, puoi filtrare determinati tipi di socket. Ad esempio, è possibile elencare solo socket TCP:

ss -t

Oppure, elencare solo socket UDP.

ss -u

Per impostazione predefinita, queste opzioni elencano solo socket con connessioni stabilite. Per elencare tutti i socket TCP connessi, è possibile eseguire quanto segue:

ss -t -a

Cosa si può fare con il comando ss

Ora che hai familiarità con le basi, puoi iniziare ad utilizzare il comando ss per monitorare la tua rete. Ci sono molte cose che puoi fare, ma per iniziare bastano alcune idee.

Monitoraggio degli stati TCP

Siccome le connessioni TCP hanno fasi differenti, puoi eseguire il drill-down su determinati tipi di fasi utilizzando il comando ss.

Oltre agli stati TCP standard come “listening” e “closed”, il comando ss supporta alcuni filtri personalizzati. Ad esempio, lo stato “connesso” è ogni stato TCP ad eccezione “listening” e “closed”. Per utilizzarlo in  questa modalità, esegui quanto segue:

ss state connected

IPv4 e IPv6

Se la rete utilizza una combinazione di indirizzi IPv6 e IPv4, è possibile filtrarli utilizzando il comando ss. Basta usare i flag -4 o -6. Se vuoi vedere tutte le connessioni IPv4, basta eseguire il seguente comando:

ss -4 state connected

Se vuoi visualizzare tutti i socket IPv6, esegui s quanto segue:

ss -6

Quale processo sta usando questo socket?

Se sai che una socket è in listening ma non sai il perché, puoi rintracciarla facilmente. L’esecuzione di quanto segue ti mostrerà il nome e l’ID del processo di tutti i socket TCP IPv4 connessi:

ss -4p state connected

Visualizzazione di un riepilogo

A volte desideri solo avere una breve carrellata dei socket su una macchina. Questo è uno dei comandi più facili da eseguire, poiché consiste interamente nella lettera “s” e un trattino:

ss -s

Ciò darà un riepilogo di tutti i socket sul tuo computer e mostrerà se sono IPv4 o IPv6.