Wyszukiwanie w witrynie

Monitorowanie opóźnień sieci w systemie Linux za pomocą Ping, Mtr i Smokeping


Opóźnienie sieci to czas, jaki zajmuje przesyłanie danych między twoim komputerem a zdalnym serwerem. Wysokie opóźnienie może powodować wolne przeglądanie stron internetowych, opóźnienia w grach i opóźnienia w usługach w chmurze. Jeśli używasz Linuksa, masz już przydatne narzędzia do mierzenia i monitorowania opóźnienia sieci w czasie rzeczywistym lub przez dłuższy okres.

W tym przewodniku wyjaśnimy, jak:

  • Uruchom prosty test opóźnień za pomocą ping
  • Śledź ścieżki sieci i wykrywaj problematyczne węzły za pomocą mtr
  • Wykres opóźnień w czasie przy użyciu smokeping

Wszystkie narzędzia są darmowe i dostępne w większości dystrybucji Linuksa.

Czym jest opóźnienie sieci?

Opóźnienie jest zwykle mierzone w milisekundach (ms). Reprezentuje czas podróży w obie strony, jaki zajmuje małemu pakietowi danych opuszczenie Twojego komputera, dotarcie do docelowego serwera i powrót.

Typowe wartości opóźnienia:

  • <30 ms: Doskonałe (LAN lub światłowód)
  • 30-70 ms: Dobre (normalna szerokopasmowa)
  • 70-150 ms: Akceptowalne (trochę opóźnienia)
  • >150 ms: Wysokie opóźnienie (może wpływać na wydajność)

Testowanie opóźnienia sieci za pomocą polecenia ping

Najprostszym sposobem testowania opóźnienia jest użycie polecenia ping. Polecenie ping wysyła pakiety ICMP Echo Request do celu (takiego jak strona internetowa lub serwer) i mierzy czas podróży tam i z powrotem (Round-Trip Time, RTT) — czas potrzebny na otrzymanie odpowiedzi.

Polecenie ping jest potężnym narzędziem do mierzenia opóźnień sieci w systemie Linux. Analizując minimalne/średnie/maksymalne opóźnienie, utratę pakietów i jitter, można diagnozować problemy z łącznością.

Podstawowy przykład:

ping google.com

To wysyła pakiety do google.com wielokrotnie.

Zobaczysz takie wyjście:

PING google.com(maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e)) 56 data bytes
64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=1 ttl=59 time=16.1 ms
64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=2 ttl=59 time=17.3 ms

Powyższe polecenie będzie działać aż do momentu, gdy ręcznie je zatrzymasz, naciskając CTRL+C.

Tutaj,

  • time=16.1 ms: To jest opóźnienie (w milisekundach) dla tego pakietu.
  • Niższa jest lepsza. Wartość poniżej 100 ms jest typowa dla większości połączeń internetowych.

Wyślij tylko 5 pingów:

ping -c 5 google.com

To wysyła 5 zapytań echo do google.com i zatrzymuje się. Wynik pokazuje opóźnienie dla każdej odpowiedzi.

PING google.com(maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e)) 56 data bytes
64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=1 ttl=59 time=15.4 ms
64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=2 ttl=59 time=16.3 ms
64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=3 ttl=59 time=17.2 ms
64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=4 ttl=59 time=18.2 ms
64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=5 ttl=59 time=69.2 ms

--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 15.362/27.250/69.246/21.019 ms

Tutaj,

  • time=15.4 ms to opóźnienie dla każdej paczki.
  • Na końcu otrzymujesz min/avg/max/mdev (minimum, średnia, maksimum i odchylenie standardowe).

Statystyki podsumowujące polecenia ping

--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 15.362/27.250/69.246/21.019 ms

Statystyki transmisji pakietów:

  • 5 pakietów wysłanych: wysłano 5 pakietów żądania Echo ICMP.
  • 5 otrzymanych: Wszystkie 5 pakietów otrzymało odpowiedź (ICMP Echo Reply).
  • 0% utraty pakietów: Żadne pakiety nie zostały utracone (idealne warunki sieci).
  • czas 4005ms: Całkowity czas trwania testu (~4 sekundy).

Statystyki czasu podróży w obie strony (RTT):

To pokazuje opóźnienie (latencję) w milisekundach (ms):

  • min (15,362 ms): Najszybszy czas odpowiedzi.
  • avg (27,250 ms): Średni czas odpowiedzi (najważniejszy dla ogólnej latencji).
  • max (69,246 ms): Najwolniejszy czas odpowiedzi.
  • mdev (21,019 ms): Średnie odchylenie (mierzy jitter — zmienność opóźnienia).

Zgodnie z powyższymi statystykami, możemy wywnioskować następujące:

  • Twoje połączenie z Google działa.
  • Opóźnienie jest przeważnie niskie, ale występuje pewne drżenie (zmienność).
  • Brak utraty pakietów — żadne pakiety nie zostały odrzucone.
  • To jest akceptowalne do przeglądania internetu, a nawet do rozmów wideo.
  • Jeśli często widzisz wysokie mdev lub packet loss, jest to oznaka niestabilności.

Zaawansowane polecenia ping do testowania sieci

A. Ogranicz liczbę pingów (-c)

ping -c 5 google.com  # Sends only 5 packets

B. Zmień rozmiar pakietu (-s)

ping -s 1000 google.com  # Sends 1000-byte packets

C. Szybsze pingi (-i)

ping -i 0.2 google.com  # Sends a ping every 0.2 seconds

D. Rejestrowanie znacznika czasu (-D)

ping -D google.com >> ping_log.txt  # Logs with timestamps

E. Ciągłe pingowanie w celu monitorowania

ping google.com  # Runs until manually stopped (Ctrl+C)

Analizuj opóźnienia sieci za pomocą mtr (Ping + Traceroute)

mtr pokazuje, jak pakiety podróżują przez sieć. Łączy funkcjonalność ping i traceroute. Dla tych, którzy nie wiedzą, mtr oznacza My traceroute.

Możesz użyć mtr, kiedy;

  • Diagnozowanie wolnych połączeń,
  • Znajdowanie punktu awarii sieci,
  • Wykrywanie okresowej utraty na przeskokach.

Zainstaluj narzędzie mtr na swoim systemie Linux, używając polecenia:

sudo apt install mtr         # Debian/Ubuntu
sudo dnf install mtr         # Fedora

Teraz przeanalizuj opóźnienie sieci za pomocą polecenia:

mtr google.com

To wyświetla na żywo tabelę przeskoków, opóźnień i utraty pakietów.

Analizuj opóźnienia sieciowe za pomocą mtr

Możesz również wygenerować raport:

mtr -c 100 -r google.com > report.txt

Inne przydatne opcje:

  • -T: użyj TCP zamiast ICMP
  • -u: użyj UDP
  • -c: liczba pakietów do wysłania

Monitoruj opóźnienia sieci w czasie za pomocą smokeping

Do historycznego śledzenia opóźnień użyj smokeping. Działa w tle i przechowuje wykresy, które możesz przeglądać w przeglądarce. Należy pamiętać, że to narzędzie wymaga serwera internetowego, takiego jak Apache lub Nginx, aby móc przeglądać wykresy.

Smokeping jest przydatny do

  • Długoterminowe monitorowanie
  • Dostrzeganie wzorców (np. wieczorne spowolnienia),
  • Monitorowanie wielu serwerów.

Aby zainstalować smokeping na systemach opartych na Debianie, użyj następującego polecenia:

sudo apt install smokeping apache2

Po zainstalowaniu edytuj plik Targets:

sudo nano /etc/smokeping/config.d/Targets

Dodaj sekcję taką jak:

+ Google
menu = Google DNS
title = Google Ping
host = 8.8.8.8

Uruchom ponownie usługę smokeping:

sudo systemctl restart smokeping

Następnie otwórz przeglądarkę internetową i przejdź do http://localhost/smokeping.

Zobaczysz wykresy dotyczące opóźnień i utraty pakietów.

Monitoruj opóźnienia sieci za pomocą smokeping

Kliknij każdy link w lewym panelu, aby wyświetlić odpowiedni wykres.

Rozwiązywanie problemów z wysokim opóźnieniem i utratą pakietów

Jeśli wyniki Twojego pingu pokazują wysokie opóźnienie lub utratę pakietów, wypróbuj te rozwiązania:

1. Sprawdź swoje połączenie internetowe

  • Uruchom ponownie swój router/modem.
  • Testuj przy użyciu połączenia przewodowego (Wi-Fi może wprowadzać opóźnienia).

2. Porównaj różne cele

ping google.com
ping facebook.com

Jeśli tylko jedna strona ma wysokie opóźnienia, problem najprawdopodobniej leży po ich stronie.

3. Użyj Traceroute, aby znaleźć przeskoki w sieci

traceroute google.com  # Shows each hop’s latency

Wysokie opóźnienia na konkretnym przeskoku? To jest wąskie gardło.

4. Sprawdź problemy z dostawcą internetu

Skontaktuj się ze swoim dostawcą usług internetowych, jeśli wiele witryn ma wysokie opóźnienia.

Wniosek

Mierzenie opóźnień sieci w systemie Linux jest proste, gdy wiesz, jakich narzędzi użyć. Zacznij od ping do szybkich testów. Użyj mtr, aby rozwiązywać problemy na konkretnych trasach. Wdrażaj smokeping, jeśli chcesz mieć wizualne raporty w czasie.

Dzięki tym narzędziom możesz:

  • Wykrywaj wolne lub niesprawne łącza sieciowe,
  • Udowodnij, że problem leży po stronie twojego dostawcy usług internetowych,
  • Monitoruj wzorce opóźnień w czasie.

I to wszystko na teraz. Jakich narzędzi używasz do pomiaru i monitorowania opóźnień sieci? Proszę podziel się w sekcji komentarzy poniżej.

Powiązana lektura:

  • Jak Bezwysiłkowo Monitorować Ruch Internetowy za pomocą Sniffnet w Linuxie
  • Drukuj znacznik czasu wraz z wynikiem polecenia ping w Linuksie
  • Wyświetlanie wyniku polecenia Ping w formacie wykresu za pomocą Gping
  • Prettyping - Uczyń wynik polecenia ping bardziej atrakcyjnym i łatwiejszym do odczytania
  • Jak pingować wiele hostów naraz w Linuksie
  • Pingowanie wielu serwerów i wyświetlanie wyników w interfejsie tekstowym przypominającym Top

Zdjęcie wyróżniające autorstwa Pixabay.