Samouczek dotyczący programu iperf3: Testowanie prędkości sieci w systemach Linux i Windows

10 min czytania - 7 maja 2026

hero section cover

Zainstaluj iperf3, przeprowadź testy przepustowości i dostosuj bufory TCP, aby uzyskać dokładne wyniki w systemach Linux i Windows. Obejmuje testy UDP, dwukierunkowe oraz testy 10GbE+.

Samouczek dotyczący iperf3: Pomiar wydajności sieci w systemach Linux i Windows

iperf3 to narzędzie wiersza poleceń służące do pomiaru przepustowości sieci, jittera i utraty pakietów między dwoma komputerami. Wykorzystuje model klient-serwer: jeden komputer nasłuchuje, drugi wysyła ruch, a użytkownik otrzymuje precyzyjne dane dotyczące przepustowości. Niniejszy przewodnik obejmuje instalację, testy podstawowe i zaawansowane oraz sposób dostosowania systemu w celu uzyskania dokładnych wyników na łączach o dużej prędkości.

Instalacja iperf3

Debian / Ubuntu

sudo apt update
sudo apt install iperf3

Potwierdź instalację za pomocą polecenia iperf3 --version. Zainstaluj go zarówno na serwerze, jak i na komputerach klienckich.

Fedora / CentOS / Rocky / Alma

W systemach Fedora 22+ lub CentOS 8+, Rocky lub AlmaLinux:

sudo dnf install iperf3

W systemie CentOS 7 użyj yum . Jeśli pakiet nie zostanie znaleziony, najpierw włącz repozytorium EPEL:

sudo yum install epel-release
sudo yum install iperf3

Jeśli zapora sieciowa jest aktywna, otwórz port 5201:

sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload

Windows

Pobierz samodzielny plik wykonywalny ze strony iperf.fr lub z repozytorium GitHub ar51an/iperf3-win-builds. Rozpakuj go do folderu o nazwie np. C:\iperf3, a następnie sprawdź:

cd C:\iperf3
iperf3.exe -v

Aby uruchomić iperf3 z dowolnego katalogu, dodaj ten folder do ścieżki systemowej PATH poprzez Właściwości systemu > Zaawansowane > Zmienne środowiskowe. Konieczne będzie również utworzenie reguły przychodzącej w zaporze Windows Defender Firewall, zezwalającej na ruch TCP na porcie 5201.

Konfiguracja serwera

Uruchom serwer za pomocą:

iperf3 -s

Domyślnie nasłuchuje on na porcie TCP 5201. Aby uruchomić go w tle z rejestrowaniem:

iperf3 -s -D --logfile /var/log/iperf3.log

Sprawdź, czy serwer działa, wpisując ss -tulpn | grep 5201.

Jeśli port 5201 jest zablokowany w Twojej sieci, użyj -p , aby wybrać inny port. Aby powiązać serwer z konkretnym interfejsem, użyj -B:

iperf3 -s -B 192.168.1.10

W przypadku jednorazowych testów iperf3 -s -1 obsługuje połączenie z jednym klientem, a następnie kończy działanie. W przypadku łączy o dużej przepustowości (40 Gbps+) uruchom wiele instancji serwera na różnych portach, aby ominąć ograniczenia związane z jednowątkowością procesora.

Upewnij się, że zapora sieciowa zezwala na ruch na wybranym porcie. W systemie Ubuntu/Debian z UFW:

sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp   # if testing UDP

Przeprowadzanie testów klienckich

Podstawowy test TCP

iperf3 -c 192.168.1.10

Test ten mierzy przepustowość wysyłania danych przez protokół TCP przez 10 sekund. Aby wydłużyć czas trwania testu, należy -t:

iperf3 -c 192.168.1.10 -t 30

W przypadku łączy 10 Gbps lub 25 Gbps pojedynczy strumień TCP często osiąga maksymalną przepustowość na poziomie 3–5 Gbps ze względu na ograniczenia jednordzeniowego procesora. Aby w pełni wykorzystać przepustowość łącza, należy użyć strumieni równoległych:

iperf3 -c 192.168.1.10 -P 8

Odczytywanie wyników

Każda linia przedziału pokazuje Transfer (wysłane dane) i Bitrate (przepustowość). W przypadku protokołu TCP należy również zwrócić uwagę na:

  • Retr (retransmisje). Wysokie wartości oznaczają utratę pakietów lub przeciążenie.
  • Cwnd (okno przeciążenia). Jeśli wartość jest niska lub utknęła, ograniczenia rozmiaru bufora lub okna ograniczają przepustowość.

W przypadku czystego łącza o przepustowości 1 Gbps można spodziewać się około 940 Mbps po uwzględnieniu obciążenia protokołu. Test kończy się wierszami podsumowującymi dane nadawcy i odbiorcy. W stabilnej sieci wartości te powinny być bardzo zbliżone.

W przypadku testów UDP (-u flag) wynik zawiera dodatkowo jitter (zmienność czasu przybycia pakietów) oraz liczbę utraconych i wszystkich datagramów. Jitter poniżej 1 ms i 0% utraty są idealne dla ruchu w czasie rzeczywistym, takiego jak VoIP.

Przydatne flagi

FlagaPrzeznaczenie
-c <IP>Połącz się z serwerem
-p <port>Użyj określonego portu (domyślnie: 5201)
-t <sec>Czas trwania testu w sekundach (domyślnie: 10)
-i <sec>Interwał raportowania
-P <num>Strumienie równoległe
-uTryb UDP
-b <n>MDocelowa przepustowość (UDP; domyślnie 1 Mbps, jeśli nie podano)
-RTryb odwrotny (serwer wysyła, klient odbiera)
-w <n>KRozmiar okna TCP / bufora gniazda
-JWyjście JSON
-ZZerocopy (zmniejsza obciążenie procesora na szybkich łączach)

Testy zaawansowane

Testy dwukierunkowe

Flaga --bidir (iperf3 3.7+) testuje jednocześnie wysyłanie i pobieranie danych:

iperf3 -c 192.168.1.10 --bidir

Oba połączenia pochodzą od klienta, więc rozwiązanie to działa przez NAT bez konieczności otwierania dodatkowych portów. Jeśli wyniki testów dwukierunkowych są znacznie niższe niż testów jednokierunkowych, router lub modem kablowy mogą mieć trudności z obsługą ruchu pełnodupleksowego.

Tryb odwrotny

Flaga -R odwraca kierunek przepływu danych, tak że serwer wysyła, a klient odbiera. Pozwala to zmierzyć prędkość pobierania bez zamiany ról:

iperf3 -c 192.168.1.10 -t 30 -i 5 -R

Duże różnice między wynikami testów w trybie forward i reverse wskazują na asymetryczne ścieżki, przeciążenie sieci lub nieprawidłową konfigurację buforów.

Testy UDP

Testy UDP ujawniają wahania opóźnień i utratę pakietów, które protokół TCP maskuje poprzez retransmisje. Zawsze należy ustawić docelową przepustowość za pomocą -b, ponieważ iperf3 domyślnie ustawia 1 Mbps dla protokołu UDP:

iperf3 -c 192.168.1.10 -u -b 1G

Aby zasymulować ruch VoIP (100 połączeń, pakiety o wielkości 200 bajtów):

iperf3 -c 192.168.1.10 -u -b 8M -l 200

Wskaźniki jakości: wahania poniżej 5 ms są dobre dla VoIP, powyżej 30 ms powodują słyszalne problemy. Utrata pakietów powyżej 0,1% zauważalnie pogarsza jakość multimediów w czasie rzeczywistym.

Optymalizacja i rozwiązywanie problemów

Typowe problemy

Osiągasz tylko 100 Mbps na łączu gigabitowym? Sprawdź prędkość swojego interfejsu fizycznego za pomocą ethtool eth0. Negocjacja automatyczna czasami kończy się niepowodzeniem i obniża prędkość łącza.

MSS pokazuje 536 bajtów w sieci Ethernet? Prawdopodobnie wyłączono funkcję Path MTU Discovery. Domyślna wartość MSS dla MTU wynoszącego 1 500 bajtów to 1 460 bajtów. Użyj -m podczas testów, aby to sprawdzić. MSS wynoszący 536 bajtów marnuje przepustowość i powoduje dodatkowe obciążenie.

Procesor pracuje na pełnych obrotach na szybkich łączach? Użyj -Z (zerocopy), aby zmniejszyć obciążenie procesora. W przypadku łączy o przepustowości 40 Gb/s i większej uruchom wiele instancji serwera na różnych portach i rozdziel je między rdzenie procesora.

Niespójne wyniki? Użyj -O 3 , aby pominąć pierwsze kilka sekund, podczas których okno przeciążenia TCP się powiększa. Odczekaj 30 sekund między kolejnymi testami, aby wyczyścić bufory sieciowe.

Pojedynczy strumień znacznie wolniejszy niż łączne strumienie równoległe? Jeśli jeden strumień osiąga 200 Mbps, ale osiem strumieni łącznie osiąga 1,6 Gbps, oznacza to, że okno TCP lub bufory systemu operacyjnego ograniczają przepustowość pojedynczego strumienia. Dostosuj poniższe bufory.

Dostosowanie buforów TCP

Zacznij od obliczenia iloczynu przepustowości i opóźnienia (BDP): przepustowość x RTT. Łącze o przepustowości 10 Gbps z opóźnieniem RTT wynoszącym 50 ms daje BDP równe 62,5 MB. Ustaw maksymalną wielkość bufora na co najmniej dwukrotność wartości BDP.

Dodaj te wartości do /etc/sysctl.d/99-tcp-tuning.conf i zastosuj za pomocą sudo sysctl -p:

ParametrZalecane (1–10 Gb/s)
net.core.rmem_max134217728 (128 MB)
net.core.wmem_max134217728 (128 MB)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

Ustaw net.ipv4.tcp_moderate_rcvbuf wartość 1, aby jądro automatycznie dostosowywało parametry w tych zakresach. Włącz net.ipv4.tcp_window_scaling (ustaw na 1), aby okna TCP były większe niż 64 KB.

Można również przełączyć się z domyślnego algorytmu przeciążeniowego CUBIC na algorytm BBR firmy Google. W przypadku łączy o dużym opóźnieniu, na których występują pewne straty pakietów, algorytm BBR konsekwentnie zapewnia wyższą przepustowość niż CUBIC.

Użyj -w w programie iperf3, aby przetestować konkretne rozmiary buforów, ale pamiętaj, że nie mogą one przekraczać wartości ustawionej w jądrze rmem_max lub wmem_max. Zacznij od 8 MB dla łączy gigabitowych i 512 KB dla łączy 100 Mbps.

Jeśli wdrażasz serwery dedykowane i chcesz zweryfikować wydajność sieci, uruchom testy porównawcze iperf3 zaraz po konfiguracji oraz po każdej zmianie w sieci, aby wcześnie wykryć spadki wydajności.

Rekomendacja wideo

Blog

Polecane w tym tygodniu

Więcej artykułów
Samouczek dotyczący programu iperf3: Testowanie prędkości sieci w systemach Linux i Windows

Samouczek dotyczący programu iperf3: Testowanie prędkości sieci w systemach Linux i Windows

Zainstaluj iperf3, przeprowadź testy przepustowości i dostosuj bufory TCP, aby uzyskać dokładne wyniki w systemach Linux i Windows. Obejmuje testy UDP, dwukierunkowe oraz testy 10GbE+.

10 min czytania - 7 maja 2026

Więcej artykułów
background image

Masz pytania lub potrzebujesz niestandardowego rozwiązania?

icon

Elastyczne opcje

icon

Globalny zasięg

icon

Natychmiastowe wdrożenie

icon

Elastyczne opcje

icon

Globalny zasięg

icon

Natychmiastowe wdrożenie