Tutoriel iperf3 : tester la vitesse du réseau sous Linux et Windows
10 min de lecture - 7 mai 2026

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
| Indicateur | Objectif |
|---|---|
-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 |
-u | Mode UDP |
-b <n>M | Bande passante cible (UDP ; valeur par défaut : 1 Mbps si non spécifiée) |
-R | Mode inversé (le serveur envoie, le client reçoit) |
-w <n>K | Taille de la fenêtre TCP / du tampon de socket |
-J | Sortie JSON |
-Z | Zerocopy (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ètre | Recommandé (1–10 Gbps) |
|---|---|
net.core.rmem_max | 134217728 (128 Mo) |
net.core.wmem_max | 134217728 (128 Mo) |
net.ipv4.tcp_rmem | 4096 131072 134217728 |
net.ipv4.tcp_wmem | 4096 131072 134217728 |
net.core.default_qdisc | fq |
net.ipv4.tcp_congestion_control | bbr |
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

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
Profils optimisés pour l’optimisation de la charge de travail des serveurs Linux
16 min de lecture - 9 juin 2026