mtr (My Traceroute) to narzędzie diagnostyczne sieci, które łączy w sobie ping i traceroute w jednym żywym widoku. Zamiast odpalać traceroute raz i zgadywać, gdzie pakiety gubią się po drodze, mtr w pętli wysyła sondy do każdego węzła (hopa) na trasie i na bieżąco pokazuje statystyki: ile pakietów ginie, jakie są opóźnienia minimalne, średnie i maksymalne oraz jak skacze jitter. Dzięki temu w kilka sekund widzisz, czy problem siedzi u Ciebie, u dostawcy, czy gdzieś w połowie świata.
Składnia i najważniejsze opcje
Podstawowa składnia jest banalnie prosta:
mtr [opcje] host
-n— nie rozwiązuj nazw DNS, pokazuj tylko adresy IP (szybciej i bez mylących wpisów reverse DNS).-b— pokaż jednocześnie nazwy hostów i adresy IP, dla pełnego obrazu.-r(lub--report) — tryb raportu:mtrrobi określoną liczbę cykli, wypisuje statystyki i kończy. Idealne do logów i zgłoszeń.-c liczba— ile cykli sond wysłać (domyślnie tryb interaktywny leci w nieskończoność, w raporcie zwykle 10).-w(lub--report-wide) — szeroki raport, nie obcina długich nazw hostów.-T— używaj pakietów TCP SYN zamiast ICMP (przydatne, gdy ICMP jest blokowany).-u— używaj pakietów UDP zamiast ICMP.-P port— docelowy numer portu przy trasowaniu TCP lub UDP.
Przykłady użycia
mtr google.com— uruchamia interaktywny, odświeżający się na żywo widok trasy do google.com. Wyjście klawiszemq.mtr -n 1.1.1.1— to samo, ale bez DNS, czyste IP. Szybciej i bez zaciemniania nazwami.mtr -rwc 10 example.com— wykonuje 10 cykli i wypisuje gotowy, szeroki raport, który możesz wkleić do zgłoszenia do dostawcy.mtr -T -P 443 example.com— testuje trasę pakietami TCP na port 443, gdy serwer lub firewall odrzuca zwykłe pingi ICMP.mtr -b -c 5 8.8.8.8— 5 cykli z nazwami i adresami IP obok siebie, dobry kompromis czytelności.
Częste błędy i pułapki
Pierwsza pułapka: wysokie straty na pojedynczym hopie pośrednim nie zawsze oznaczają problem. Wiele routerów celowo zaniża priorytet odpowiadania na ICMP (rate limiting), więc pokazują 50% strat, choć ruch tranzytowy przez nie idzie idealnie. Liczy się strata, która utrzymuje się od danego hopa aż do celu — to dopiero realny sygnał.
Druga: na większości systemów mtr wymaga uprawnień do tworzenia surowych gniazd (raw sockets), dlatego bywa instalowany z bitem setuid albo trzeba go odpalać przez sudo. Jeśli dostajesz błąd o uprawnieniach — to właśnie to.
Trzecia: jeśli ICMP jest blokowany po drodze, trasa urwie się gwiazdkami. Wtedy przełącz się na -T (TCP) lub -u (UDP), bo te pakiety często przechodzą tam, gdzie ICMP nie ma wstępu. Pamiętaj też, że istnieje mtr-tiny bez interfejsu graficznego oraz że w nowszych wersjach domyślnie działa mtr-packet w tle.
Powiązane komendy: ping, traceroute, tracepath, ip route, nslookup, dig.