Dowiesz się, jak używać MTR (My Traceroute) i traceroute do diagnozy problemów z siecią, lokalizacji dużych opóźnień i oceny jakości połączenia.
📋 Wymagania
- Serwer VPS z dostępem root lub sudo
- Aktywne połączenie SSH
- Ubuntu/Debian (polecenia dostosowane do tych dystrybucji)
🔧 Instalacja
Traceroute (podstawowe narzędzie)
Bashsudo apt update sudo apt install traceroute -y
MTR (zaawansowane)
MTR łączy funkcje ping i traceroute w jednym narzędziu.
Bash1sudo apt update 2sudo apt install mtr-tiny -y 3 4# Pełna wersja z interfejsem graficznym (opcjonalnie) 5sudo apt install mtr -y
Weryfikacja
Bashtraceroute --version mtr --version
🛠️ Traceroute
Podstawowe użycie
Bash1traceroute google.com 2traceroute 8.8.8.8 3 4# Limit skoków (domyślnie 30) 5traceroute -m 20 google.com 6 7# Timeout w sekundach 8traceroute -w 5 google.com
Przydatne opcje
Bash1# UDP (domyślnie) 2traceroute -U google.com 3 4# TCP (często pewniejsze) 5traceroute -T google.com 6 7# ICMP (jak ping) 8traceroute -I google.com 9 10# Bez rozwiązywania DNS (szybciej) 11traceroute -n google.com
Przykładowy wynik
traceroute to google.com (142.250.185.14), 30 hops max, 60 byte packets
1 10.0.0.1 (10.0.0.1) 0.123 ms 0.089 ms 0.067 ms
2 192.168.1.1 (192.168.1.1) 5.234 ms 5.189 ms 5.145 ms
3 * * *
4 8.8.8.8 (8.8.8.8) 12.456 ms 12.389 ms 12.334 ms
...
🚀 MTR (zalecane)
MTR wysyła pakiety ciągle i liczy statystyki w czasie rzeczywistym.
Podstawowe polecenia
Bash1# Tryb interaktywny (zalecany) 2mtr google.com 3 4# Raport (nieinteraktywny) 5mtr --report google.com 6 7mtr --report --report-cycles 10 google.com 8mtr --report 8.8.8.8
Opcje zaawansowane
Bash1mtr --report --report-cycles 50 google.com 2 3mtr --tcp --port 80 google.com 4mtr --udp --port 53 8.8.8.8 5 6mtr --no-dns google.com 7mtr --interval 2 google.com 8mtr --psize 64 google.com
Tryb interaktywny
Bez --report:
- d — szczegółowe statystyki wł./wył.
- n — rozwiązywanie nazw DNS
- r — reset statystyk
- s — rozmiar pakietu
- j — interwał między pakietami
- q — wyjście
📊 Interpretacja wyników
Opóźnienie
- < 50 ms — bardzo dobrze (sieć lokalna lub blisko)
- 50–100 ms — dobrze (region)
- 100–200 ms — akceptowalnie (międzykontynentalnie)
- > 200 ms — wysokie, może powodować problemy
Utrata pakietów
- 0% — idealnie
- < 1% — typowe w Internecie
- 1–5% — dopuszczalne, ale może szkodzić
- > 5% — wymaga analizy
Gwiazdki (*)
W traceroute:
- pojedyncza * zamiast czasu — router nie odpowiedział na ten pakiet
- trzy * z rzędu — brak odpowiedzi (timeout lub filtr zapory)
🎯 Przypadki użycia
Wysokie opóźnienie
Bashmtr --report --report-cycles 30 8.8.8.8 mtr --report --report-cycles 30 1.1.1.1 mtr --report --report-cycles 50 twoja-domena.pl
Utrata pakietów
Bashmtr --tcp --port 443 --report --report-cycles 50 google.com mtr --report --report-cycles 100 twoj-serwer.pl
Test z VPS do Twojej lokalizacji
Bashcurl ifconfig.me mtr --report --report-cycles 30 TWOJE_PUBLICZNE_IP
🔍 Typowe problemy
Duże opóźnienie na jednym skoku
Bashmtr --tcp --port 443 --report google.com mtr --udp --port 53 --report 8.8.8.8 mtr --report google.com
Znacząca utrata pakietów
Bashmtr --report --report-cycles 100 cel.pl mtr --tcp --port 80 --report --report-cycles 50 cel.pl
Powtarzające się timeouty
Bashmtr --timeout 10 --report cel.pl mtr --tcp --port 443 --timeout 10 --report cel.pl
📝 Przydatne fragmenty
Skrypt diagnostyczny
Bash1#!/bin/bash 2echo "=== MTR do Google DNS ===" 3mtr --report --report-cycles 30 8.8.8.8 4 5echo -e "\n=== MTR do Cloudflare DNS ===" 6mtr --report --report-cycles 30 1.1.1.1 7 8echo -e "\n=== MTR do Twojej domeny ===" 9mtr --report --report-cycles 30 twoja-domena.pl
Zapis wyniku
Bashmtr --report --report-cycles 30 google.com > mtr-raport-$(date +%Y%m%d).txt mtr --report --report-cycles 30 --csv google.com > mtr-raport.csv
✅ Dobre praktyki
- Preferuj MTR — bogatsze statystyki niż sam traceroute
- Testuj kilka celów — porównaj wyniki
- Powtarzaj testy — sieć bywa zmienna
- TCP przy filtrowanym ICMP — część routerów blokuje ICMP, nie TCP
- Nie myl opóźnienia pośredniego z końcowym — liczy się opóźnienie do hosta docelowego
🆘 Rozwiązywanie problemów
MTR źle się wyświetla
Bashmtr --report cel.pl mtr --version
Błąd „mtr: command not found”
Bashsudo apt update sudo apt install mtr-tiny -y # lub sudo apt install mtr -y
Same gwiazdki
Bashmtr --tcp --port 443 --report cel.pl sudo ufw status sudo iptables -L
📚 Dodatkowe materiały
Powiązane poradniki
❓ Najczęstsze pytania
P: Różnica między traceroute a MTR?
O: Traceroute wysyła serię pakietów i kończy. MTR ciągle mierzy i zbiera statystyki — lepsze do diagnozy.
P: Dlaczego niektóre skoki mają gwiazdki?
O: Router nie odpowiedział — zapora, konfiguracja lub brak odpowiedzi na pakiety diagnostyczne.
P: Czy martwić się o wysokie opóźnienie na pośrednim skoku?
O: Nie zawsze. Jeśli opóźnienie do końcowego hosta jest akceptowalne, pośrednie skoki bywają mylące.
P: Jak czytać utratę pakietów w MTR?
O: Poniżej 1% jest typowe; 1–5% może być problematyczne; powyżej 5% — warto zbadać trasę.