Sprawdzanie prędkości połączenia za pomocą iperf

Sprawdzanie prędkości połączenia za pomocą iperf

iperf to potężne narzędzie do testowania przepustowości sieci, które umożliwia pomiar prędkości przesyłania danych między dwoma urządzeniami. Jest szeroko stosowane przez administratorów systemów i inżynierów do diagnozowania problemów sieciowych oraz oceny wydajności połączenia. W tym artykule omówimy, jak zainstalować iperf, jak go używać oraz jak poprawnie skonfigurować zaporę sieciową, aby działał prawidłowo.

Instalacja iperf

Przed rozpoczęciem należy zainstalować iperf na obu urządzeniach: serwerze (odbierającym ruch) i kliencie (wysyłającym ruch). Istnieją dwie popularne wersje — iperf2 oraz iperf3. Zalecamy korzystanie z iperf3, ponieważ jest aktywnie wspierana i oferuje ulepszone funkcje.

Instalacja na Linux

  • Ubuntu/Debian:

    sudo apt update
    sudo apt install iperf3
  • CentOS/RHEL:

    sudo yum install iperf3

Instalacja na Windows

  1. Pobierz iperf3 z oficjalnej strony internetowej (np. https://iperf.fr/)
  2. Rozpakuj archiwum do wygodnego folderu (np. C:\iperf).
  3. Dodaj ścieżkę do folderu do zmiennej środowiskowej PATH, aby ułatwić uruchamianie z wiersza poleceń.

Instalacja na macOS

  • Za pomocą Homebrew:

    brew install iperf3

Po instalacji sprawdź wersję, aby upewnić się, że narzędzie działa:

iperf3 --version

Jak działa iperf?

iperf działa w modelu klient-serwer:

  • Serwer: Uruchamia się na jednym urządzeniu i oczekuje na przychodzące połączenia.
  • Klient: Łączy się z serwerem i wysyła dane w celu pomiaru prędkości.

Domyślnie iperf3 używa portu TCP 5201 (w iperf2 — 5001). Możesz zmienić port za pomocą opcji -p.

Konfiguracja zapory sieciowej dla iperf

Aby iperf działał poprawnie, upewnij się, że zapora sieciowa na Twoim urządzeniu nie blokuje połączeń na portach używanych przez iperf (domyślnie port TCP 5201, ale można określić inny za pomocą opcji -p). Poniżej znajdziesz instrukcje konfiguracji zapory dla różnych systemów operacyjnych.

Windows

  1. Otwórz ustawienia zapory:

    • Naciśnij Win + R, wpisz control i wybierz „Zapora systemu Windows Defender”.
    • Przejdź do sekcji „Zezwalaj aplikacji lub funkcji na komunikację przez Zaporę systemu Windows Defender”.
  2. Dodaj regułę dla iperf:

    • Kliknij „Zezwól na inną aplikację”, następnie „Przeglądaj” i wskaż plik iperf3.exe.
    • Zezwól na połączenia przychodzące i wychodzące dla sieci prywatnych i publicznych.
  3. Tworzenie reguły dla portu (alternatywna metoda):

    • W „Ustawieniach zaawansowanych” wybierz „Reguły przychodzące” → „Nowa reguła”.
    • Wybierz „Port”, określ TCP i port (np. 5201), a następnie zezwól na połączenie.
    • Powtórz dla połączeń wychodzących, jeśli jest to potrzebne.

Linux

W zależności od dystrybucji stosuje się różne narzędzia do zarządzania zaporą sieciową:

  • Dla ufw (Ubuntu, Debian):

    sudo ufw allow 5201/tcp
    sudo ufw status # Sprawdź status
  • Dla firewalld (CentOS, RHEL):

    sudo firewall-cmd --add-port=5201/tcp --permanent
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-ports # Sprawdź otwarte porty
  • Dla iptables (konfiguracja ręczna):

    sudo iptables -A INPUT -p tcp --dport 5201 -j ACCEPT
    sudo iptables -A OUTPUT -p tcp --sport 5201 -j ACCEPT

macOS

  1. Otwórz ustawienia zapory:

    • Przejdź do „Ustawienia systemowe” → „Bezpieczeństwo i prywatność” → karta „Zapora”.
    • Upewnij się, że zapora jest włączona.
  2. Dodaj wyjątek:

    • Kliknij „Opcje zapory” → „+” i dodaj aplikację iperf3.
    • Zezwól na połączenia przychodzące.
  3. Przez terminal (alternatywa):

    echo "pass in proto tcp from any to any port 5201" | sudo pfctl -f -
    sudo pfctl -e # Włącz zaporę

Ogólne zalecenia

  • Upewnij się, że port użyty w poleceniu iperf (np. iperf3 -s -p 5201) odpowiada otwartemu portowi w zaporze.
  • Użyj netstat lub ss (np. ss -tuln | grep 5201), aby sprawdzić, czy port jest nasłuchiwany.
  • Jeśli testy są przeprowadzane przez Internet, skonfiguruj zaporę routera lub serwera w chmurze.

Używanie iperf

Uruchamianie serwera

Na urządzeniu, które będzie serwerem, wykonaj:

iperf3 -s

Zobaczysz komunikat, że serwer został uruchomiony i nasłuchuje na porcie 5201.

Uruchamianie klienta

Na drugim urządzeniu (kliencie) podaj adres IP serwera:

iperf3 -c 192.168.1.100
  • -c: Tryb klienta.
  • 192.168.1.100: Zastąp adresem IP swojego serwera.

Domyślnie test trwa 10 sekund. Wyniki pokażą prędkość przesyłania danych w megabitach na sekundę (Mbps).

Testowanie z publicznym serwerem

Jeśli nie możesz uruchomić własnego serwera, możesz skorzystać z publicznych serwerów iperf. Na przykład serwer firmy Bouygues Telecom:

iperf3 -c bouygues.iperf.fr

To polecenie łączy się z publicznym serwerem bouygues.iperf.fr (domyślnie używa portu 5201) i mierzy prędkość między Twoim urządzeniem a serwerem. Pamiętaj, że dostępność publicznych serwerów może się zmieniać, a wyniki zależą od Twojego połączenia internetowego.

Przydatne opcje

  • -t <czas>: Czas trwania testu w sekundach (np. -t 30).
  • -p <port>: Określ port (np. -p 5001 wchodzących i wychodzących połączeń dla prywatnych i publicznych sieci.
  • -u: Użyj UDP zamiast TCP.
  • -b <prędkość>: Ogranicz przepustowość (np. -b 10M dla 10 Mbps).
  • -R: Testuj w odwrotnym kierunku (od serwera do klienta).

Przykładowy test UDP:

iperf3 -c 192.168.1.100 -u -b 100M

Interpretacja wyników

Po zakończeniu testu iperf3 wyświetla tabelę z wynikami:

  • Interval: Przedział czasowy.
  • Transfer: Ilość przesłanych danych.
  • Bandwidth: Przepustowość w Mbps.

Przykładowy wynik dla testu lokalnego:

[  5]   0.00-10.00  sec  1.13 GBytes  970 Mbits/sec

Oznacza to, że w ciągu 10 sekund przesłano 1,13 GB ze średnią prędkością 970 Mbps.

Przykładowy wynik dla testu z publicznym serwerem bouygues.iperf.fr:

iperf3 -c bouygues.iperf.fr
Connecting to host bouygues.iperf.fr, port 5201
[ 4] local 192.168.0.47 port 56396 connected to 89.84.1.222 port 5401
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[ 4]   0.00-1.00   sec  608 KBytes  4.98 Mbits/sec  0     48.1 KBytes
[ 4]   1.00-2.00   sec  1.24 MBytes  10.4 Mbits/sec  0     80.6 KBytes
[ 4]   2.00-3.00   sec  1.62 MBytes  13.6 Mbits/sec  0     120 KBytes
[ 4]   3.00-4.00   sec  2.11 MBytes  17.7 Mbits/sec  0     151 KBytes
[ 4]   4.00-5.00   sec  2.92 MBytes  24.5 Mbits/sec  0     173 KBytes
[ 4]   5.00-6.00   sec  2.98 MBytes  25.0 Mbits/sec  0     191 KBytes
[ 4]   6.00-7.00   sec  3.42 MBytes  28.7 Mbits/sec  0     212 KBytes
[ 4]   7.00-8.00   sec  1.30 MBytes  10.9 Mbits/sec  0     212 KBytes
[ 4]   8.00-9.00   sec  445 KBytes  3.65 Mbits/sec  1     212 KBytes
[ 4]   9.00-10.00  sec  891 KBytes  7.30 Mbits/sec  0     212 KBytes
[ ID] Interval           Transfer     Bandwidth       Retr
[ 4]   0.00-10.00  sec  17.5 MBytes  14.7 Mbits/sec  1     sender
[ 4]   0.00-10.00  sec  16.7 MBytes  14.0 Mbits/sec        receiver

W tym przypadku test pokazuje, że w ciągu 10 sekund przesłano 17,5 MB ze średnią prędkością 14,7 Mbps (nadawca) i 14,0 Mbps (odbiorca). Kolumna Retr wskazuje na retransmisje (w tym przypadku 1), a Cwnd pokazuje rozmiar okna przeciążenia, który wzrasta podczas testu.

Podsumowanie

iperf to proste i skuteczne narzędzie do sprawdzania prędkości sieci. Umożliwia szybkie wykrywanie wąskich gardeł w połączeniu i ocenę rzeczywistej wydajności, zarówno w sieci lokalnej, jak i przy połączeniu z publicznymi serwerami, takimi jak bouygues.iperf.fr. Upewnij się, że zapora sieciowa jest poprawnie skonfigurowana i używaj odpowiednich opcji dla swoich potrzeb. Jeśli masz pytania, zostaw komentarz poniżej!