speedtest-cli to napisane w Pythonie narzędzie wiersza poleceń, które mierzy przepustowość Twojego łącza, korzystając z infrastruktury serwerów Speedtest.net. Dostajesz trzy kluczowe liczby: prędkość pobierania (download), wysyłania (upload) oraz opóźnienie (ping). Idealne, gdy siedzisz na maszynie bez GUI (VPS, serwer, kontener) i chcesz szybko sprawdzić, czy to łącze jest wolne, czy tylko wydaje Ci się, że jest wolne.
Składnia i najważniejsze opcje
Podstawowe wywołanie jest banalnie proste: speedtest-cli. Bez żadnych argumentów samo znajdzie najbliższy serwer i zrobi pełny test. Reszta to dostrajanie:
--simple— okrojony output: tylko ping, download i upload, bez gadania o wyszukiwaniu serwerów i konfiguracji.--server ID— wymusza test przeciwko konkretnemu serwerowi o danym ID (możesz podać wielokrotnie).--list— wypisuje listę dostępnych serwerów wraz z ich ID i odległością w kilometrach.--json— wynik w formacie JSON, idealny do parsowania w skryptach.--csv— wynik w jednej linii CSV, wygodny do logowania w czasie.--bytes— pokazuje wartości w bajtach zamiast w bitach (uwaga na tę różnicę, o niej niżej).--share— generuje link do obrazka z wynikiem na Speedtest.net.--no-upload/--no-download— pomija odpowiednio test wysyłania lub pobierania.
Przykłady użycia
speedtest-cli --simple— szybki, zwięzły wynik bez zbędnego szumu. To Twój codzienny chleb.speedtest-cli --list | grep -i "Warsaw"— znajdź ID serwerów w Warszawie, żeby potem testować przeciwko konkretnemu.speedtest-cli --server 24304— test do wskazanego serwera; przydatne, gdy chcesz porównywalne wyniki dzień po dniu.speedtest-cli --json >> /var/log/speedtest.log— zrzuca wynik jako JSON do pliku, np. z crona, do monitoringu łącza w czasie.speedtest-cli --no-upload --bytes— mierzy tylko pobieranie i podaje wynik w bajtach na sekundę.
Częste błędy i pułapki
Pierwsza klasyczna wpadka: bity kontra bajty. Domyślnie wynik jest w megabitach na sekundę (Mbit/s), a nie megabajtach. Twoje łącze „100 Mbit” to około 12,5 MB/s przy pobieraniu pliku — to nie błąd narzędzia, tylko matematyka. Flaga --bytes przełącza jednostki, ale wtedy nie porównuj wyników z tymi bez niej.
Druga sprawa: to nie to samo co oficjalny klient speedtest od Ookla. Ten napisany w Pythonie projekt (sivel/speedtest-cli) jest niezależny i bywa mniej dokładny przy bardzo szybkich łączach (powyżej ~500 Mbit/s potrafi zaniżać). Do gigabitów rozważ oficjalny binarny klient Ookla.
Trzecia: automatyczny wybór serwera nie zawsze daje najlepszy wynik. Jeśli liczby skaczą między pomiarami, przypnij konkretny serwer przez --server, żeby mieć stały punkt odniesienia. I nie odpalaj testu co minutę z crona na produkcji — sam zużywa transfer.