
Lo strumento ss è un comando CLI utilizzato per visualizzare informazioni sul socket di rete in Linux. La ss sta per statistica socket. È uno strumento simile a netstat, che può visualizzare più informazioni come TCP e informazioni sullo stato.
Lo strumento ss viene fornito con il pacchetto iproute2. Può visualizzare statistiche per socket di dominio PACKET, TCP, UDP, DCCP, RAW e Unix.
In questo tutorial impariamo il comando ss in Linux con esempi utili.
1. Elenca la connessione di rete
Il comando ss senza alcuna opzione elenca tutti i socket aperti non in ascolto (ad es. TCP/UNIX/UDP) che hanno stabilito una connessione.
$ ss

- Netid:Visualizza i tipi di socket.
- Stato:mostra lo stato di un socket se è Stabilito (ESTAB), Non connesso (UNCONN) o Ascolto (LISTEN).
- Recv-Q:Visualizza il numero di pacchetti ricevuti nella coda.
- Invia-Q:Visualizza il numero di pacchetti inviati nella coda.
- Indirizzo locale:porta:Visualizza l'indirizzo della macchina locale e della porta.
- Indirizzo peer:porta:Visualizza l'indirizzo della macchina remota e della porta.
È possibile ottenere informazioni più dettagliate utilizzando il comando ss insieme alle opzioni. Puoi anche selezionare più opzioni contemporaneamente.
sintassi del comando ss:
$ ss [Option]
$ ss [Option1] [Option2] [Option3]
2. Elenca le prese di ascolto
Per visualizzare l'elenco delle prese in ascolto usando -l
o --listen
opzione.
$ ss -l

3. Elenca tutti i socket
Puoi elencare tutte le connessioni di rete in ascolto e non in ascolto utilizzando il -a
o -all
opzione.
$ ss -a

4. Elenca connessione TCP
Per visualizzare la connessione socket TCP, utilizzare il -t
o --tcp
opzione.
$ ss -t

Per visualizzare l'elenco di tutte le connessioni TCP , puoi usare il -a
e -t
opzioni. Ciò include tutti gli stati del socket.
$ ss -at
Per visualizzare la connessione TCP per tutti gli stati di ascolto, combinare -l
e -t
opzioni.
$ ss -alt
5. List connessione UDP
Per visualizzare la connessione della presa UDP, utilizzare -u
o --udp
opzione.
$ ss -u

Per visualizzare l'elenco di tutte le connessioni UDP , usa -a
e -u
opzioni. Ciò include tutti gli stati del socket.
$ ss -au
Puoi combinare -l
e -u
per visualizzare la connessione UDP per tutti gli stati di ascolto .
$ ss -lu
6. Elenca i socket Unix
Per visualizzare tutti i socket Unix, puoi usare il comando ss insieme a -f unix
o -x
.
$ ss -f unix

7. Elenca i socket grezzi
Per visualizzare tutti i socket Raw, puoi usare -w
o --opzione raw.
$ ss -w

8. Elenca la connessione di un indirizzo IP
Possiamo usare il comando ss per visualizzare la connessione dell'elenco di una destinazione specifica o un indirizzo IP di origine.
Ad esempio per elencare la connessione dell'indirizzo IP di destinazione:
$ ss dst 13.227.138.30

Ad esempio per elencare la connessione dell'indirizzo IP di origine:
$ ss src 192.168.18.151

9. Elenca la connessione 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 socket IPv4:
$ ss -4

Per visualizzare l'elenco delle connessioni socket IPv6:
$ ss -6

Per elencare tutte le connessioni TCP IPv4, puoi utilizzare il seguente esempio.
$ ss -at4

10. Identificare i processi
Puoi trovare i processi di socket usando il -p
opzione insieme al comando ss. Per identificare il processo, avrai bisogno dell'autorizzazione sudo.
$ sudo ss -t -p

11. List Connection senza risoluzione del nome host
Per risolvere l'indirizzo numerico/le porte, utilizzare l'opzione -r (risolvere). Considerando che il -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
$
12. Filtra per Connessione
Diamo un'occhiata ad alcuni esempi di come applicare filtri per generare informazioni specifiche.
Per filtrare la connessione TCP con stato in ascolto, digita:
$ ss -t state listening
Per visualizzare le connessioni alla porta ssh stabilite:
$ ss -tr state established '( dport = :22 or sport = :22 )'
Puoi anche filtrare il modo tradizionale del comando grep. Qui sto visualizzando tutte le connessioni TCP in ascolto nello stato:
$ ss -at | grep LISTEN
Opzioni comando SS
Il comando ss fornisce varie opzioni per controllare l'output da visualizzare secondo le tue esigenze. Puoi usare -ho --help insieme al comando ss per visualizzare le opzioni di base disponibili con ss command-utility.
$ ss -h

comando ss vs netstat
Lo strumento ss è incluso nel pacchetto iproute2 ed è predefinito nella maggior parte delle distribuzioni Linux. Per avere netstat è necessario installare net-tools, che è già deprecato. Il comando ss è molto più veloce in quanto viene prelevato direttamente dal kernel. ss non è una sostituzione completa di netstat, alcuni dei comandi netstat sono sostituiti dal comando ip.
Conclusione
In questo tutorial, abbiamo imparato a conoscere il comando ss con alcuni esempi utili. Puoi fare riferimento alla pagina man di ss command per ulteriori informazioni.