Iperf als Dienst einrichten
Um einen Iperf-Server dauerhaft auf einem Linux-System zu aktivieren, muss man Iperf als Service
konfigurieren. Dieser Artikel beschreibt das Vorgehen zur Konfiguration des Iperf-Servers und den Test
des Services.
Voraussetzungen
Damit Iperf als Service einrichten können, muss Iperf zunächst installiert werden.
Das wird in der Regel über die Paketverwaltung eures Linux-Systems erfolgen:
# apt install iperf3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
iperf3 is already the newest version (3.9-1build1).
0 upgraded, 0 newly installed, 0 to remove and 24 not upgraded.
Für einen ersten Funktionstest startet ihr den Iperf-Server in einem Fenster und greift aus einem weiteren Fenster auf den Server auf localhost zu.
Zuerst die Ausgaben des Servers:
# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from ::1, port 53638
[ 5] local ::1 port 5201 connected to ::1 port 53644
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.78 GBytes 15.3 Gbits/sec
[ 5] 1.00-2.00 sec 2.33 GBytes 20.0 Gbits/sec
[ 5] 2.00-3.00 sec 2.51 GBytes 21.5 Gbits/sec
[ 5] 3.00-4.00 sec 2.46 GBytes 21.1 Gbits/sec
[ 5] 4.00-5.00 sec 2.53 GBytes 21.7 Gbits/sec
[ 5] 5.00-6.00 sec 2.57 GBytes 22.0 Gbits/sec
[ 5] 6.00-7.00 sec 2.63 GBytes 22.6 Gbits/sec
[ 5] 7.00-8.00 sec 2.67 GBytes 22.9 Gbits/sec
[ 5] 8.00-9.00 sec 2.87 GBytes 24.6 Gbits/sec
[ 5] 9.00-10.00 sec 2.84 GBytes 24.4 Gbits/sec
[ 5] 10.00-10.04 sec 111 MBytes 22.2 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.04 sec 25.3 GBytes 21.6 Gbits/sec receiver
Und so in etwa sollten die Ausgabe in Client-Fenster ausschauen:
# iperf3 -c localhost
Connecting to host localhost, port 5201
[ 5] local ::1 port 53644 connected to ::1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.89 GBytes 16.2 Gbits/sec 0 1.25 MBytes
[ 5] 1.00-2.00 sec 2.31 GBytes 19.8 Gbits/sec 0 1.75 MBytes
[ 5] 2.00-3.00 sec 2.53 GBytes 21.7 Gbits/sec 0 1.75 MBytes
[ 5] 3.00-4.00 sec 2.47 GBytes 21.2 Gbits/sec 0 2.31 MBytes
[ 5] 4.00-5.00 sec 2.53 GBytes 21.7 Gbits/sec 0 2.43 MBytes
[ 5] 5.00-6.00 sec 2.55 GBytes 21.9 Gbits/sec 0 3.68 MBytes
[ 5] 6.00-7.00 sec 2.66 GBytes 22.8 Gbits/sec 0 3.68 MBytes
[ 5] 7.00-8.00 sec 2.69 GBytes 23.1 Gbits/sec 0 3.68 MBytes
[ 5] 8.00-9.00 sec 2.85 GBytes 24.5 Gbits/sec 0 3.68 MBytes
[ 5] 9.00-10.00 sec 2.83 GBytes 24.3 Gbits/sec 0 3.68 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 25.3 GBytes 21.7 Gbits/sec 0 sender
[ 5] 0.00-10.04 sec 25.3 GBytes 21.6 Gbits/sec receiver
Damit hätten wir die grundlegende Funktion von Iperf3 auf unserem Linux-System geprüft.
Iperf-Service einrichten
Um einen neuen Service für den Systemd anzulegen, erstellen wir eine passende Datei im Verzeichnis /etc/systemd/system/
cat /etc/systemd/system/iperf3.service
[Unit]
Description=Iperf3 Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/iperf3 -s -p 4711
[Install]
WantedBy=multi-user.target
Gegebenenfalls müsst ihr den Pfad zu Iperf-Binary anpassen. Der Port auf dem Iperf hören soll kann hier ebenfalls angepasst werden.
Ohne Angabe der Option -p läuft Iperf3 auf Port 5201. Damit der systemd unsere Konfigurationsdatei einliest, muss er neu gestartet werden.
Danach wird der Dienst enabled damit er beim Booten automatisch gestartet wird. Das dritte Kommando startet den unseren neu konfigurierten
Iperf-Service.
sudo systemctl daemon-reload
sudo systemctl enable iperf3
sudo systemctl start iperf3
Jetzt sollte der Dienst laufen. Schauen wir mal nach
# systemctl status iperf3
iperf3.service - Iperf3 Server
Loaded: loaded (/etc/systemd/system/iperf3.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-01-18 19:36:17 CET; 24s ago
Main PID: 134909 (iperf3)
Tasks: 1 (limit: 4538)
Memory: 600.0K
CPU: 4ms
CGroup: /system.slice/iperf3.service
-- 134909 /usr/bin/iperf3 -s -p 4711
Jan 18 19:36:17 foobar systemd[1]: Started Iperf3 Server.
Zeit für den Test mit einem Iperf3-Client:
# iperf3 -c localhost -p 4711
Connecting to host localhost, port 4711
[ 5] local ::1 port 50474 connected to ::1 port 4711
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 2.42 GBytes 20.8 Gbits/sec 0 1.44 MBytes
[ 5] 1.00-2.00 sec 2.23 GBytes 19.1 Gbits/sec 0 1.94 MBytes
[ 5] 2.00-3.00 sec 2.37 GBytes 20.3 Gbits/sec 0 2.12 MBytes
[ 5] 3.00-4.00 sec 2.43 GBytes 20.8 Gbits/sec 0 2.31 MBytes
[ 5] 4.00-5.00 sec 2.74 GBytes 23.5 Gbits/sec 0 2.43 MBytes
[ 5] 5.00-6.00 sec 2.73 GBytes 23.5 Gbits/sec 0 3.93 MBytes
[ 5] 6.00-7.00 sec 2.94 GBytes 25.3 Gbits/sec 0 3.93 MBytes
[ 5] 7.00-8.00 sec 2.85 GBytes 24.5 Gbits/sec 0 3.93 MBytes
[ 5] 8.00-9.00 sec 2.55 GBytes 21.9 Gbits/sec 0 3.93 MBytes
[ 5] 9.00-10.00 sec 2.55 GBytes 21.9 Gbits/sec 0 3.93 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 25.8 GBytes 22.2 Gbits/sec 0 sender
[ 5] 0.00-10.04 sec 25.8 GBytes 22.1 Gbits/sec receiver
Unser Iperf3-Server ist einsatzbereit. Ohne weitere Vorkehrungen ist der Iperf-Server nun auf allen
Netzwerkschnittstellen (IPv4 und IPv6) aktiv und somit zum Beispiel bei Systemen in einer public Cloud auch
aus dem gesamten Internet erreichbar. Eine Firewall wie iptables kann die Zugriffe bei Bedarf eingrenzen.
Links zu Iperf
|