iperf3 Tutorial: Netzwerkgeschwindigkeit unter Linux und Windows testen

10 Min. Lesezeit - 7. Mai 2026

hero section cover
Inhaltsverzeichnis
  • iperf3-Tutorial: Messen der Netzwerkleistung unter Linux und Windows
  • Installation von iperf3
  • Einrichten des Servers
  • Durchführung von Client-Tests
  • Erweiterte Tests
  • Optimierung und Fehlerbehebung
  • Video-Empfehlung
Teilen

Installieren Sie iperf3, führen Sie Bandbreitentests durch, und stimmen Sie TCP-Puffer für genaue Ergebnisse unter Linux und Windows ab. Umfasst UDP-, bidirektionale und 10GbE+-Tests

iperf3-Tutorial: Messen der Netzwerkleistung unter Linux und Windows

iperf3 ist ein Befehlszeilentool zur Messung von Netzwerkbandbreite, Jitter und Paketverlust zwischen zwei Rechnern. Es nutzt ein Client-Server-Modell: Ein Rechner empfängt, der andere sendet Datenverkehr, und Sie erhalten präzise Durchsatzwerte. Dieser Leitfaden behandelt die Installation, grundlegende und fortgeschrittene Tests sowie die Optimierung Ihres Systems für genaue Ergebnisse bei Hochgeschwindigkeitsverbindungen.

Installation von iperf3

Debian / Ubuntu

sudo apt update
sudo apt install iperf3

Bestätigen Sie die Installation mit iperf3 --version. Installieren Sie es sowohl auf dem Server als auch auf den Client-Rechnern.

Fedora / CentOS / Rocky / Alma

Unter Fedora 22+ oder CentOS 8+, Rocky oder AlmaLinux:

sudo dnf install iperf3

Verwenden Sie unter CentOS 7 stattdessen yum stattdessen. Wenn das Paket nicht gefunden wird, aktivieren Sie zunächst das EPEL-Repository:

sudo yum install epel-release
sudo yum install iperf3

Wenn Ihre Firewall aktiv ist, öffnen Sie Port 5201:

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

Windows

Laden Sie die eigenständige ausführbare Datei von iperf.fr oder dem GitHub-Repo ar51an/iperf3-win-builds herunter. Entpacken Sie sie in einen Ordner wie C:\iperf3und überprüfen Sie anschließend:

cd C:\iperf3
iperf3.exe -v

Um iperf3 von einem beliebigen Verzeichnis aus auszuführen, fügen Sie den Ordner über „Systemeigenschaften“ > „Erweitert“ > „Umgebungsvariablen“ zu Ihrem System-PATH hinzu. Außerdem müssen Sie in der Windows Defender-Firewall eine eingehende Firewall-Regel erstellen, die TCP auf Port 5201 zulässt.

Einrichten des Servers

Starten Sie den Server mit:

iperf3 -s

Dieser lauscht standardmäßig auf TCP-Port 5201. Um ihn im Hintergrund mit Protokollierung auszuführen:

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

Überprüfen Sie, ob er läuft, mit ss -tulpn | grep 5201.

Wenn Port 5201 in Ihrem Netzwerk blockiert ist, verwenden Sie -p , um einen anderen Port auszuwählen. Um eine Verbindung zu einer bestimmten Schnittstelle herzustellen, verwenden Sie -B:

iperf3 -s -B 192.168.1.10

Für einmalige Tests iperf3 -s -1 wird eine einzelne Client-Verbindung verarbeitet und das Programm anschließend beendet. Bei Verbindungen mit hoher Bandbreite (40 Gbit/s+) sollten Sie mehrere Serverinstanzen auf verschiedenen Ports ausführen, um die Beschränkungen von Single-Thread-CPUs zu umgehen.

Stellen Sie sicher, dass Ihre Firewall den Datenverkehr auf dem gewählten Port zulässt. Unter Ubuntu/Debian mit UFW:

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

Durchführung von Client-Tests

Grundlegender TCP-Test

iperf3 -c 192.168.1.10

Dieser Test misst die Upload-Bandbreite über TCP für 10 Sekunden. Verlängern Sie die Dauer mit -t:

iperf3 -c 192.168.1.10 -t 30

Bei 10-Gbit/s- oder 25-Gbit/s-Verbindungen erreicht ein einzelner TCP-Stream aufgrund der Beschränkungen von Single-Core-CPUs oft nur 3–5 Gbit/s. Verwenden Sie parallele Streams, um die Verbindung auszulasten:

iperf3 -c 192.168.1.10 -P 8

Auswerten der Ergebnisse

Jede Intervallzeile zeigt „Transfer“ (gesendete Daten) und „Bitrate“ (Durchsatz) an. Beachten Sie bei TCP außerdem:

  • Retr (Wiederholungsübertragungen). Hohe Werte deuten auf Paketverlust oder Überlastung hin.
  • Cwnd (Überlastungsfenster). Wenn dieser Wert niedrig ist oder stagniert, begrenzen Puffer- oder Fenstergrößen den Durchsatz.

Bei einer sauberen 1-Gbit/s-Verbindung sind nach Abzug des Protokoll-Overheads etwa 940 Mbit/s zu erwarten. Der Test endet mit Zusammenfassungszeilen für Sender und Empfänger. In einem stabilen Netzwerk sollten diese weitgehend übereinstimmen.

Bei UDP-Tests (-u Flag) enthält die Ausgabe zusätzlich Jitter (Variation der Paketankunftszeiten) sowie verlorene/gesamte Datagramme. Ein Jitter unter 1 ms und 0 % Verlust sind ideal für Echtzeitverkehr wie VoIP.

Nützliche Flags

FlagZweck
-c <IP>Verbindung zum Server
-p <port>Bestimmten Port verwenden (Standard: 5201)
-t <sec>Testdauer in Sekunden (Standard: 10)
-i <sec>Berichtsintervall
-P <num>Parallele Streams
-uUDP-Modus
-b <n>MZielbandbreite (UDP; Standardwert ist 1 Mbit/s, falls nicht angegeben)
-RReverse-Modus (Server sendet, Client empfängt)
-w <n>KTCP-Fenster-/Socket-Puffergröße
-JJSON-Ausgabe
-ZZerocopy (reduziert die CPU-Auslastung bei schnellen Verbindungen)

Erweiterte Tests

Bidirektionale Tests

Das --bidir Flag (iperf3 3.7+) testet gleichzeitig Upload und Download:

iperf3 -c 192.168.1.10 --bidir

Beide Verbindungen gehen vom Client aus, sodass dies über NAT funktioniert, ohne zusätzliche Ports zu öffnen. Wenn die bidirektionalen Ergebnisse deutlich niedriger sind als bei Einwegtests, hat Ihr Router oder Kabelmodem möglicherweise Probleme mit Vollduplex-Datenverkehr.

Reverse-Modus

Das -R Flag kehrt den Datenfluss um, sodass der Server sendet und der Client empfängt. Dadurch wird die Download-Geschwindigkeit gemessen, ohne die Rollen zu vertauschen:

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

Große Unterschiede zwischen den Forward- und Reverse-Ergebnissen deuten auf asymmetrische Pfade, Überlastung oder Fehlkonfigurationen des Puffers hin.

UDP-Tests

UDP-Tests decken Jitter und Paketverluste auf, die TCP durch erneute Übertragungen verdeckt. Legen Sie immer eine Zielbandbreite fest -b, da iperf3 standardmäßig 1 Mbit/s für UDP verwendet:

iperf3 -c 192.168.1.10 -u -b 1G

Zur Simulation von VoIP-Verkehr (100 Anrufe, 200-Byte-Pakete):

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

Qualitätsbenchmarks: Ein Jitter unter 5 ms ist für VoIP gut, über 30 ms verursacht hörbare Probleme. Ein Paketverlust von über 0,1 % beeinträchtigt Echtzeitmedien merklich.

Optimierung und Fehlerbehebung

Häufige Probleme

Sie erreichen nur 100 Mbit/s auf einer Gigabit-Verbindung? Überprüfen Sie die Geschwindigkeit Ihrer physischen Schnittstelle mit ethtool eth0. Die Auto-Negotiation schlägt manchmal fehl und reduziert die Verbindung auf eine niedrigere Geschwindigkeit.

MSS zeigt 536 Byte bei Ethernet an? Path MTU Discovery ist wahrscheinlich deaktiviert. Der Standard-MSS für eine 1.500-Byte-MTU beträgt 1.460 Byte. Verwenden Sie -m während des Tests, um dies zu überprüfen. Ein MSS von 536 Byte verschwendet Bandbreite und verursacht zusätzlichen Overhead.

Die CPU ist bei schnellen Verbindungen ausgelastet? Verwenden Sie -Z (zerocopy), um die CPU-Auslastung zu reduzieren. Bei 40 Gbit/s und mehr sollten Sie mehrere Serverinstanzen auf verschiedenen Ports ausführen und diese auf die CPU-Kerne verteilen.

Inkonsistente Ergebnisse? Verwenden Sie -O 3 , um die ersten paar Sekunden auszulassen, während das TCP-Überlastungsfenster hochfährt. Lassen Sie 30 Sekunden zwischen den Testläufen, um die Netzwerkpuffer zu leeren.

Einzelner Stream deutlich langsamer als parallele Streams zusammen? Wenn ein Stream 200 Mbps erreicht, acht Streams zusammen aber 1,6 Gbps, begrenzen das TCP-Fenster oder die Betriebssystempuffer den einzelnen Stream. Passen Sie die Puffer unten an.

TCP-Pufferoptimierung

Berechne zunächst das Bandbreiten-Verzögerungsprodukt: Bandbreite x RTT. Eine 10-Gbit/s-Verbindung mit 50 ms RTT ergibt ein BDP von 62,5 MB. Stelle deinen maximalen Puffer auf mindestens das Doppelte des BDP ein.

Fügen Sie diese hinzu /etc/sysctl.d/99-tcp-tuning.conf und wenden Sie sie an mit sudo sysctl -p:

ParameterEmpfohlen (1–10 Gbit/s)
net.core.rmem_max134217728 (128 MB)
net.core.wmem_max134217728 (128 MB)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

Setze net.ipv4.tcp_moderate_rcvbuf den Wert auf 1, damit der Kernel innerhalb dieser Bereiche automatisch optimiert. Setze net.ipv4.tcp_window_scaling (auf 1 setzen) für TCP-Fenster, die größer als 64 KB sind.

Sie können auch vom standardmäßigen CUBIC-Überlastungsalgorithmus zu Googles BBR wechseln. Auf Verbindungen mit hoher Latenz und einigen Paketverlusten liefert BBR durchweg einen höheren Durchsatz als CUBIC.

Verwenden Sie das -w Flag in iperf3, um bestimmte Puffergrößen zu testen, beachte jedoch, dass diese den Wert des Kernels rmem_max oder wmem_max. Beginnen Sie mit 8 MB für Gigabit-Verbindungen und 512 KB für 100 Mbit/s.

Wenn Sie dedizierte Server bereitstellen und die Netzwerkleistung überprüfen möchten, führen Sie unmittelbar nach der Einrichtung und nach jeder Netzwerkänderung iperf3-Basistests durch, um Regressionen frühzeitig zu erkennen.

Video-Empfehlung

Blog

Diese Woche im Blickpunkt

Weitere Artikel
Warum es wichtig ist, einen leistungsstarken und ungemessenen VPS zu haben

Warum es wichtig ist, einen leistungsstarken und ungemessenen VPS zu haben

Sie brauchen zuverlässige Leistung und unbegrenzten Datenverkehr? Ein leistungsstarker VPS ohne Tarif bietet Ihnen die Geschwindigkeit, Skalierbarkeit und Bandbreite, die Sie benötigen, ohne dass Sie sich Gedanken über Nutzungsbeschränkungen machen müssen.

3 Min. Lesezeit - 9. Mai 2025

Wie man den Speicherplatz unter Linux optimiert

15 Min. Lesezeit - 22. Mai 2026

Weitere Artikel
background image

Haben Sie Fragen oder benötigen Sie eine individuelle Lösung?

icon

Flexible Optionen

icon

Globale Reichweite

icon

Sofortige Bereitstellung

icon

Flexible Optionen

icon

Globale Reichweite

icon

Sofortige Bereitstellung