Chaoticum iperf3-Server (Deutschland):

Chaoticum betreibt einen freien iperf3-Server, welcher benutzt werden darf, um die Verbindungsgeschwindigkeit zu messen. Serverstandort ist Deutschland mit einer Bandbreite von max. 1Gbps.

Aufruf von iperf3

Um iperf3 aufzurufen, muss iperf3 installiert sein.

Debian/Ubuntu/Raspbian:

sudo apt-get update
sudo apt-get install iperf3 

Arch-Linux/Manjaro:

sudo pacman -Sy iperf3

Öffne ein Terminal und gib folgenden Befehl ein:

Für Sendegeschwindigkeit:

iperf3 -c chaoticum.ch

Für Empfangsgeschwinigkeit:

iperf3 -R -c chaoticum.ch

Du erhältst dann eine Ausgabe wie diese hier:

Connecting to host chaoticum.ch, port 5201
[  5] local 192.168.0.40 port 49478 connected to 176.9.51.222 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  4.14 MBytes  34.7 Mbits/sec    0    278 KBytes       
[  5]   1.00-2.00   sec  3.95 MBytes  33.2 Mbits/sec    9    275 KBytes       
[  5]   2.00-3.00   sec  3.89 MBytes  32.6 Mbits/sec    0    316 KBytes       
[  5]   3.00-4.00   sec  3.46 MBytes  29.0 Mbits/sec    1    236 KBytes       
[  5]   4.00-5.00   sec  3.89 MBytes  32.6 Mbits/sec    0    263 KBytes       
[  5]   5.00-6.00   sec  3.89 MBytes  32.6 Mbits/sec    0    279 KBytes       
[  5]   6.00-7.00   sec  3.46 MBytes  29.0 Mbits/sec    0    286 KBytes       
[  5]   7.00-8.00   sec  3.89 MBytes  32.6 Mbits/sec    0    287 KBytes       
[  5]   8.00-9.00   sec  3.89 MBytes  32.6 Mbits/sec    0    287 KBytes       
[  5]   9.00-10.00  sec  3.46 MBytes  29.0 Mbits/sec    0    297 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  37.9 MBytes  31.8 Mbits/sec   10             sender
[  5]   0.00-10.05  sec  37.4 MBytes  31.2 Mbits/sec                  receiver

iperf Done.

Sollte der iperf3-Server von jemanden benutzt werden, erhältst du die Ausgabe: "Server is busy", versuche es einfach etwas später nochmal.

Weitere Parameter:

Weitere Parameter kann man mit iperf3 -h erfragen. Was zur folgenden Ausgabe führt:

Usage: iperf3 [-s|-c host] [options]
       iperf3 [-h|--help] [-v|--version]

Server or Client:
  -p, --port      #         server port to listen on/connect to
  -f, --format   [kmgtKMGT] format to report: Kbits, Mbits, Gbits, Tbits
  -i, --interval  #         seconds between periodic throughput reports
  -F, --file name           xmit/recv the specified file
  -A, --affinity n/n,m      set CPU affinity
  -B, --bind      <host>    bind to the interface associated with the address <host>
  -V, --verbose             more detailed output
  -J, --json                output in JSON format
      --logfile f               send output to a log file
      --forceflush              force flushing output at every interval
  -d, --debug               emit debugging output
  -v, --version             show version information and quit
  -h, --help                show this message and quit
Server specific:
  -s, --server              run in server mode
  -D, --daemon              run the server as a daemon
  -I, --pidfile file        write PID file
  -1, --one-off             handle one client connection then exit
      --rsa-private-key-path    path to the RSA private key used to decrypt
                        authentication credentials
      --authorized-users-path   path to the configuration file containing user
                                credentials
Client specific:
  -c, --client    <host>    run in client mode, connecting to <host>
      --sctp                    use SCTP rather than TCP
  -X, --xbind <name>        bind SCTP association to links
      --nstreams      #         number of SCTP streams
  -u, --udp                 use UDP rather than TCP
      --connect-timeout #       timeout for control connection setup (ms)
  -b, --bitrate #[KMG][/#]  target bitrate in bits/sec (0 for unlimited)
                        (default 1 Mbit/sec for UDP, unlimited for TCP)
                        (optional slash and packet count for burst mode)
      --pacing-timer #[KMG]     set the timing for pacing, in microseconds (default 1000)
      --fq-rate #[KMG]          enable fair-queuing based socket pacing in
                                bits/sec (Linux only)
  -t, --time      #         time in seconds to transmit for (default 10 secs)
  -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
  -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -t or -n)
  -l, --length    #[KMG]    length of buffer to read or write
                            (default 128 KB for TCP, dynamic or 1460 for UDP)
      --cport         <port>    bind to a specific client port (TCP and UDP, default: ephemeral port)
  -P, --parallel  #         number of parallel client streams to run
  -R, --reverse             run in reverse mode (server sends, client receives)
  -w, --window    #[KMG]    set window size / socket buffer size
  -C, --congestion <algo>   set TCP congestion control algorithm (Linux and FreeBSD only)
  -M, --set-mss   #         set TCP/SCTP maximum segment size (MTU - 40 bytes)
  -N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm
  -4, --version4            only use IPv4
  -6, --version6            only use IPv6
  -S, --tos N               set the IP type of service, 0-255.
                            The usual prefixes for octal and hex can be used,
                            i.e. 52, 064 and 0x34 all specify the same value.
      --dscp N or --dscp val    set the IP dscp value, either 0-63 or symbolic.
                        Numeric values can be specified in decimal,
                        octal and hex (see --tos above).
  -L, --flowlabel N         set the IPv6 flow label (only supported on Linux)
  -Z, --zerocopy            use a 'zero copy' method of sending data
  -O, --omit N              omit the first n seconds
  -T, --title str           prefix every output line with this string
      --extra-data str          data string to include in client and server JSON
      --get-server-output       get results from server
      --udp-counters-64bit      use 64-bit counters in UDP test packets
      --repeating-payload       use repeating pattern in payload, instead of
                                randomized payload (like in iperf2)
      --username                username for authentication
      --rsa-public-key-path     path to the RSA public key used to encrypt
                        authentication credentials

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

iperf3 homepage at: https://software.es.net/iperf/
Report bugs to:     https://github.com/esnet/iperf

Eigenen iperf3-Server mit Systemd einrichten:

Um einen eigenen iperf3-Server zu betreiben, musst du unter /etc/systemd/ eine Datei namens iperf3.service erstellen und mit folgenden Inhalt füllen (sudo nano /etc/systemd/system/iperf3.service):

# /etc/systemd/system/iperf3.service
[Unit]
Description=iperf3 server
After=syslog.target network.target auditd.service

[Service]
ExecStart=/usr/bin/iperf3 -s

[Install]
WantedBy=multi-user.target

Danach die Services neu laden:

sudo systemctl daemon-reload

...und den Service starten mit:

sudo systemctl start iperf3.service

Überprüfen ob der Daemon läuft:

sudo systemctl status iperf3.service

Die Ausgabe sollte "active (running)" enthalten.


Um den iperf-Daemon bei jeden Systemstart zu aktivieren, nutze folgenden Befehl:

sudo systemctl enable iperf3.service

Missbrauch

Natürlich kann man den iperf-Server von chaoticum.ch auch missbrauchen, z.B. für DOS-Attacken. IP's welche exzessiv den Server benutzen, können gesperrt werden. Sollte es zu Angriffen kommen, wird der Service dauerhaft abgeschaltet. Scriptkiddies sollten also überlegen, welche Art Internet sie gerne in Zukunft wollen. Dieser Service kann jederzeit eingestellt werden, was einer zentralisierung des Internets weiter in die Hände spielt. Konzentriert euch lieber auf die grossen Player, nicht auf Hobby-Projekte. Noch besser, stellt Alternativen bereit. Ich zähle auf euch!


Erstellt: 19.7.2019