Zum Inhalt springen

Iperf3: Unterschied zwischen den Versionen

Aus Foxwiki
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''{{BASEPAGENAME}}''' - Beschreibung
'''iperf3''' - Messen der Internet-Protokoll-Bandbreite


== Beschreibung ==
== Beschreibung ==
Messung des Netzwerkdurchsatzes
* TCP
* UDP
; Implementierung
[[iperf3]] ist eine neue Implementierung von iperf und nicht rückwärtskompatibel


== Installation ==
== Installation ==
Zeile 7: Zeile 13:
sudo apt install iperf3
sudo apt install iperf3
</syntaxhighlight>
</syntaxhighlight>
; Dateien
/etc/init.d/iperf3
/etc/ufw/applications.d/iperf3
/usr/bin/iperf3
/usr/lib/systemd/system/iperf3.service
/usr/share/doc/iperf3/README.md.gz
/usr/share/doc/iperf3/changelog.Debian.gz
/usr/share/doc/iperf3/changelog.gz
/usr/share/doc/iperf3/copyright
/usr/share/man/man1/iperf3.1.gz


== Aufruf ==
== Aufruf ==
; Server
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
iperf3 -s [options]
</syntaxhighlight>
; Client
<syntaxhighlight lang="bash" highlight="1" line copy>
iperf3 -c server [options]
</syntaxhighlight>
</syntaxhighlight>


=== Optionen ===
=== Optionen ===
==== Allgemein ====
{| class="wikitable sortable options gnu big"
{| class="wikitable sortable options gnu big"
! Unix !! GNU !! Parameter !! Beschreibung
|-
| -p || --port n
| || Server-Port zum Abhören/Verbinden auf n setzen (Standard 5201)
|-
| -f || --format
| || [kmgtKMGT] Format für die Berichterstattung: Kbits/Mbits/Gbits/Tbits
|-
| -i || --interval n
| || Pause von n Sekunden zwischen periodischen Durchsatzberichten; Standardwert ist 1, verwenden Sie 0, um diese Option zu deaktivieren.
|-
| -I || --pidfile file
| || Schreibt eine Datei mit der Prozess-ID, besonders nützlich bei der Ausführung als Daemon.
|-
|-
! Unix !! GNU !! Parameter !! Beschreibung
| -F || --file name
| || Verwenden Sie eine Datei als Quelle (auf dem Sender) oder Senke (auf dem Empfänger) von Daten, anstatt nur zufällige Daten zu generieren oder diese zu verwerfen
* Diese Funktion wird verwendet, um festzustellen, ob das Speichersubsystem den Engpass für Dateiübertragungen darstellt
* Sie verwandelt iperf3 nicht in ein Dateiübertragungswerkzeug
* Die Länge, die Attribute und in einigen Fällen auch der Inhalt der empfangenen Datei stimmen möglicherweise nicht mit denen der Originaldatei überein
|-
| -A || --affinity n/n,m
| || Legt die CPU-Affinität fest, sofern möglich (nur Linux, FreeBSD und Windows)
* Sowohl auf dem Client als auch auf dem Server können Sie die lokale Affinität festlegen, indem Sie die n-Form dieses Arguments verwenden (wobei n eine CPU-Nummer ist)
* Darüber hinaus können Sie auf der Client-Seite die Affinität des Servers für genau diesen einen Test mit der n,m-Form des Arguments überschreiben
* Beachten Sie, dass bei Verwendung dieser Funktion ein Prozess nur an eine einzelne CPU gebunden ist (im Gegensatz zu einem Satz, der möglicherweise mehrere CPUs enthält)
|-
| -B || --bind host[%dev]
| || An die spezifische Schnittstelle binden, die mit der Adresse host
* Wenn eine optionale Schnittstelle angegeben ist, wird sie als Abkürzung für --bind-dev dev behandelt.
* Beachten Sie, dass für IPv6-Link-Local-Adressliterale ein Prozentzeichen und der Name des Schnittstellengeräts erforderlich sind.
|-
| || --bind-dev dev
| || An die angegebene Netzwerkschnittstelle binden
* Diese Option verwendet SO_BINDTODEVICE und erfordert möglicherweise Root-Rechte. (Verfügbar unter Linux und möglicherweise anderen Systemen.)
|-
| -V || --verbose
| || gibt detailliertere Ausgaben
|-
| -J || --json
| || gibt im JSON-Format aus
|-
| || --json-stream
| || gibt im zeilenbegrenzten JSON-Format aus
|-
| || --logfile file
| || sendet die Ausgabe an eine Protokolldatei
|-
| || --forceflush
| || erzwingt das Leeren des Puffers in jedem Intervall
* Wird verwendet, um Pufferung beim Senden der Ausgabe an eine Pipe zu vermeiden
|-
| || --timestamps[=format]
| || fügt am Anfang jeder Ausgabzeile einen Zeitstempel ein
* Standardmäßig haben Zeitstempel das von ctime(1) ausgegebene Format
* Optional kann = gefolgt von einer Formatspezifikation übergeben werden, um die Zeitstempel anzupassen, siehe strftime (3)
* Wenn dieses optionale Format angegeben wird, muss das = unmittelbar auf die Option --timestamps folgen, ohne dass dazwischen Leerzeichen stehen
|-
| || --rcv-timeout #
| || Legt die Leerlauf-Zeitüberschreitung für den Empfang von Daten während aktiver Tests fest
* Der Empfänger bricht einen Test ab, wenn für diese Anzahl von Millisekunden (standardmäßig 120000 ms oder 2 Minuten) keine Daten vom Sender empfangen werden
|-
| || --snd-timeout #
| || Zeitüberschreitung für nicht bestätigte TCP-Daten festlegen (sowohl für Test- als auch für Steuerverbindungen) Diese Option kann verwendet werden, um im Falle einer Netzwerkpartitionierung während eines Tests eine schnellere Testzeitüberschreitung zu erzwingen
* Der erforderliche Parameter wird in ms angegeben und ist standardmäßig auf die Systemeinstellungen voreingestellt
* Diese Funktionalität hängt von der Socket-Option TCP_USER_TIMEOUT ab und funktioniert nicht auf Systemen, die diese Option nicht unterstützen.
|-
| || --use-pkcs1-padding
| || Diese Option ist nur bei Verwendung der Authentifizierungsfunktionen von iperf3 sinnvoll.
* Versionen von iperf3 vor 3.17 verwendeten PCKS1-Padding in den RSA-verschlüsselten Anmeldedaten, was anfällig für Seitenkanalangriffe war, durch die der private Schlüssel eines Servers offengelegt werden konnte
* Ab iperf-3.17 wird OAEP-Padding verwendet, dies ist jedoch eine grundlegende Änderung, die mit älteren iperf3-Versionen nicht kompatibel ist
* Verwenden Sie diese Option, um das weniger sichere, aber kompatiblere Verhalten beizubehalten
|-
| -d || --debug
| || Debugging-Ausgabe ausgeben
* In erster Linie (möglicherweise ausschließlich) für Entwickler von Nutzen.
|-
|-
| || || ||
| -v || --version
| || Versionsinformationen anzeigen und beenden.
|-
|-
| -h || --help
| || Eine Hilfeübersicht anzeigen.
|}
|}


Zeile 34: Zeile 140:


== Anwendung ==
== Anwendung ==
=== IPv4 ===
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -4
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -4
Zeile 39: Zeile 146:
     0.00-10.00  sec  1.11 GBytes  951 Mbits/sec    0            sender
     0.00-10.00  sec  1.11 GBytes  951 Mbits/sec    0            sender
     0.00-10.01  sec  1.11 GBytes  951 Mbits/sec                  receiver
     0.00-10.01  sec  1.11 GBytes  951 Mbits/sec                  receiver
</syntaxhighlight>


<syntaxhighlight lang="bash" highlight="1" line copy>
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -4 -R
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -4 -R
   Interval          Transfer    Bitrate        Retr
   Interval          Transfer    Bitrate        Retr
     0.00-10.01  sec  1.10 GBytes  948 Mbits/sec  335            sender
     0.00-10.01  sec  1.10 GBytes  948 Mbits/sec  335            sender
     0.00-10.00  sec  1.10 GBytes  948 Mbits/sec                  receiver
     0.00-10.00  sec  1.10 GBytes  948 Mbits/sec                  receiver
</syntaxhighlight>


External speedtest (IPv6):
=== IPv6 ===
 
<syntaxhighlight lang="bash" highlight="1" line copy>
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -6
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -6
   Interval          Transfer    Bitrate        Retr
   Interval          Transfer    Bitrate        Retr
     0.00-10.00  sec  1.09 GBytes  938 Mbits/sec    0            sender
     0.00-10.00  sec  1.09 GBytes  938 Mbits/sec    0            sender
     0.00-10.01  sec  1.09 GBytes  938 Mbits/sec                  receiver
     0.00-10.01  sec  1.09 GBytes  938 Mbits/sec                  receiver
</syntaxhighlight>


<syntaxhighlight lang="bash" highlight="1" line copy>
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -6 -R
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -6 -R
   Interval          Transfer    Bitrate        Retr
   Interval          Transfer    Bitrate        Retr
Zeile 84: Zeile 196:
----
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
----
* libiperf(3)
* https://software.es.net/iperf


=== Dokumentation ===
=== Dokumentation ===
; Man-Page  
; Man-Page  
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
# [https://manpages.debian.org/stable/iperf3/iperf3.1.en.html iperf3(1)]


<!--
<!--
Zeile 95: Zeile 210:
=== Links ===
=== Links ===
==== Projekt ====
==== Projekt ====
# https://iperf.fr/iperf-download.php
==== Weblinks ====
==== Weblinks ====
# https://de.wikipedia.org/wiki/Iperf
# https://speedtest.serverius.net/


<!--
{{DEFAULTSORT:iperf3}}
{{DEFAULTSORT:new}}
{{DISPLAYTITLE:iperf3}}
{{DISPLAYTITLE:new}}
-->


[[Kategorie:new]]
[[Kategorie:Netzwerk/Analyse]]


</noinclude>
</noinclude>

Aktuelle Version vom 23. Februar 2026, 11:08 Uhr

iperf3 - Messen der Internet-Protokoll-Bandbreite

Beschreibung

Messung des Netzwerkdurchsatzes

  • TCP
  • UDP
Implementierung

iperf3 ist eine neue Implementierung von iperf und nicht rückwärtskompatibel

Installation

sudo apt install iperf3
Dateien
/etc/init.d/iperf3
/etc/ufw/applications.d/iperf3

/usr/bin/iperf3

/usr/lib/systemd/system/iperf3.service

/usr/share/doc/iperf3/README.md.gz
/usr/share/doc/iperf3/changelog.Debian.gz
/usr/share/doc/iperf3/changelog.gz
/usr/share/doc/iperf3/copyright

/usr/share/man/man1/iperf3.1.gz

Aufruf

Server
iperf3 -s [options]
Client
iperf3 -c server [options]

Optionen

Allgemein

Unix GNU Parameter Beschreibung
-p --port n Server-Port zum Abhören/Verbinden auf n setzen (Standard 5201)
-f --format [kmgtKMGT] Format für die Berichterstattung: Kbits/Mbits/Gbits/Tbits
-i --interval n Pause von n Sekunden zwischen periodischen Durchsatzberichten; Standardwert ist 1, verwenden Sie 0, um diese Option zu deaktivieren.
-I --pidfile file Schreibt eine Datei mit der Prozess-ID, besonders nützlich bei der Ausführung als Daemon.
-F --file name Verwenden Sie eine Datei als Quelle (auf dem Sender) oder Senke (auf dem Empfänger) von Daten, anstatt nur zufällige Daten zu generieren oder diese zu verwerfen
  • Diese Funktion wird verwendet, um festzustellen, ob das Speichersubsystem den Engpass für Dateiübertragungen darstellt
  • Sie verwandelt iperf3 nicht in ein Dateiübertragungswerkzeug
  • Die Länge, die Attribute und in einigen Fällen auch der Inhalt der empfangenen Datei stimmen möglicherweise nicht mit denen der Originaldatei überein
-A --affinity n/n,m Legt die CPU-Affinität fest, sofern möglich (nur Linux, FreeBSD und Windows)
  • Sowohl auf dem Client als auch auf dem Server können Sie die lokale Affinität festlegen, indem Sie die n-Form dieses Arguments verwenden (wobei n eine CPU-Nummer ist)
  • Darüber hinaus können Sie auf der Client-Seite die Affinität des Servers für genau diesen einen Test mit der n,m-Form des Arguments überschreiben
  • Beachten Sie, dass bei Verwendung dieser Funktion ein Prozess nur an eine einzelne CPU gebunden ist (im Gegensatz zu einem Satz, der möglicherweise mehrere CPUs enthält)
-B --bind host[%dev] An die spezifische Schnittstelle binden, die mit der Adresse host
  • Wenn eine optionale Schnittstelle angegeben ist, wird sie als Abkürzung für --bind-dev dev behandelt.
  • Beachten Sie, dass für IPv6-Link-Local-Adressliterale ein Prozentzeichen und der Name des Schnittstellengeräts erforderlich sind.
--bind-dev dev An die angegebene Netzwerkschnittstelle binden
  • Diese Option verwendet SO_BINDTODEVICE und erfordert möglicherweise Root-Rechte. (Verfügbar unter Linux und möglicherweise anderen Systemen.)
-V --verbose gibt detailliertere Ausgaben
-J --json gibt im JSON-Format aus
--json-stream gibt im zeilenbegrenzten JSON-Format aus
--logfile file sendet die Ausgabe an eine Protokolldatei
--forceflush erzwingt das Leeren des Puffers in jedem Intervall
  • Wird verwendet, um Pufferung beim Senden der Ausgabe an eine Pipe zu vermeiden
--timestamps[=format] fügt am Anfang jeder Ausgabzeile einen Zeitstempel ein
  • Standardmäßig haben Zeitstempel das von ctime(1) ausgegebene Format
  • Optional kann = gefolgt von einer Formatspezifikation übergeben werden, um die Zeitstempel anzupassen, siehe strftime (3)
  • Wenn dieses optionale Format angegeben wird, muss das = unmittelbar auf die Option --timestamps folgen, ohne dass dazwischen Leerzeichen stehen
--rcv-timeout # Legt die Leerlauf-Zeitüberschreitung für den Empfang von Daten während aktiver Tests fest
  • Der Empfänger bricht einen Test ab, wenn für diese Anzahl von Millisekunden (standardmäßig 120000 ms oder 2 Minuten) keine Daten vom Sender empfangen werden
--snd-timeout # Zeitüberschreitung für nicht bestätigte TCP-Daten festlegen (sowohl für Test- als auch für Steuerverbindungen) Diese Option kann verwendet werden, um im Falle einer Netzwerkpartitionierung während eines Tests eine schnellere Testzeitüberschreitung zu erzwingen
  • Der erforderliche Parameter wird in ms angegeben und ist standardmäßig auf die Systemeinstellungen voreingestellt
  • Diese Funktionalität hängt von der Socket-Option TCP_USER_TIMEOUT ab und funktioniert nicht auf Systemen, die diese Option nicht unterstützen.
--use-pkcs1-padding Diese Option ist nur bei Verwendung der Authentifizierungsfunktionen von iperf3 sinnvoll.
  • Versionen von iperf3 vor 3.17 verwendeten PCKS1-Padding in den RSA-verschlüsselten Anmeldedaten, was anfällig für Seitenkanalangriffe war, durch die der private Schlüssel eines Servers offengelegt werden konnte
  • Ab iperf-3.17 wird OAEP-Padding verwendet, dies ist jedoch eine grundlegende Änderung, die mit älteren iperf3-Versionen nicht kompatibel ist
  • Verwenden Sie diese Option, um das weniger sichere, aber kompatiblere Verhalten beizubehalten
-d --debug Debugging-Ausgabe ausgeben
  • In erster Linie (möglicherweise ausschließlich) für Entwickler von Nutzen.
-v --version Versionsinformationen anzeigen und beenden.
-h --help Eine Hilfeübersicht anzeigen.

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

IPv4

iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -4
  Interval           Transfer     Bitrate         Retr
    0.00-10.00  sec  1.11 GBytes   951 Mbits/sec    0             sender
    0.00-10.01  sec  1.11 GBytes   951 Mbits/sec                  receiver
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -4 -R
  Interval           Transfer     Bitrate         Retr
    0.00-10.01  sec  1.10 GBytes   948 Mbits/sec  335             sender
    0.00-10.00  sec  1.10 GBytes   948 Mbits/sec                  receiver

IPv6

iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -6
  Interval           Transfer     Bitrate         Retr
    0.00-10.00  sec  1.09 GBytes   938 Mbits/sec    0             sender
    0.00-10.01  sec  1.09 GBytes   938 Mbits/sec                  receiver
iperf3 -c speedtest.serverius.net -fm -p5002 -O2 -P5 -6 -R
  Interval           Transfer     Bitrate         Retr
    0.00-10.01  sec  1.09 GBytes   931 Mbits/sec  243             sender
    0.00-10.00  sec  1.09 GBytes   934 Mbits/sec                  receiver

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Man-Page
  1. iperf3(1)


Projekt

  1. https://iperf.fr/iperf-download.php
  1. https://de.wikipedia.org/wiki/Iperf
  2. https://speedtest.serverius.net/