Verifica della velocità di connessione con iperf

Verifica della velocità di connessione con iperf

iperf è uno strumento potente per testare la larghezza di banda della rete, che consente di misurare la velocità di trasferimento dati tra due dispositivi. È ampiamente utilizzato da amministratori di sistema e ingegneri per diagnosticare problemi di rete e valutare le prestazioni della connessione. In questo articolo, esploreremo come installare iperf, come utilizzarlo e come configurare correttamente un firewall per il suo funzionamento.

Installazione di iperf

Prima di iniziare, è necessario installare iperf su entrambi i dispositivi: il server (che riceve il traffico) e il client (che invia il traffico). Esistono due versioni popolari: iperf2 e iperf3. Consigliamo di utilizzare iperf3, poiché è attivamente supportata e offre funzionalità migliorate.

Installazione su Linux

  • Ubuntu/Debian:

    sudo apt update
    sudo apt install iperf3
  • CentOS/RHEL:

    sudo yum install iperf3

Installazione su Windows

  1. Scarica iperf3 dal sito ufficiale (ad esempio, https://iperf.fr/)
  2. Estrai l’archivio in una cartella conveniente (ad esempio, C:\iperf).
  3. Aggiungi il percorso della cartella alla variabile d’ambiente PATH per semplificare l’esecuzione dalla riga di comando.

Installazione su macOS

  • Tramite Homebrew:

    brew install iperf3

Dopo l’installazione, verifica la versione per assicurarti che lo strumento funzioni:

iperf3 --version

Come funziona iperf?

iperf opera secondo un modello client-server:

  • Server: Viene eseguito su un dispositivo e rimane in attesa di connessioni in entrata.
  • Client: Si connette al server e invia dati per misurare la velocità.

Per impostazione predefinita, iperf3 utilizza la porta TCP 5201 (iperf2 utilizza la 5001). Puoi modificare la porta con l’opzione -p.

Configurazione del firewall per iperf

Per garantire che iperf funzioni correttamente, assicurati che il firewall del tuo dispositivo non blocchi le connessioni sulle porte utilizzate da iperf (di default, la porta TCP 5201, ma puoi specificarne un’altra con -p). Di seguito sono riportate le istruzioni per configurare il firewall su diversi sistemi operativi.

Windows

  1. Apri le impostazioni del firewall:

    • Premi Win + R, digita control e seleziona "Windows Defender Firewall".
    • Vai a "Consenti un’app o una funzionalità attraverso Windows Defender Firewall".
  2. Aggiungi una regola per iperf:

    • Fai clic su "Consenti un’altra app", poi su "Sfoglia" e seleziona il file iperf3.exe.
    • Consenti connessioni in entrata e in uscita per reti private e pubbliche.
  3. Crea una regola per la porta (metodo alternativo):

    • In "Impostazioni avanzate", seleziona "Regole in entrata" → "Nuova regola".
    • Scegli "Porta", specifica TCP e la porta (ad esempio, 5201), quindi consenti la connessione.
    • Ripeti per le connessioni in uscita, se necessario.

Linux

A seconda della distribuzione, vengono utilizzati diversi strumenti di gestione del firewall:

  • Per ufw (Ubuntu, Debian):

    sudo ufw allow 5201/tcp
    sudo ufw status # Verifica stato
  • Per firewalld (CentOS, RHEL):

    sudo firewall-cmd --add-port=5201/tcp --permanent
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-ports # Verifica porte aperte
  • Per iptables (configurazione manuale):

    sudo iptables -A INPUT -p tcp --dport 5201 -j ACCEPT
    sudo iptables -A OUTPUT -p tcp --sport 5201 -j ACCEPT

macOS

  1. Apri le impostazioni del firewall:

    • Vai a "Impostazioni di Sistema" → "Sicurezza e Privacy" → scheda "Firewall".
    • Assicurati che il firewall sia attivato.
  2. Aggiungi un’eccezione:

    • Fai clic su "Opzioni Firewall" → "+" e aggiungi l’applicazione iperf3.
    • Consenti connessioni in entrata.
  3. Tramite terminale (alternativa):

    echo "pass in proto tcp from any to any port 5201" | sudo pfctl -f -
    sudo pfctl -e # Attiva firewall

Raccomandazioni generali

  • Assicurati che la porta utilizzata nel comando iperf (ad esempio, iperf3 -s -p 5201) corrisponda alla porta aperta nel firewall.
  • Usa netstat o ss (ad esempio, ss -tuln | grep 5201) per verificare che la porta sia in ascolto.
  • Se esegui test attraverso Internet, configura il firewall del router o del server cloud.

Utilizzo di iperf

Avvio del server

Sul dispositivo che fungerà da server, esegui:

iperf3 -s

Vedrai un messaggio che indica che il server è in esecuzione e in ascolto sulla porta 5201.

Avvio del client

Sul secondo dispositivo (client), specifica l’indirizzo IP del server:

iperf3 -c 192.168.1.100
  • -c: Modalità client.
  • 192.168.1.100: Sostituisci con l’indirizzo IP del tuo server.

Per impostazione predefinita, il test dura 10 secondi. I risultati mostreranno la velocità di trasferimento dati in megabit al secondo (Mbps).

Test con un server pubblico

Se non puoi eseguire un tuo server, puoi utilizzare server iperf pubblici. Ad esempio, il server di Bouygues Telecom:

iperf3 -c bouygues.iperf.fr

Questo comando si connette al server pubblico bouygues.iperf.fr (porta predefinita 5201) e misura la velocità tra il tuo dispositivo e il server. Tieni presente che la disponibilità dei server pubblici può variare e i risultati dipendono dalla tua connessione Internet.

Opzioni utili

  • -t <tempo>: Durata del test in secondi (ad esempio, -t 30).
  • -p <porta>: Specifica la porta (ad esempio, -p 5001).
  • -u: Usa UDP invece di TCP.
  • -b <velocità>: Limita la larghezza di banda (ad esempio, -b 10M per 10 Mbps).
  • -R: Testa la direzione inversa (dal server al client).

Esempio di test UDP:

iperf3 -c 192.168.1.100 -u -b 100M

Interpretazione dei risultati

Al termine del test, iperf3 mostra una tabella con i risultati:

  • Interval: Intervallo di tempo.
  • Transfer: Quantità di dati trasferiti.
  • Bandwidth: Larghezza di banda in Mbps.

Esempio di output per un test locale:

[  5]   0.00-10.00  sec  1.13 GBytes  970 Mbits/sec

Questo indica che sono stati trasferiti 1,13 GB in 10 secondi a una velocità media di 970 Mbps.

Esempio di output per un test con il server pubblico bouygues.iperf.fr:

iperf3 -c bouygues.iperf.fr
Connecting to host bouygues.iperf.fr, port 5201
[ 4] local 192.168.0.47 port 56396 connected to 89.84.1.222 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[ 4]   0.00-1.00   sec  608 KBytes  4.98 Mbits/sec  0     48.1 KBytes
[ 4]   1.00-2.00   sec  1.24 MBytes  10.4 Mbits/sec  0     80.6 KBytes
[ 4]   2.00-3.00   sec  1.62 MBytes  13.6 Mbits/sec  0     120 KBytes
[ 4]   3.00-4.00   sec  2.11 MBytes  17.7 Mbits/sec  0     151 KBytes
[ 4]   4.00-5.00   sec  2.92 MBytes  24.5 Mbits/sec  0     173 KBytes
[ 4]   5.00-6.00   sec  2.98 MBytes  25.0 Mbits/sec  0     191 KBytes
[ 4]   6.00-7.00   sec  3.42 MBytes  28.7 Mbits/sec  0     212 KBytes
[ 4]   7.00-8.00   sec  1.30 MBytes  10.9 Mbits/sec  0     212 KBytes
[ 4]   8.00-9.00   sec  445 KBytes  3.65 Mbits/sec  1     212 KBytes
[ 4]   9.00-10.00  sec  891 KBytes  7.30 Mbits/sec  0     212 KBytes
[ ID] Interval           Transfer     Bandwidth       Retr
[ 4]   0.00-10.00  sec  17.5 MBytes  14.7 Mbits/sec  1     sender
[ 4]   0.00-10.00  sec  16.7 MBytes  14.0 Mbits/sec        receiver

In questo caso, il test mostra che sono stati trasferiti 17,5 MB in 10 secondi a una velocità media di 14,7 Mbps (mittente) e 14,0 Mbps (destinatario). La colonna Retr indica le ritrasmissioni (1 in questo caso), e Cwnd mostra la dimensione della finestra di congestione, che aumenta durante il test.

Conclusione

iperf è uno strumento semplice ed efficace per testare la velocità della rete. Consente di identificare rapidamente i colli di bottiglia in una connessione e valutare le prestazioni reali, sia in una rete locale che con server pubblici come bouygues.iperf.fr. Assicurati che il tuo firewall sia configurato correttamente e utilizza le opzioni appropriate per le tue esigenze. Se hai domande, lascia un commento qui sotto!