So funktioniert iperf3#
iperf3 schickt für eine festgelegte Zeit so viele Daten wie möglich vom Client zum Server und misst, wie viel davon pro Sekunde ankommt. Die Daten werden im Arbeitsspeicher erzeugt und verworfen, Festplatten spielen also keine Rolle. Du misst damit nur das Netzwerk: Netzwerkkarten, Kabel, Switches, WLAN und Firewalls dazwischen.
Standardmäßig nutzt iperf3 den Port 5201.
iperf3 installieren#
Debian und Ubuntu#
sudo apt update && sudo apt install -y iperf3Während der Installation fragt Debian, ob iperf3 automatisch als Dienst starten soll. Wähle Nein, wenn du es nur gelegentlich zum Testen brauchst. Ein dauerhaft offener Testserver ist unnötig.
Weitere Systeme#
# Fedora, Rocky Linux, AlmaLinux
sudo dnf install -y iperf3
# Arch Linux
sudo pacman -S iperf3
# macOS mit Homebrew
brew install iperf3Für Windows gibt es keine offiziellen Builds. Bewährt haben sich die Pakete von iperf.fr oder die Installation per winget install iperf3. Achte darauf, eine aktuelle Version zu nutzen.
Prüfen, welche Version installiert ist:
iperf3 --versionDer erste Test#
Server starten#
Auf dem ersten Rechner, zum Beispiel deinem Server:
iperf3 -sDer Server wartet jetzt auf Verbindungen. Seine IP-Adresse findest du mit:
hostname -IClient starten#
Auf dem zweiten Rechner gibst du die IP des Servers an:
iperf3 -c 192.168.2.10Nach zehn Sekunden erscheint das Ergebnis:
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.09 GBytes 937 Mbits/sec receiverMit Strg+C beendest du den Server, wenn du fertig bist.
Die Ausgabe richtig lesen#
- Transfer: die gesamte übertragene Datenmenge
- Bitrate: die Geschwindigkeit, auf die es ankommt. Wichtig ist die Zeile receiver, denn sie zeigt, was wirklich angekommen ist.
- Retr: die Anzahl der Pakete, die erneut gesendet werden mussten. Bei einem gesunden Kabelnetz steht hier 0 oder ein kleiner Wert. Viele Wiederholungen deuten auf ein schlechtes Kabel, einen überlasteten Switch oder Störungen im WLAN hin.
Was ist ein gutes Ergebnis? Wegen des Protokoll-Overheads erreichst du nie ganz die Nennleistung:
| Verbindung | Realistisches Ergebnis |
|---|---|
| 1 Gbit/s Ethernet | 930 bis 945 Mbit/s |
| 2,5 Gbit/s Ethernet | 2,3 bis 2,37 Gbit/s |
| 10 Gbit/s Ethernet | 9,2 bis 9,5 Gbit/s |
| WLAN | stark schwankend, oft 30 bis 60 % der angezeigten Verbindungsrate |
Die wichtigsten Optionen#
Upload und Download messen#
Standardmäßig sendet der Client zum Server, du misst also den Upload des Clients. Mit -R dreht sich die Richtung um, und der Server sendet zum Client:
iperf3 -c 192.168.2.10 -RBeide Richtungen gleichzeitig misst du mit:
iperf3 -c 192.168.2.10 --bidirGerade bei WLAN und Powerline lohnt sich das, denn dort sind Upload und Download oft sehr unterschiedlich schnell.
Länger testen#
Zehn Sekunden reichen für einen ersten Eindruck. Für aussagekräftigere Werte, etwa bei WLAN, testest du länger:
iperf3 -c 192.168.2.10 -t 60Mit -O 3 lässt iperf3 die ersten drei Sekunden aus der Wertung, weil TCP am Anfang erst auf Touren kommen muss:
iperf3 -c 192.168.2.10 -t 30 -O 3Mehrere Verbindungen parallel#
Eine einzelne Verbindung schafft bei schnellen Netzen ab 10 Gbit/s nicht immer die volle Leistung. Mit -P startest du mehrere parallele Datenströme:
iperf3 -c 192.168.2.10 -P 4Am Ende zeigt die Zeile [SUM] die Gesamtgeschwindigkeit. Ist das Ergebnis mit -P 4 deutlich höher als ohne, ist nicht das Netzwerk der Engpass, sondern eine einzelne Verbindung oder ein CPU-Kern.
UDP testen#
TCP regelt seine Geschwindigkeit selbst und wiederholt verlorene Pakete. UDP macht das nicht und eignet sich deshalb, um Paketverlust und Jitter zu messen, wichtig für Telefonie, Videokonferenzen und Gaming. Bei UDP gibst du die Zielrate mit -b vor:
iperf3 -c 192.168.2.10 -u -b 100MIn der Ausgabe interessieren dich zwei Spalten:
- Jitter: Schwankung der Laufzeit. Unter 1 ms im Kabelnetz ist gut, für Telefonie sollte er unter 30 ms liegen.
- Lost/Total: verlorene Pakete. Im Kabelnetz sollte hier 0 % stehen.
Steigere den Wert bei -b schrittweise, zum Beispiel 100M, 500M, 900M. Ab dem Punkt, an dem die Verluste stark steigen, ist die Leitung ausgelastet.
Weitere nützliche Optionen#
| Option | Bedeutung |
|---|---|
-p 5202 | anderen Port verwenden, auf Server und Client gleich setzen |
-i 5 | Zwischenergebnis nur alle 5 Sekunden statt jede Sekunde |
-4 / -6 | nur IPv4 oder nur IPv6 verwenden |
-J | Ausgabe als JSON, praktisch für Skripte und Monitoring |
--logfile test.log | Ausgabe in eine Datei schreiben |
-1 | Server beendet sich nach einem einzigen Test (beim Server angeben) |
-D | Server im Hintergrund als Daemon starten |
Firewall freigeben#
Läuft auf dem Server eine Firewall, gibst du den Port für die Dauer des Tests frei. Mit UFW:
sudo ufw allow from 192.168.2.0/24 to any port 5201Nach dem Test entfernst du die Regel wieder:
sudo ufw delete allow from 192.168.2.0/24 to any port 5201iperf3 mit Docker#
Möchtest du auf einem Server nichts installieren, startest du den iperf3-Server einfach als Container. Er läuft nur so lange, bis du ihn mit Strg+C beendest, und wird danach automatisch gelöscht:
docker run --rm -it -p 5201:5201 -p 5201:5201/udp networkstatic/iperf3 -sTypische Anwendungsfälle#
Netzwerkkabel prüfen: Liefert eine Verbindung statt rund 940 Mbit/s nur etwa 94 Mbit/s, läuft sie mit 100 Mbit/s. Das liegt fast immer an einem beschädigten Kabel oder Stecker, bei dem nur zwei der vier Adernpaare funktionieren. Prüfen kannst du die ausgehandelte Geschwindigkeit mit:
ethtool eth0 | grep SpeedDen Namen deiner Netzwerkkarte findest du mit ip link.
WLAN ausmessen: Starte den Server auf einem Rechner, der per Kabel angeschlossen ist, und teste vom Laptop aus an verschiedenen Orten in der Wohnung, jeweils mit -t 30 und -R. So siehst du schnell, wo das WLAN schwächelt.
Proxmox und VMs: Teste zwischen zwei VMs auf demselben Host und zwischen VM und einem anderen Rechner. Ist die Verbindung zwischen den VMs schnell, nach außen aber langsam, liegt es an der physischen Netzwerkkarte oder am Switch. Ist schon die Verbindung zwischen den VMs langsam, prüf, ob die VMs die Netzwerkkarte VirtIO verwenden.
Backup-Netz prüfen: Bevor du einen Proxmox Backup Server einrichtest, lohnt sich ein Test zwischen Proxmox-Host und Backup-Server. Dann weißt du, mit welcher Geschwindigkeit die Backups maximal laufen können.
Kurzübersicht#
# Server starten
iperf3 -s
# Standardtest, Client sendet (Upload)
iperf3 -c IP-des-Servers
# Server sendet (Download)
iperf3 -c IP-des-Servers -R
# Beide Richtungen gleichzeitig
iperf3 -c IP-des-Servers --bidir
# 60 Sekunden mit 4 parallelen Verbindungen
iperf3 -c IP-des-Servers -t 60 -P 4
# UDP mit 100 Mbit/s, zeigt Jitter und Paketverlust
iperf3 -c IP-des-Servers -u -b 100M
