Pomiar prędkości internetu bezpośrednio z routera z OpenWrt

Czy zmagałeś się kiedyś ze zmierzeniem prawdziwej prędkości twojego internetu?

Każdy router jest inny, dodatkowo sieci bezprzewodowe WiFi są w różnych standardach, na różnych częstotliwościach oraz oferujące różne prędkości w zależności od czynników zewnętrznych.

Jeżeli nasz komputer posiada kartę, która obsługuje tylko 2.4GHz w prędkości 54Mbps, to możemy mieć 100, 200 lub więcej Mbps, i tak szybciej niż 54Mbps nie polecimy.

Niektóre sieci 2.4GHz mogą oferować nawet to 300Mbps. W przypadku 5GHz i prędkości idą w górę znacząco. To nie znaczy, że zawsze jesteśmy w stanie osiągnąć zaoferowaną prędkość.

Jeżeli mamy 3 urządzenia, które aktywnie korzystają z sieci WiFi, to przepustowość sieci, czyli maksymalne prędkości, jakie jesteśmy w stanie osiągnąć, jest również dzielona na trzy.

W związku z tym, aby prawidłowo zmierzyć prędkość internetu, należałoby podłączyć się bezpośrednio, najlepiej na kablu, do routera i być jednym jedynym użytkownikiem, dla którego cała przepustowość będzie dostępna.

Jeżeli posiadasz router z oprogramowaniem OpenWrt, to pomijając wszystkich użytkowników, możesz dokonań pomiaru prędkości łącza bezpośrednio z poziomu routera.

Test ten jest dużo bardziej wiarygodny, gdyż polega on na bezpośredniej komunikacji pomiędzy naszym urządzeniem a usługodawcą internetowym.

Pomijając ograniczenia na łączach międzynarodowych, metoda opisana poniżej może nam przedstawić najbardziej zbliżony do rzeczywistego wynik.

Najlepszą metodą na sprawdzenie prędkości w sieci jest przy użyciu iperf3, które zainstalujemy na naszym routerze następującą komendą:

opkg update
opkg install iperf3

To właśnie narzędzie iperf3 jest najczęściej używane do sprawdzenia prędkości w sieci lokalnej pomiędzy jednym komputerem a drugim.

Na jednym uruchamiamy serwer a na drugim klienta, z którego następuje pomiar.

Tę samą metodę można wykorzystać do sprawdzenia prędkości w Internecie.

Nie będziemy jednak stawiali serwera po drugiej stronie świata. W tym celu posłużymy się ogólnie dostępnymi serwerami służącymi do tego celu (Public iPerf3 servers).

Komenda #

Oto moja komenda do sprawdzenia prędkości pobierania (Download):

iperf3 -c iperf.par2.as49434.net -4 -R -p 9223 -t 20

Oto moja komenda do sprawdzenia prędkości wysyłania (Upload):

iperf3 -c iperf.par2.as49434.net -4 -p 9223 -t 20

Opis komendy #

Domyślnie, gdy uruchamiamy iperf3 testuje on prędkość wysyłania (upload). Dodając parametr -R możemy odwrócić (reverse) metodę testowania z wysyłania (upload) na pobieranie (download).

Przy pomocy komendy -c uruchamiamy program w trybie klienta, a adres iperf.par2.as49434.net to nasz serwer.

Serwer możesz wybrać z Public iPerf3 servers

Gdy nasz internet domyślnie obsługuje tylko IPv4, wówczas precyzujemy to za pomocą parametru -4. W przypadku IPv6 będzie to analogicznie -6.

Każdy z serwerów na liście może pracować na innym porcie. Niektóre serwery oferują zakres portów. Aby sprecyzować port, używamy parametru -p. W powyższym przykładzie portem jest 9223

Za pomocą parametru -t precyzujemy, jak długo ma zająć pomiar prędkości. Domyślnie jest to 10 sekund, ja jednak z reguły wolę to wydłużyć do 20 sekund, stąd -t 20.

Wyniki #

Każdy z serwerów oferuje różną przepustowość, więc warto spróbować kilku w trakcie testów.

Czasami możemy się spotkać z odpowiedzią, że serwer jest za bardzo obciążony (Busy), lub też, że nasza próba została zablokowana (Connection refused). Wówczas należy spróbować inny serwer.

W moim przypadku, przy łączu 200Mbps prędkości pobierania (Download) otrzymałem:

Wynik - Pomiar prędkości pobierania przy pomocy iperf3 bezpośrednio na routerze z OpenWrt

Natomiast przy 20Mbps prędkości wysyłania (Upload):

Wynik - Pomiar prędkości wysyłania przy pomocy iperf3 bezpośrednio na routerze z OpenWrt

Całkiem nieźle.

Mówię “całkiem”, gdyż jeżeli porównam te wyniki, chociażby z testem na speed.cloudflare.com, to mogę zauważyć wahania i różnice, w zależności z jakiej metody połączenia korzystam oraz ilu aktywnych użytkowników mam w sieci.


Aby ułatwić sobie sprawę testowania, warto utworzyć plik na routerze, który będziemy uruchamiać bez konieczności pamiętania całej komendy iperf3.

echo "iperf3 -c iperf.par2.as49434.net -4 -R -p 9223 -t 20" > speedtest4
chmod +x speedtest4

Uruchomienie:

./speedtest4

Pozdrawiam

Komentarze