Monitorare il traffico sulle interfacce di rete

Debian-swirl.png Versioni Compatibili

Debian 11 "bullseye"

Introduzione

Su un server, su un PC che funga da router o su un firewall Debian può essere comodo avere un sistema per tenere una traccia nel tempo del traffico di rete, distinguendo i flussi delle varie interfacce.
Un programma molto comodo in casi come questi è vnstat, che può essere utilizzato anche senza privilegi di amministrazione.

Installazione

La sua installazione è molto semplice, basta:

# apt install vnstat

Una volta terminata l'installazione del pacchetto e delle sue eventuali dipendenze, il programma è già attivo e funzionante.

Configurazione

Di default tutte le interfacce di rete saranno monitorate.

Se si intende personalizzarne il comportamento, occorre modificare il file principale di configurazione.

Per esempio per inserire il nome della scheda ethernet che vnstat tratterà come scheda di default, con nano:

# nano /etc/vnstat.conf

e modifichiamo la voce:

Interface ""

sostituendo la nostra scheda ethernet tra "".

  Suggerimento
Se non sappiamo come è indicata la scheda ethernet del nostro sistema, possiamo recuperare l'informazione con:
$ ip link


Utilizzo

Il programma si lancia da terminale, senza privilegi. Di seguito sono elencate alcune combinazioni di switch, per effettuare le operazioni più comuni.

  • Per avere una visione d'insieme dello stato delle interfacce:
$ vnstat

che darà come risposta qualcosa del genere:

rx / tx / total / estimated
eth1:
yesterday 174 kB / 0 kB / 174 kB
today 53 kB / 0 kB / 53 kB / --
eth0:
yesterday 19.94 GB / 4.33 GB / 24.27 GB
today 3.86 GB / 0.98 GB / 4.84 GB / 10.16 GB
  • Per avere una visione grafica/testuale dei dati:
$ vnstat -h

che genererà un output simile al seguente:

eth0 11:30
^ r
| r r
| r r r
| r t r r r r
| rt t r r r r r r
| rt t r r r r r r r
| rt rt r r r r r r r r r r
| rt rt r r r r r r r r r r r r
| rt rt r r r r r r r r r r r r r r t r
| rt rt rt r rt rt r rt r r r r r r rt r r r r rt rt rt rt r
-+--------------------------------------------------------------------------->
| 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11

h rx (kB) tx (kB) h rx (kB) tx (kB) h rx (kB) tx (kB)
12 982886 695641 20 656238 57998 04 220823 12027
13 427656 757889 21 343002 62942 05 160220 11873
14 322904 165802 22 466482 52979 06 186506 21116
15 172664 85374 23 1039368 36649 07 188855 109409
16 654155 104752 00 907319 28156 08
  • I dati possono poi essere visualizzati chiedendo al programma un riepilogo per giorno (d), settimana (w) mese (m) o anno (y). Ad esempio:
$ vnstat -d

restituirà:

eth0 / daily

day rx | tx | total
------------------------+-------------+----------------------------------------
14.01. 810.88 MB | 2.86 GB | 3.65 GB %::
15.01. 1.70 GB | 4.10 GB | 5.80 GB %::::
16.01. 33.29 MB | 245.22 MB | 278.52 MB
17.01. 18.66 MB | 125.58 MB | 144.24 MB
  • Per avere una misurazione in tempo reale del traffico si può utilizzare lo switch -tr (traffic):
$ vnstat -tr

che restituirà:

625 packets sampled in 5 seconds
Traffic average for eth0

rx 17.65 kB/s 63 packets/s
tx 20.51 kB/s 61 packets/s
  • Lo switch t (top 10) mostra invece i 10 giorni che hanno registrato il maggior traffico:
$ vnstat -t

con risultato:

eth0 / top 10

# day rx | tx | total
-------------------------------+-------------+---------------------------------
1 10.02.10 19.99 GB | 5.60 GB | 25.59 GB %%%%%%%%%%%%%%::::
2 11.02.10 19.94 GB | 4.33 GB | 24.27 GB %%%%%%%%%%%%%%:::
3 04.01.10 15.97 GB | 4.21 GB | 20.18 GB %%%%%%%%%%%:::
4 12.01.10 3.01 GB | 7.07 GB | 10.08 GB %%:::::
5 05.01.10 5.22 GB | 2.58 GB | 7.80 GB %%%::
6 13.01.10 2.00 GB | 4.51 GB | 6.51 GB %:::
7 09.02.10 2.63 GB | 3.19 GB | 5.82 GB %%::
8 15.01.10 1.70 GB | 4.10 GB | 5.80 GB %:::
9 11.01.10 1.52 GB | 3.84 GB | 5.36 GB %::
10 08.01.10 1.59 GB | 3.72 GB | 5.31 GB %::
-------------------------------+-------------+---------------------------------
  • Per visualizzare il traffico in tempo reale si può usare lo switch -l (live):
$ vnstat -l

che continuerà a mostrare il traffico istantaneo dell'interfaccia:

Monitoring eth0... (press CTRL-C to stop)

rx: 10.69 kB/s 38 p/s tx: 9.18 kB/s 32 p/s^C

Questo ultimo comando risulta molto utile su sistemi come firewall o router dove sono installate più interfacce di rete, per poter effettuare un'analisi della banda e del traffico sulle singole interfacce. Basterà poi premere Ctrl-C per fermarlo, come riportato dal comando stesso, visualizzando anche delle statistiche relative al tempo in cui è rimasto attivo (se lasciato per un periodo sufficiente).

Credits

Guida basata sull'originale presente su: SistemistiIndipendenti




Guida scritta da: Ferdybassi 14:59, 23 feb 2010 (CET)   Debianized 40%
Estesa da:
Verificata da:
HAL 9000 (discussioni) 14:57, 27 mar 2021 (UTC)

Verificare ed estendere la guida | Cos'è una guida Debianized