iperf3

Mierzy przepustowość sieci między klientem a serwerem przez TCP lub UDP.

iperf3 to narzędzie do aktywnego pomiaru maksymalnej przepustowości sieci między dwoma maszynami. Działa w modelu klient-serwer: na jednym hoście odpalasz odbiornik (serwer), na drugim nadajnik (klient), a iperf3 przepycha między nimi ruch przez TCP, UDP albo SCTP i mówi Ci, ile realnie megabitów na sekundę dało się wycisnąć z łącza. Klasyczne zastosowania: sprawdzenie, czy między dwoma serwerami faktycznie masz obiecane 10 Gbit/s, diagnozowanie wolnego VPN-a albo polowanie na gubione pakiety na kapryśnym łączu. To nie jest narzędzie, które testuje Twoje łącze do internetu — mierzy odcinek wyłącznie między dwoma punktami, które sam wskażesz.

Składnia i najważniejsze opcje

Podstawowa składnia: iperf3 {-s | -c serwer} [-u] [-p port] [-t czas]

  • -s — tryb serwera (odbiornik); nasłuchuje na połączenia.
  • -c serwer — tryb klienta; łączy się z podanym adresem/hostem serwera.
  • -p portport nasłuchu/połączenia (domyślnie 5201).
  • -u — test po UDP zamiast domyślnego TCP (przydatne do mierzenia strat pakietów i jittera).
  • -t czas — długość testu w sekundach (domyślnie 10).
  • -b szybkość — docelowa przepustowość, np. 100M (domyślnie 1 Mbit/s dla UDP, bez limitu dla TCP).
  • -P liczba — liczba równoległych strumieni; pomaga wysycić szybkie łącza.
  • -R — odwrócenie kierunku, czyli to serwer wysyła dane do klienta.

Przykłady użycia

  • iperf3 -s — uruchamia serwer nasłuchujący na porcie 5201; odpalasz to na maszynie docelowej i zostawiasz w spokoju.
  • iperf3 -c 192.168.1.10 — łączy się z serwerem i robi 10-sekundowy test TCP w kierunku klient → serwer.
  • iperf3 -c 192.168.1.10 -t 30 -P 4 — 30-sekundowy test na czterech równoległych strumieniach, żeby wysycić szybkie łącze.
  • iperf3 -c 192.168.1.10 -u -b 200M — test UDP z docelową szybkością 200 Mbit/s; w wyniku zobaczysz utracone pakiety i jitter.
  • iperf3 -c 192.168.1.10 -R — odwraca kierunek, więc mierzysz transfer serwer → klient (np. test pobierania).

Częste błędy i pułapki

Najczęstszy zgrzyt: iperf3 nie jest kompatybilny ze starym iperf (wersja 2) — to dwa osobne programy i nie dogadają się ze sobą po sieci. Po drugie, błąd „Connection refused” zwykle znaczy, że albo nie odpaliłeś serwera, albo firewall blokuje port — pamiętaj otworzyć 5201/tcp (i 5201/udp przy -u). Przy UDP nie zapomnij o -b: domyślny limit 1 Mbit/s sprawi, że „zmierzysz” żółwia zamiast łącza. Pamiętaj też, że iperf3 jest jednowątkowy na strumień, więc na bardzo szybkich kartach (25/40/100 Gbit/s) możesz uderzyć w limit CPU, nie sieci — wtedy ratuje Cię -P. I drobiazg: serwer obsługuje jeden test naraz, więc dwóch klientów na ten sam port dostanie po łapach.

Powiązane komendy: iperf (v2), netperf, nuttcp, ethtool, ss, tcpdump, mtr.