mtr

Łączy ping i traceroute w czasie rzeczywistym, pokazując statystyki strat na każdym hopie.

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: mtr robi 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 klawiszem q.
  • 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.