traceroute

Śledzi trasę pakietów do hosta docelowego pokazując wszystkie przeskoki (hopy).

traceroute pokazuje trasę, jaką pakiety pokonują od Twojej maszyny do wskazanego hosta. Wypisuje kolejne routery (tzw. hopy), przez które przechodzi ruch, wraz z czasem odpowiedzi każdego z nich. To narzędzie numer jeden, gdy chcesz odpowiedzieć na pytanie „gdzie to się zacina?” — czy problem leży u Ciebie, u dostawcy, czy dopiero gdzieś w połowie świata. Domyślnie wysyła sondy UDP, mierzy czas dla trzech prób na każdy hop i idzie maksymalnie do 30 przeskoków.

Składnia i najważniejsze opcje

Podstawowa forma to traceroute [opcje] host, gdzie host podajesz jako nazwę domeny lub adres IP.

  • -n — nie rozwiązuj nazw hostów, pokazuj same adresy IP. Szybciej i bez opóźnień na powolnym DNS.
  • -m maks_hopów — maksymalna liczba przeskoków (domyślnie 30). Przydatne, gdy trasa jest długa albo chcesz ją uciąć.
  • -q liczba — ile sond wysłać na każdy hop (domyślnie 3). Ustaw -q 1, jeśli chcesz zwięźlejszy wynik.
  • -w sekundy — jak długo czekać na odpowiedź z hopa (domyślnie 5 sekund). Skróć, żeby szybciej pomijać milczące routery.
  • -I — użyj sond ICMP ECHO zamiast UDP (jak w windowsowym tracert).
  • -T — użyj pakietów TCP SYN. Ratunek, gdy firewalle przepuszczają tylko konkretny port.
  • -p port — port docelowy (znaczenie zależy od trybu: UDP, ICMP lub TCP).

Przykłady użycia

  • traceroute google.com — najprostsze sprawdzenie trasy do serwera Google, z rozwiązywaniem nazw pośrednich routerów.
  • traceroute -n 8.8.8.8 — trasa do 8.8.8.8 bez zamiany IP na nazwy; wynik pojawia się od razu, bez oczekiwania na DNS.
  • traceroute -m 15 example.comograniczenie diagnostyki do 15 przeskoków, gdy interesuje Cię tylko początek trasy.
  • sudo traceroute -I example.com — sondy ICMP zamiast UDP; często przechodzą tam, gdzie UDP jest blokowane.
  • sudo traceroute -T -p 443 example.com — sondy TCP na port 443, żeby prześledzić trasę tak, jak widzi ją ruch HTTPS.

Częste błędy i pułapki

Gwiazdki * * * na jednym hopie nie znaczą, że łącze jest zerwane — wiele routerów po prostu nie odpowiada na sondy albo ma limit ICMP. Jeśli gwiazdki są tylko w środku, a host docelowy odpowiada, wszystko jest w porządku. Tryby -I i -T zwykle wymagają uprawnień roota (surowe gniazda), więc uruchamiaj je przez sudo. Pamiętaj też, że traceroute pokazuje trasę tylko w jedną stronę — droga powrotna pakietów może biec zupełnie inaczej, więc nie wyciągaj z niego wniosków o całej pętli. Na Windowsie odpowiednikiem jest tracert (domyślnie ICMP), a na innych systemach składnia flag potrafi się nieco różnić.

Powiązane komendy: ping, mtr, tracepath, dig, nslookup, ip route.