Polecenie tracert: traceroute w Windows, na Macu i w Linuksie

Kluczowy wniosek

Tracert (Windows) i traceroute (macOS i Linux) pokazują każdy router między Twoim komputerem a celem, z trzema czasami odpowiedzi dla każdego hopu. Uruchom tracert example.com w Wierszu polecenia lub traceroute example.com w Terminalu; dodaj -d (Windows) lub -n (Mac/Linux), aby pominąć tłumaczenie adresów na nazwy i szybciej dostać wynik. Gwiazdki lub komunikat „Upłynął limit czasu żądania” (Request timed out) na hopie w środku trasy zwykle oznaczają tylko, że ten router ignoruje pakiety testowe. Limity czasu ciągnące się do końca zwykle znaczą, że cel odrzuca pakiety testowe tracert: sprawdź, czy strona się ładuje, i powtórz śledzenie przez TCP 443; liczą się opóźnienie lub utrata pakietów, które utrzymują się aż do celu.

Sprawdź teraz

Przykład polecenia tracert w Windows z kolejnymi hopami, trzema czasami odpowiedzi i hopem bez odpowiedzi, obok traceroute na Macu i w Linuksie
Przykład polecenia tracert w Windows z kolejnymi hopami, trzema czasami odpowiedzi i hopem bez odpowiedzi, obok traceroute na Macu i w Linuksie
Zacznij czytać
  1. Co to jest polecenie tracert?
  2. Jak uruchomić tracert w Windows
  3. Opcje polecenia tracert
  4. Jak uruchomić traceroute na Macu
  5. Jak uruchomić traceroute w Linuksie
  6. Jak czytać wyniki tracert
  7. Jak działa tracert
  8. Tracert, traceroute, pathping i MTR — porównanie
  9. Traceroute online
  10. Polecenie tracert — najczęstsze pytania

Co to jest polecenie tracert?

Tracert (od trace route, czyli śledzenie trasy) to polecenie systemu Windows, które pokazuje drogę, jaką Twój ruch sieciowy pokonuje do innego hosta — każdy router po drodze („hop”, czyli przeskok) i czas, w jakim każdy z nich odpowiada. W macOS i Linuksie to samo narzędzie nazywa się traceroute.

Sięgnij po nie, gdy strona działa wolno lub jest nieosiągalna, a chcesz wiedzieć, gdzie leży problem: w Twojej własnej sieci, u dostawcy internetu, gdzieś pomiędzy czy po stronie celu. Ping mówi, czy host odpowiada, a tracert pokazuje trasę i miejsce, w którym się urywa.

Śledź trasę z 8 miast już teraz

Jak uruchomić tracert w Windows

  • Naciśnij Windows + R, wpisz cmd i naciśnij Enter (albo wyszukaj Wiersz polecenia).
  • Wpisz tracert, a po nim nazwę domeny lub adres IP, na przykład tracert example.com, i naciśnij Enter.
  • Poczekaj. Tracert sprawdza do 30 hopów, każdy trzykrotnie, i na każdą odpowiedź czeka do 4 sekund — śledzenie bez problemów kończy się w kilka sekund, ale pełne przekroczeń limitu czasu może potrwać kilka minut. Naciśnij Ctrl + C, aby przerwać wcześniej, albo przyspiesz je opcjami -d i -w (opisanymi niżej).
text
C:\> tracert example.com

Tracing route to example.com [203.0.113.10]
over a maximum of 30 hops:

  1     1 ms    <1 ms    <1 ms  192.168.1.1
  2     9 ms     8 ms     9 ms  10.20.0.1
  3    12 ms    11 ms    12 ms  198.51.100.33
  4     *        *        *     Request timed out.
  5    24 ms    23 ms    24 ms  203.0.113.1
  6    25 ms    24 ms    24 ms  203.0.113.10

Trace complete.

Każdy wiersz to jeden hop. Trzy liczby to trzy osobne pomiary, a adres po prawej to router, który odpowiedział. Hop 1 to prawie zawsze Twój własny router, a ostatni wiersz to cel. (Powyższe publiczne adresy pochodzą z zakresów zarezerwowanych na potrzeby dokumentacji.) W polskiej wersji Windows zobaczysz komunikaty „Śledzenie trasy do …”, „Upłynął limit czasu żądania.” i „Śledzenie zakończone.”

Opcje polecenia tracert

Składnia to tracert [options] target (Microsoft). Opcje, z których naprawdę skorzystasz:

OpcjaDziałaniePrzykład
-dNie tłumacz adresów IP na nazwy hostów — znacznie szybciejtracert -d example.com
-h max_hopsMaksymalna liczba hopów (domyślnie 30)tracert -h 15 example.com
-w timeoutCzas oczekiwania na każdą odpowiedź w milisekundach (domyślnie 4000)tracert -w 1000 example.com
-4Wymuś IPv4tracert -4 example.com
-6Wymuś IPv6tracert -6 example.com

Opcje można dowolnie łączyć: tracert -d -w 1000 example.com daje najszybsze użyteczne śledzenie. Aby zapisać wynik dla pomocy technicznej dostawcy internetu lub hostingu, przekieruj go do pliku: tracert -d example.com > trace.txt.

Tracert w Windows nie ma opcji portu: zawsze wysyła żądania echa ICMP. Aby prześledzić trasę tak, jak zaczyna się połączenie HTTPS, czyli przez port TCP 443, użyj sudo traceroute -T -p 443 w Linuksie lub WSL, sudo traceroute -e -P TCP -p 443 na Macu albo naszego traceroute online przez TCP 443.

Jak uruchomić traceroute na Macu

Otwórz Terminal (Aplikacje › Narzędzia) i uruchom traceroute example.com. macOS domyślnie wysyła pakiety testowe UDP; dodaj -I, aby używać ICMP tak jak Windows — wtedy często odpowiadają też routery, które ignorują UDP. Przydatne opcje: -n (bez tłumaczenia adresów na nazwy), -m 30 (maksymalna liczba hopów; w macOS domyślnie jest to 64), -w 2 (ile sekund czekać na każdy pakiet testowy) i -q 1 (jeden pakiet testowy na hop zamiast trzech).

bash
traceroute -n -I example.com

Jak uruchomić traceroute w Linuksie

Uruchom traceroute example.com. Jeśli polecenie nie zostanie znalezione, zainstaluj je (sudo apt install traceroute w Debianie/Ubuntu, sudo dnf install traceroute w Fedorze) albo użyj polecenia tracepath, które zwykle jest preinstalowane. Traceroute w Linuksie domyślnie wysyła pakiety testowe UDP, po 3 na hop, maksymalnie do 30 hopów.

OpcjaDziałanie
-nPokazuj tylko adresy IP (bez zapytań DNS)
-IUżywaj pakietów ICMP echo (jak tracert w Windows)
-TUżywaj pakietów TCP SYN (domyślnie port 80) — przechodzą przez zapory, które blokują UDP/ICMP; wymaga sudo
-p portPort docelowy pakietów testowych, np. -T -p 443
-m max_ttlMaksymalna liczba hopów (domyślnie 30)
-q nLiczba pakietów testowych na hop (domyślnie 3)
-w secondsCzas oczekiwania na każdą odpowiedź
text
$ traceroute -n example.com
traceroute to example.com (203.0.113.10), 30 hops max, 60 byte packets
 1  192.168.1.1  0.612 ms  0.571 ms  0.534 ms
 2  10.20.0.1  8.911 ms  9.004 ms  8.872 ms
 3  * * *
 4  203.0.113.10  24.112 ms  23.980 ms  24.051 ms

Aby przetestować drogę do serwera WWW tak, jak zaczyna się połączenie HTTPS, prześledź trasę przez port TCP 443: sudo traceroute -T -p 443 example.com.

Jak czytać wyniki tracert

  • Przekroczenie limitu czasu na jednym hopie w środku trasy, ale kolejne hopy odpowiadają (* lub „Upłynął limit czasu żądania” / „Request timed out”): to normalne. Wiele routerów jest skonfigurowanych tak, aby ignorować te pakiety testowe lub ograniczać liczbę odpowiedzi. Trasa jest w porządku.
  • Przekroczenia limitu czasu od jednego hopu aż do końca: po ostatnim hopie, który odpowiedział, nic już nie odpowiada na pakiety testowe. Jeśli strona mimo to się ładuje, cel lub zapora przed nim po prostu odrzuca pakiety testowe: zanim obwinisz trasę, powtórz śledzenie przez TCP 443. Jeśli strona też się nie ładuje, zanotuj ostatni odpowiadający hop; to z tą siecią trzeba się skontaktować. W przeglądarce zwykle widać to jako ERR_CONNECTION_TIMED_OUT.
  • Skok opóźnienia, który utrzymuje się na wszystkich kolejnych hopach (na przykład 10 ms → 120 ms → 121 ms → 125 ms): opóźnienie jest rzeczywiste i zaczyna się na tym hopie — często to łącze dalekosiężne lub przeciążona sieć. Skok na jednym hopie, po którym czasy znów spadają, oznacza tylko, że ten router wolno odpowiada, i można go zignorować.
  • „Host docelowy jest nieosiągalny” lub „Sieć docelowa jest nieosiągalna” (Destination host unreachable / Destination net unreachable; !H lub !N na Macu i w Linuksie, !X przy celowej blokadzie): router odpowiedział, że nie może dostarczyć pakietów. „Sieć” oznacza, że nie ma trasy do tej sieci, „host” — zwykle że ostatni router nie dociera do samego hosta. Sprawdź adres; jeśli jest poprawny, problem leży na routerze, który zgłosił błąd, lub za nim.
  • Adresy prywatne (192.168.x.x, 10.x.x.x, 172.16–31.x.x) lub współdzielone adresy 100.64–127.x.x na pierwszych hopach: najpierw Twój własny router, potem wewnętrzna sieć dostawcy internetu. Wolny hop 1 wskazuje na Wi-Fi lub router, skok na następnym hopie — na łącze do dostawcy. Jeśli śledzenie urywa się tam, zacznij od Wi-Fi połączone, ale brak internetu.
  • Śledzenie kończy się na celu z niskimi czasami: trasa sieciowa jest w porządku, więc wolna strona to raczej problem z serwerem lub DNS — sprawdź to naszymi narzędziami Wyszukiwanie DNS i Test Szybkości DNS.

Jak działa tracert

Każdy pakiet IP ma licznik TTL (time to live), który każdy router zmniejsza o jeden; gdy licznik spadnie do zera, router odrzuca pakiet i odsyła komunikat ICMP „Time Exceeded” (przekroczony czas). Tracert to wykorzystuje: wysyła pakiety testowe z TTL równym 1, potem 2, potem 3 i tak dalej, dzięki czemu każdy router na trasie po kolei się ujawnia, aż w końcu odpowie cel.

Systemy operacyjne używają różnych pakietów testowych. Tracert w Windows wysyła żądania ICMP echo (te same pakiety co ping). Traceroute w macOS i Linuksie domyślnie wysyła pakiety UDP na wysokie porty. Zapory traktują je różnie, dlatego to samo śledzenie trasy może wyglądać inaczej w Windows i w Linuksie — i właśnie dlatego istnieją opcje -I i -T.

Tracert, traceroute, pathping i MTR — porównanie

NarzędziePlatformaNajlepsze do
tracertWindowsSzybkiego sprawdzenia trasy za pomocą pakietów ICMP
traceroutemacOS, LinuxSprawdzania trasy pakietami UDP, ICMP (-I) lub TCP (-T w Linuksie, -e -P TCP na Macu)
pathpingWindowsŚledzenia trasy z pomiarem utraty pakietów na każdym hopie (ok. 25 sekund na hop)
mtrmacOS, Linux (a w Windows przez WinMTR)Śledzenia trasy na żywo, stale aktualizowanego, z utratą pakietów i opóźnieniem dla każdego hopu
tracepathLinuxŚledzenia trasy bez uprawnień roota z jednoczesnym wykrywaniem MTU ścieżki

Przy problemach występujących sporadycznie pathping (Microsoft) lub mtr sprawdzą się lepiej niż pojedynczy tracert, bo utrata pakietów, która zdarza się tylko od czasu do czasu, nie wyjdzie w trzech pakietach testowych.

Traceroute online

Śledzenie trasy z własnego komputera pokazuje tylko ścieżkę z Twojej sieci. Aby sprawdzić, czy strona jest osiągalna z innego miejsca — albo przetestować trasę bez terminala — uruchom nasze traceroute online: śledzi ono trasę jednocześnie z 8 miast przez ICMP, TCP 443 lub UDP i pokazuje każdy hop wraz z utratą pakietów, lokalizacją i siecią. Uzupełnij je narzędziem Ping, aby zmierzyć opóźnienie i utratę pakietów, oraz narzędziem Wyszukiwanie IP, aby sprawdzić, do kogo należy adres IP danego hopu.

Śledź trasę bez terminala

Uruchom traceroute do dowolnej domeny lub adresu IP jednocześnie z 8 miast, przez ICMP, TCP 443 lub UDP, i zobacz każdy hop wraz z utratą pakietów, opóźnieniem, siecią i lokalizacją.

Źródła

  1. tracert, Microsoft
  2. pathping, Microsoft
  3. traceroute(8), Linux man-pages

Polecenie tracert — najczęstsze pytania

Jak uruchomić tracert?

W Windows otwórz Wiersz polecenia i wpisz tracert, a po nim domenę lub adres IP, na przykład tracert example.com. W macOS lub Linuksie otwórz Terminal i wpisz traceroute example.com.

Co oznacza „Upłynął limit czasu żądania” w tracert?

Ten hop nie odpowiedział na pakiet w czasie limitu (w angielskiej wersji Windows komunikat brzmi „Request timed out”). Jeśli kolejne hopy nadal odpowiadają, router po prostu ignoruje pakiety tracert lub ogranicza odpowiedzi — problemu nie ma. Jeśli wszystkie hopy za nim też przekraczają limit czasu, ale strona się ładuje, pakiety testowe odrzuca cel lub zapora przed nim, a nie Twój ruch; jeśli strona też się nie ładuje, połączenie zrywa się w tym miejscu.

Czym różni się tracert od traceroute?

Robią to samo. Tracert to polecenie Windows i wysyła pakiety echa ICMP; traceroute to polecenie macOS i Linuksa, domyślnie wysyła pakiety UDP i ma opcje dla ICMP (-I) lub TCP (-T w Linuksie, -P TCP na Macu).

Jakich pakietów testowych używa tracert w Windows?

Komunikatów ICMP Echo Request, czyli tych samych pakietów co ping, z TTL zwiększanym o jeden na każdy hop. Tracert w Windows nie potrafi wysyłać pakietów UDP ani TCP i nie pozwala wybrać portu; traceroute w macOS i Linuksie domyślnie wysyła UDP i może przełączyć się na ICMP lub TCP.

Jak przyspieszyć tracert?

Użyj tracert -d, aby pominąć tłumaczenie adresów na nazwy hostów, oraz opcji -w z krótszym limitem czasu, np. tracert -d -w 1000 example.com. Na Macu lub w Linuksie użyj traceroute -n.

Dlaczego w traceroute pojawiają się gwiazdki (* * *)?

Każda gwiazdka to pakiet testowy, na który nie przyszła odpowiedź. Zapory i routery często ignorują pakiety traceroute, więc gwiazdki na pojedynczym hopie są zwykle niegroźne.

Ile hopów sprawdza tracert?

Domyślnie do 30 hopów. Limit zmienisz opcją -h w Windows (tracert -h 15 example.com) lub -m na Macu i w Linuksie.

Czy tracert pokaże, gdzie zwalnia mój internet?

Tak. Poszukaj pierwszego hopu, na którym opóźnienie skacze i pozostaje wysokie na wszystkich kolejnych. Skok na hopie 1 wskazuje na Twoje Wi-Fi lub router, na następnym — na łącze między modemem a dostawcą internetu, dalej — na sieć dostawcy lub szerszy internet.

Czy istnieje tracert online?

Tak. Traceroute online DNS Robot śledzi trasę jednocześnie z 8 miast przez ICMP, TCP 443 lub UDP, więc możesz sprawdzić trasę bez terminala i z innych miejsc niż Twoja własna sieć.

O autorze

Shaik Vahid

Założyciel DNS Robot. Vahid przez lata pracował we wsparciu hostingu, naprawiając klientom domeny, rekordy DNS, certyfikaty SSL i dostarczanie poczty. Tworzy narzędzia DNS Robot i pisze te poradniki na podstawie błędów, które ludzie naprawdę widzą.

Traceroute

Śledź trasę do dowolnej strony lub IP z 8 miast, hop po hopie, z nazwami sieci