Linux Server: vedere le connessioni in tempo reale

Linux Server: vedere le connessioni in tempo reale

di Pubblicato: 21 giugno 2016 Aggiornato: 1 giugno 2017 0 commenti

Nelle attività sistemistiche spesso viene il dubbio di chi o quanti utenti stiano fruendo di un certo servizio, ad esempio HTTP, sul server in cui stiamo operando. Uno degli esempi più classici è sicuramente “devo riavviare, lo posso fare ora? quanti utenti sono connessi ora?“.

Per arrivare a questo risultato faremo leva su due programmi distinti, che messi in concatenazione permetteranno di vedere le connessioni in tempo reale sulla macchina in cui stiamo operando.

Il primo è il comando ss che a dispetto del brutto nome che evoca ben altri riferimenti, permette in modo molto similare a netstat di mostrare una serie di riferimenti sullo stack di rete, in modo però più semplificato.

Ad esempio se vogliamo vedere le connessioni di rete con protocollo TCP daremo il comando:

srv:~$ ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port
CLOSE-WAIT 0 0 192.168.1.20:54056 178.32.140.134:https
ESTAB 0 0192.168.1.20:40384 xx.xx.xx.xx:http  

Per vagliare invece le connessioni UDP il comando sarà

ss -u

Oppure in modo combinato per vedere entrambi.

ss -tu

Con questi due comandi abbiamo chiesto le connessioni stabilite, ovvero quelle che hanno ricevuto una richiesta. Per vedere quelle che invece sono in ascolto dovremo dare il comando

ss -lt

dove t permette di filtrare in questo caso le connessioni con protocollo TCP poiché nel 99% dei casi più rilevanti, offrendo un risultato simile a questo:

srv:~$ ss -lt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 *:netbios-ssn *:*
LISTEN 0 128 127.0.0.1:5939 *:*
LISTEN 0 5 127.0.1.1:domain *:*
LISTEN 0 10 10.10.15.35:domain *:*
LISTEN 0 10 127.0.0.1:domain *:*
LISTEN 0 128 *:ssh *:*
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 50 *:microsoft-ds *:*
LISTEN 0 100 *:9319 *:*
LISTEN 0 50 :::netbios-ssn :::*
LISTEN 0 10 :::domain :::*
LISTEN 0 128 :::ssh :::*
LISTEN 0 128 ::1:953 :::*
LISTEN 0 50 :::microsoft-ds :::*

Quindi come vedete, similarmente a netstat, è ottimo anche per vagliare quali servizi di rete possano essere attivi sulla macchina. Però in questo caso abbiamo visto i servizi in ascolto, ma non quelli attivi. Se vogliamo ottenere una vista combinata tra attivi e in ascolto daremo l’opzione -a:

ss -tua

Fino a qui abbiamo visto una situazione fotografata in un dato momento, ovvero quello in cui diamo il comando, ma spesso le connessioni sono abbastanza rapide per cui occorre uno sguardo su un certo arco di tempo per avere una idea sul traffico che la macchina ha quel momento.

Qui ci viene in aiuto il comando watch. Attraverso il parametro -n possiamo impostare il tempo, in secondi, tra una lettura e l’altra.

Quindi per fare un esempio concreto se vogliamo vedere le connessioni attive sul protocollo TCP daremo il comando:

watch -n 1 "ss -t"

Ricordatevi le virgolette che incapsulano il comando ss, altrimenti l’esecuzione andrà in errore.
Una ulteriore restrizione alla vista potrebbe essere quella di scegliere il programma oltre al protocollo.

watch -n 1 "ss -t | grep -i http"

In conclusione abbiamo visto come tutto sommato sia semplice poter filtrare le connessioni in tempo reale dal traffico di rete della macchina.

Ti è stato utile questo articolo?
Considera una piccola donazione: 1MVsPDJu9ctp8WfyiQHJCPjwFJKe7YWHek

Vuoi dire o aggiungere qualcosa?

sezione commenti aperta al pubblico

Non ci sono ancora commenti!

Puoi essere il primo a commentare.

Rispondi