samouczek iperf3: Testowanie prędkości sieci w systemach Linux i Windows
10 min czytania - 7 maja 2026

Zainstaluj iperf3, uruchom testy przepustowości i dostrój bufory TCP, aby uzyskać dokładne wyniki w systemach Linux i Windows. Obejmuje testy UDP, dwukierunkowe i 10GbE+
samouczek iperf3: Pomiar wydajności sieci w systemach Linux i Windows
iperf3 to narzędzie wiersza poleceń do pomiaru przepustowości sieci, jittera i utraty pakietów między dwoma komputerami. Wykorzystuje ono model klient-serwer: jedna maszyna nasłuchuje, druga wysyła ruch, a ty otrzymujesz precyzyjne wartości przepustowości. Niniejszy przewodnik obejmuje instalację, podstawowe i zaawansowane testy oraz sposób dostrajania systemu w celu uzyskania dokładnych wyników na szybkich łączach.
Instalacja iperf3
Debian / Ubuntu
sudo apt update
sudo apt install iperf3
Potwierdź instalację za pomocą iperf3 --version. Zainstaluj go zarówno na serwerze, jak i na komputerach klienckich.
Fedora / CentOS / Rocky / Alma
Na Fedora 22+ lub CentOS 8+, Rocky lub AlmaLinux:
sudo dnf install iperf3
Na CentOS 7 użyj zamiast tego yum. Jeśli pakiet nie zostanie znaleziony, najpierw włącz repozytorium EPEL:
sudo yum install epel-release
sudo yum install iperf3
Jeśli firewall jest aktywny, otwórz port 5201:
sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload
Windows
Pobierz samodzielny plik wykonywalny z iperf.fr lub repozytorium ar51an/iperf3-win-builds GitHub. Rozpakuj go do folderu takiego jak C:\iperf3, a następnie zweryfikuj:
cd C:\iperf3
iperf3.exe -v
Aby uruchomić iperf3 z dowolnego katalogu, dodaj folder do systemowej PATH poprzez Właściwości systemu > Zaawansowane > Zmienne środowiskowe. Konieczne będzie również utworzenie reguły zapory przychodzącej zezwalającej na TCP na porcie 5201 w Zaporze systemu Windows Defender.
Konfiguracja serwera
Uruchom serwer z:
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 jest uruchomiony za pomocą ss -tulpn | grep 5201.
Jeśli port 5201 jest zablokowany w sieci, użyj -p, aby wybrać inny port. Aby powiązać z określonym interfejsem, użyj -B:
iperf3 -s -B 192.168.1.10
W przypadku jednorazowych testów iperf3 -s -1 obsługuje pojedyncze połączenie klienta, a następnie kończy działanie. Na łączach o wysokiej przepustowości (40 Gbps+), uruchom wiele instancji serwera na różnych portach, aby obejść limity jednowątkowego procesora.
Upewnij się, że zapora sieciowa zezwala na ruch na wybranym porcie. Na Ubuntu/Debian z UFW:
sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp # if testing UDP
Uruchamianie testów klienta
Podstawowy test TCP
iperf3 -c 192.168.1.10
Mierzy przepustowość wysyłania przez TCP przez 10 sekund. Wydłuż czas trwania za pomocą -t:
iperf3 -c 192.168.1.10 -t 30
Na łączach 10 Gb/s lub 25 Gb/s pojedynczy strumień TCP często osiąga 3-5 Gb/s ze względu na ograniczenia jednordzeniowego procesora. Użyj równoległych strumieni, aby nasycić łącze:
iperf3 -c 192.168.1.10 -P 8
Odczytywanie wyników
Każda linia interwału pokazuje Transfer (wysłane dane) i Bitrate (przepustowość). Dla TCP, również obserwuj:
- Retr (retransmisje). Wysokie liczby oznaczają utratę pakietów lub przeciążenie.
- Cwnd (okno przeciążenia). Jeśli jest niski lub zablokowany, limity rozmiaru bufora lub okna ograniczają przepustowość.
Na czystym łączu o przepustowości 1 Gb/s należy spodziewać się około 940 Mb/s po uwzględnieniu narzutu protokołu. Test kończy się podsumowaniem nadawcy i odbiorcy. W stabilnej sieci powinny się one zgadzać.
W przypadku testów UDP( flaga-u ) na wyjściu dodawany jest jitter (wariancja przybycia pakietów) oraz utracone/łączne datagramy. Jitter poniżej 1 ms i 0% strat są idealne dla ruchu w czasie rzeczywistym, takiego jak VoIP.
Przydatne flagi
| Flaga | Cel |
|---|---|
-c <IP> | Połączenie 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 |
-u | Tryb UDP |
-b <n> M | Docelowa przepustowość (UDP; domyślnie 1 Mb/s, jeśli pominięto) |
-R | Tryb odwrotny (serwer wysyła, klient odbiera) |
-w <n>K | Rozmiar okna TCP / bufora gniazda |
-J | Wyjście JSON |
-Z | Zerocopy (redukuje CPU na szybkich łączach) |
Testy zaawansowane
Testowanie dwukierunkowe
Flaga --bidir (iperf3 3.7+) testuje wysyłanie i pobieranie jednocześnie:
iperf3 -c 192.168.1.10 --bidir
Oba połączenia pochodzą od klienta, więc działa to przez NAT bez otwierania dodatkowych portów. Jeśli wyniki testów dwukierunkowych są znacznie niższe niż testów jednokierunkowych, router lub modem kablowy może zmagać się z ruchem w pełnym dupleksie.
Tryb odwrotny
Flaga -R odwraca przepływ danych, dzięki czemu 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 w przód i w tył wskazują na asymetryczne ścieżki, przeciążenia lub błędną konfigurację bufora.
Testy UDP
Testy UDP ujawniają jitter i utratę pakietów, które TCP ukrywa za retransmisjami. Zawsze ustawiaj docelową przepustowość za pomocą -b, ponieważ iperf3 domyślnie ustawia 1 Mbps dla UDP:
iperf3 -c 192.168.1.10 -u -b 1G
Aby zasymulować ruch VoIP (100 połączeń, 200-bajtowe pakiety):
iperf3 -c 192.168.1.10 -u -b 8M -l 200
Testy porównawcze jakości: jitter poniżej 5 ms jest dobry dla VoIP, powyżej 30 ms powoduje słyszalne problemy. Utrata pakietów powyżej 0,1% znacznie pogarsza jakość mediów w czasie rzeczywistym.
Dostrajanie i rozwiązywanie problemów
Typowe problemy
Tylko 100 Mb/s na gigabitowym łączu? Sprawdź prędkość fizycznego interfejsu za pomocą ethtool eth0. Auto-negocjacja czasami zawodzi i obniża prędkość łącza.
MSS pokazuje 536 bajtów w sieci Ethernet? Wykrywanie MTU ścieżki jest prawdopodobnie wyłączone. Domyślne MSS dla 1,500-bajtowego MTU wynosi 1,460 bajtów. Użyj -m podczas testowania, aby to sprawdzić. 536-bajtowy MSS marnuje przepustowość i dodaje narzut.
CPU osiąga maksimum na szybkich łączach? Użyj -Z (zerocopy), aby zmniejszyć obciążenie procesora. Dla 40 Gbps+, uruchom wiele instancji serwera na różnych portach i rozłóż je na rdzenie CPU.
Niespójne wyniki? Użyj -O 3, aby pominąć kilka pierwszych sekund, podczas gdy okno przeciążenia TCP rośnie. Pozostaw 30 sekund między testami, aby wyczyścić bufory sieciowe.
Pojedynczy strumień jest znacznie wolniejszy niż połączone strumienie równoległe? Jeśli jeden strumień osiąga 200 Mb/s, ale osiem połączonych strumieni osiąga 1,6 Gb/s, okno TCP lub bufory systemu operacyjnego ograniczają pojedynczy strumień. Dostosuj bufory poniżej.
Dostrajanie bufora TCP
Zacznij od obliczenia iloczynu przepustowości i opóźnienia: przepustowość x RTT. Łącze 10 Gb/s z 50 ms RTT daje BDP na poziomie 62,5 MB. Ustaw maksymalny bufor na co najmniej 2x BDP.
Dodaj je do /etc/sysctl.d/99-tcp-tuning.conf i zastosuj za pomocą sudo sysctl -p:
| Parametr | Zalecane (1-10 Gbps) |
|---|---|
net.core.rmem_max | 134217728 (128 MB) |
net.core.wmem_max | 134217728 (128 MB) |
net.ipv4.tcp_rmem | 4096 131072 134217728 |
net.ipv4.tcp_wmem | 4096 131072 134217728 |
net.core.default_qdisc | fq |
net.ipv4.tcp_congestion_control | bbr |
Utrzymuj net.ipv4.tcp_moderate_rcvbuf ustawione na 1, aby jądro automatycznie dostrajało się w tych zakresach. Włącz net.ipv4.tcp_window_scaling (ustawione na 1) dla okien TCP większych niż 64 KB.
Możesz także przełączyć się z domyślnego algorytmu przeciążenia CUBIC na Google BBR. Na łączach o wysokim opóźnieniu z pewną utratą pakietów, BBR konsekwentnie zapewnia wyższą przepustowość niż CUBIC.
Użyj flagi -w w iperf3, aby przetestować określone rozmiary buforów, ale pamiętaj, że nie mogą one przekraczać rmem_max lub wmem_max jądra. Zacznij od 8 MB dla łączy gigabitowych, 512 KB dla 100 Mbps.
Jeśli udostępniasz serwery dedykowane i chcesz zweryfikować wydajność sieci, uruchom testy bazowe iperf3 zaraz po konfiguracji i po wszelkich zmianach w sieci, aby wcześnie wykryć regresje.
Zalecenia wideo

samouczek iperf3: Testowanie prędkości sieci w systemach Linux i Windows
Zainstaluj iperf3, uruchom testy przepustowości i dostrój bufory TCP, aby uzyskać dokładne wyniki w systemach Linux i Windows. Obejmuje testy UDP, dwukierunkowe i 10GbE+
10 min czytania - 7 maja 2026
ZFS Snapshots: Jak je tworzyć, przywracać i automatyzować
10 min czytania - 5 maja 2026

Masz pytania lub potrzebujesz niestandardowego rozwiązania?
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie