Tutoriel iperf3 : tester la vitesse du réseau sous Linux et Windows

10 min de lecture - 7 mai 2026

hero section cover

Installez iperf3, effectuez des tests de bande passante et réglez les tampons TCP pour obtenir des résultats précis sous Linux et Windows. Couvre les tests UDP, bidirectionnels et 10 GbE+.

Tutoriel iperf3 : mesurer les performances réseau sous Linux et Windows

iperf3 est un outil en ligne de commande permettant de mesurer la bande passante, la gigue et la perte de paquets entre deux machines. Il utilise un modèle client-serveur : une machine est à l'écoute, l'autre envoie du trafic, et vous obtenez des chiffres précis sur le débit. Ce guide couvre l'installation, les tests de base et avancés, ainsi que la manière d'optimiser votre système pour obtenir des résultats précis sur des liaisons haut débit.

Installation d'iperf3

Debian / Ubuntu

sudo apt update
sudo apt install iperf3

Vérifiez l'installation avec iperf3 --version. Installez-le à la fois sur le serveur et sur les machines clientes.

Fedora / CentOS / Rocky / Alma

Sur Fedora 22 ou version ultérieure, CentOS 8 ou version ultérieure, Rocky ou AlmaLinux :

sudo dnf install iperf3

Sous CentOS 7, utilisez yum à la place. Si le paquet est introuvable, activez d'abord le dépôt EPEL :

sudo yum install epel-release
sudo yum install iperf3

Si votre pare-feu est actif, ouvrez le port 5201 :

sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload

Windows

Téléchargez l'exécutable autonome depuis iperf.fr ou depuis le dépôt GitHub ar51an/iperf3-win-builds. Décompressez-le dans un dossier tel que C:\iperf3, puis vérifiez :

cd C:\iperf3
iperf3.exe -v

Pour exécuter iperf3 depuis n'importe quel répertoire, ajoutez le dossier à votre PATH système via Propriétés système > Avancé > Variables d'environnement. Vous devrez également créer une règle de pare-feu entrante autorisant le protocole TCP sur le port 5201 dans le pare-feu Windows Defender.

Configuration du serveur

Démarrez le serveur avec :

iperf3 -s

Par défaut, le serveur écoute sur le port TCP 5201. Pour l'exécuter en arrière-plan avec journalisation :

iperf3 -s -D --logfile /var/log/iperf3.log

Vérifiez qu’il est en cours d’exécution avec ss -tulpn | grep 5201.

Si le port 5201 est bloqué sur votre réseau, utilisez -p pour choisir un autre port. Pour lier le serveur à une interface spécifique, utilisez -B:

iperf3 -s -B 192.168.1.10

Pour des tests ponctuels, iperf3 -s -1 gère une seule connexion client puis se ferme. Sur les liaisons à haut débit (40 Gbps et plus), lancez plusieurs instances du serveur sur des ports différents pour contourner les limites imposées par un processeur mono-thread.

Assurez-vous que votre pare-feu autorise le trafic sur le port choisi. Sous Ubuntu/Debian avec UFW :

sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp   # if testing UDP

Exécution des tests client

Test TCP de base

iperf3 -c 192.168.1.10

Ce test mesure la bande passante en envoi via TCP pendant 10 secondes. Prolongez la durée avec -t:

iperf3 -c 192.168.1.10 -t 30

Sur des liaisons de 10 Gbps ou 25 Gbps, un flux TCP unique atteint souvent un plafond de 3 à 5 Gbps en raison des limites d’un processeur monocœur. Utilisez des flux parallèles pour saturer la liaison :

iperf3 -c 192.168.1.10 -P 8

Interprétation des résultats

Chaque ligne d’intervalle indique le transfert (données envoyées) et le débit binaire (débit). Pour le protocole TCP, surveillez également :

  • Retr (retransmissions). Des valeurs élevées indiquent une perte de paquets ou une congestion.
  • Cwnd (fenêtre de congestion). Si cette valeur est faible ou bloquée, les limites de taille de la mémoire tampon ou de la fenêtre restreignent le débit.

Sur une liaison 1 Gbps sans encombrement, attendez-vous à environ 940 Mbps après prise en compte de la surcharge du protocole. Le test se termine par des lignes récapitulatives pour l’émetteur et le récepteur. Sur un réseau stable, celles-ci devraient être très proches.

Pour les tests UDP (-u flag), le résultat inclut la gigue (variation dans l'arrivée des paquets) ainsi que le nombre de datagrammes perdus et totaux. Une gigue inférieure à 1 ms et une perte de 0 % constituent des conditions idéales pour le trafic en temps réel, comme la VoIP.

Indicateurs utiles

IndicateurObjectif
-c <IP>Se connecter au serveur
-p <port>Utiliser un port spécifique (par défaut : 5201)
-t <sec>Durée du test en secondes (par défaut : 10)
-i <sec>Intervalle de rapport
-P <num>Flux parallèles
-uMode UDP
-b <n>MBande passante cible (UDP ; valeur par défaut : 1 Mbps si non spécifiée)
-RMode inversé (le serveur envoie, le client reçoit)
-w <n>KTaille de la fenêtre TCP / du tampon de socket
-JSortie JSON
-ZZerocopy (réduit la charge CPU sur les liaisons rapides)

Tests avancés

Tests bidirectionnels

L' --bidir option (iperf3 3.7+) teste simultanément le téléchargement et l’envoi de données :

iperf3 -c 192.168.1.10 --bidir

Les deux connexions proviennent du client, ce qui permet de contourner le NAT sans ouvrir de ports supplémentaires. Si les résultats bidirectionnels sont nettement inférieurs à ceux des tests unidirectionnels, il se peut que votre routeur ou votre modem câble ait du mal à gérer le trafic en duplex intégral.

Mode inversé

L' -R indicateur inverse le flux de données : le serveur envoie alors les données et le client les reçoit. Cela permet de mesurer la vitesse de téléchargement sans inverser les rôles :

iperf3 -c 192.168.1.10 -t 30 -i 5 -R

Des écarts importants entre les résultats en mode direct et en mode inverse indiquent des chemins asymétriques, une congestion ou des erreurs de configuration des tampons.

Tests UDP

Les tests UDP révèlent la gigue et la perte de paquets, que le protocole TCP masque derrière ses retransmissions. Définissez toujours une bande passante cible avec -b, car iperf3 utilise par défaut 1 Mbps pour UDP :

iperf3 -c 192.168.1.10 -u -b 1G

Pour simuler un trafic VoIP (100 appels, paquets de 200 octets) :

iperf3 -c 192.168.1.10 -u -b 8M -l 200

Critères de qualité : une gigue inférieure à 5 ms est acceptable pour la VoIP ; au-delà de 30 ms, des problèmes audibles apparaissent. Une perte de paquets supérieure à 0,1 % dégrade sensiblement la qualité des médias en temps réel.

Réglage et dépannage

Problèmes courants

Vous n'atteignez que 100 Mbps sur une liaison Gigabit ? Vérifiez la vitesse de votre interface physique à l'aide de ethtool eth0. L’auto-négociation échoue parfois et réduit la vitesse de la liaison.

Le MSS affiche 536 octets sur Ethernet ? La fonction Path MTU Discovery est probablement désactivée. Le MSS par défaut pour un MTU de 1 500 octets est de 1 460 octets. Utilisez -m lors de vos tests pour vérifier. Un MSS de 536 octets gaspille de la bande passante et ajoute une surcharge.

Le processeur tourne à plein régime sur des liaisons rapides ? Utilisez -Z (zerocopy) pour réduire la charge du processeur. Pour des débits supérieurs à 40 Gbps, exécutez plusieurs instances de serveur sur des ports différents et répartissez-les sur les cœurs du processeur.

Des résultats incohérents ? Utilisez -O 3 pour omettre les premières secondes pendant lesquelles la fenêtre de congestion TCP monte en puissance. Laissez 30 secondes entre chaque test pour vider les tampons réseau.

Un flux unique est-il beaucoup plus lent que l’ensemble des flux parallèles combinés ? Si un flux atteint 200 Mbps mais que huit flux combinés atteignent 1,6 Gbps, la fenêtre TCP ou les tampons du système d’exploitation limitent le flux unique. Réglez les tampons ci-dessous.

Réglage des tampons TCP

Commencez par calculer le produit bande passante-délai (BDP) : bande passante × RTT. Une liaison de 10 Gbps avec un RTT de 50 ms donne un BDP de 62,5 Mo. Définissez votre tampon maximal à au moins 2 fois le BDP.

Ajoutez ces valeurs à /etc/sysctl.d/99-tcp-tuning.conf et appliquez-les avec sudo sysctl -p:

ParamètreRecommandé (1–10 Gbps)
net.core.rmem_max134217728 (128 Mo)
net.core.wmem_max134217728 (128 Mo)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

Réglez net.ipv4.tcp_moderate_rcvbuf la valeur sur 1 pour que le noyau effectue un réglage automatique dans ces plages. Activez net.ipv4.tcp_window_scaling (régler sur 1) pour les fenêtres TCP supérieures à 64 Ko.

Vous pouvez également passer de l’algorithme de gestion de la congestion CUBIC (par défaut) à l’algorithme BBR de Google. Sur les liaisons à forte latence présentant une certaine perte de paquets, le BBR offre systématiquement un débit supérieur à celui du CUBIC.

Utilisez l’ -w indicateur dans iperf3 pour tester des tailles de tampon spécifiques, mais notez que celles-ci ne peuvent pas dépasser la valeur définie par le noyau rmem_max ou wmem_max. Commencez par 8 Mo pour les liaisons Gigabit, et 512 Ko pour celles à 100 Mbps.

Si vous provisionnez des serveurs dédiés et souhaitez valider les performances réseau, effectuez des tests de référence avec iperf3 immédiatement après la configuration et après toute modification du réseau afin de détecter rapidement les régressions.

Recommandation vidéo

Blog

À l'honneur cette semaine

Plus d'articles
Tutoriel iperf3 : tester la vitesse du réseau sous Linux et Windows

Tutoriel iperf3 : tester la vitesse du réseau sous Linux et Windows

Installez iperf3, effectuez des tests de bande passante et réglez les tampons TCP pour obtenir des résultats précis sous Linux et Windows. Couvre les tests UDP, bidirectionnels et 10 GbE+.

10 min de lecture - 7 mai 2026

Plus d'articles