JungleLabs Insights

Jak używać traceroute do diagnozowania problemów z połączeniem sieciowym

Artykuł

Gdy strona internetowa, serwer lub usługa online przestaje reagować, nie zawsze jest jasne, gdzie problem się znajduje. Twój komputer może być podłączony do lokalnej sieci, a docelowy adres nadal nie będzie dostępny. Problem może dotyczyć twojego routera w domu, sieci dostawcy Internetu, zdalnej sieci lub samego serwera docelowego.

Traceroute to narzędzie diagnostyczne sieciowe, które pomaga pokazać ścieżkę pakietów od Twojego urządzenia do miejsca docelowego. Wylicza pośrednie routery, nazywane często skokami, i mierzy, jak długo trwają odpowiedzi z każdego z nich. Może to pomóc w identyfikacji miejsc, w których zmienia się ścieżka, gdzie zaczynają się opóźnienia, lub gdzie przestają pojawiać się odpowiedzi.

Traceroute nie pokazuje każdego szczegółu sposobu działania routingu w Internecie, a czas wygasania nie oznacza automatycznie, że router lub łącze jest uszkodzone. Wiele routerów ogranicza lub filtrowe odpowiedzi, na których opiera się traceroute. Mimo to, gdy zrozumiesz, co może i nie może powiedzieć Ci wynik, staje się on użyteczną pierwszą czynnością w rozwiązywaniu problemów.

Ten przewodnik wyjaśnia, jak działa traceroute, jak uruchomić go w systemie Windows, macOS i Linux oraz jak interpretować typowe wyniki. Jeśli uczysz się podstaw sieci, również pomaga zrozumieć rolę domyślny brama wyjściowa i jak są organizowane zakresy adresów IP podsieci.

Co to jest Traceroute?

Traceroute to narzędzie wiersza poleceń, które próbuje zidentyfikować routery, przez które przechodzi pakiet podczas jego drogi do celu. W systemie Windows wbudowane narzędzie nazywa się tracert. W systemach macOS i większości dystrybucji Linux nazywa się to tracerouteImiona są różne, ale ich główne przeznaczenie jest podobne.

Narzędzie wysyła serię sond z stopniowo rosnącymi limitami skoków. Limit skoku informuje pakiet, ile routerów może przepuścić przed tym, gdy musi zostać usunięty. W IPv4 ten element nazywany jest Czas życialub TTL. W protokole IPv6 nazywane jest Limit przeskoków.

Gdy router przekazuje pakiet, zmniejsza wartość TTL lub Limit Skoków. Gdy wartość osiągnie zero, router usuwa pakiet i może wysłać odpowiedź z powrotem do źródła. Traceroute wykorzystuje te odpowiedzi do identyfikacji kolejnych routera. Po tym, gdy narzędzie nauczy się o pierwszym skoku, wysyła kolejne badanie z wyższym limitem, następnie kolejne, kontynuując w kierunku docelowego hosta.

Traceroute mierzy czas między wysłaniem sondy a otrzymaniem odpowiedzi. Zazwyczaj wysyła kilka sondu dla każdego skoku, dlatego output często zawiera trzy czasy odpowiedzi. Te liczby mierzą czas potrzebny na przejście sondy i odpowiedzi między Twoim urządzeniem a odpowiadającym routerem. Nie mierzą jedynie czasu poświęconego przetwarzaniu pakietu w tym routerze.

Co pokazuje traceroute?

Typowy wynik ma numerowaną wiersz dla każdego skoku. Pierwszy skok to zwykle twoje lokalne routery lub inny pierwszy urządzenie na lokalnej sieci. Późniejsze skoki mogą należeć do twojego dostawcy Internetu, sieci przesyłowych, dostawców hostingu lub sieci docelowego.

Prosty przykład może wyglądać tak:

traszaj do example.com, maks. 30 skoków

 1  192.168.1.1       2,1 ms   1,8 ms   2,0 ms
 2  100.64.0.1        8,4 ms   8,1 ms   8,6 ms
 3  203.0.113.10     13,2 ms  12,9 ms  13,5 ms
 4  *                 *        *
 5  198.51.100.20    25,6 ms  25,1 ms  26,0 ms

Pierwsza kolumna identyfikuje numer skoku. Następna wartość to adres lub nazwa routera odpowiedzającego. Pozostałe wartości to czasy odpowiedzi na sondy wysłane w danym skoku. W tym przykładzie skok 4 nie odpowiedział na sondy, ale skok 5 odpowiedział.

Odpowiadający węzeł jest dowodem na to, że przesłano odpowiedź z tego punktu. Nie dowodzi to jednak, że każdy inny fragment trasy jest zdrowy. Podobnie, brak odpowiedzi od węzła nie oznacza, że router jest nieczynny. Urządzenie może być skonfigurowane tak, by przekazywało ruch, ignorując lub ograniczając diagnostyczne badania.

Traceroute może również pokazywać różne ścieżki w różnych czasach. Trasowanie internetowe zmienia się, gdy sieci dostosowują trasy, balansują ruch, obsługują awarie lub stosują politykę. Trasa zaobserwowana w jednym śladzie to zdjęcie, a nie stała mapa.

Jak uruchomić traceroute w systemie Windows

Windows zawiera tracertOtwórz wiersz polecenia lub PowerShell i wprowadź nazwę hosta lub adres IP:

tracert example.com

Windows rozwiązuje nazwę hosta na adres IP, a następnie wyświetla trasy, które może obserwować. Możesz użyć -d aby zapobiec tracert z rozwiązywania adresów routerów na nazwy:

tracert -d example.com

Używając -d może przyspieszyć wyświetlanie wyników, ponieważ Windows pomija odwrotne wyszukiwanie DNS dla adresów pośrednich. Jest to przydatne, gdy zależy Ci na ścieżce i czasie, a nie na nazwach odpowiadających poszczególnym routerom.

Możesz ograniczyć maksymalną liczbę przeskoków za pomocą -h i ustaw czas oczekiwania dla każdego odpowiedzi z - wNa przykład:

tracert -d -h 20 -w 2000 example.com

Ta komenda pomija wyszukiwania nazw, zatrzymuje się po maksymalnie 20 przeskokach i oczekuje maksymalnie 2000 milisekund na odpowiedź dla każdego sondowania. Jeśli cel jest daleko lub ścieżka jest wolna, niski limit przeskoków może zatrzymać śledzenie przed osiągnięciem celu.

Aby przetestować konkretny adres IP zamiast nazwy hosta, uruchom:

tracert -d 203.0.113.25

Podczas porównywania wyników testuj ten sam cel w sposób spójny. Ślad do nazwy domeny i ślad do konkretnego adresu IP mogą przebiegać różnymi ścieżkami, jeśli nazwa domeny rozwiązuje się na różne serwery.

Jak uruchomić traceroute na macOS

Na macOS otwórz Terminal i uruchom:

traceroute example.com

Aby wyświetlić numeryczne adresy bez próby rozpoznawania nazw, użyj:

traceroute -n example.com

Możesz ograniczyć maksymalną liczbę przeskoków za pomocą -m i dostosuj czas oczekiwania z - wNa przykład:

traceroute -n -m 20 -w 2 example.com

To prosię o dane liczbowe, ogranicza ślad do 20 przeskoków i czeka maksymalnie dwa sekundy na odpowiedź w każdym przeskoku. Dokładne opcje mogą się nieco różnić w zależności od wersji, więc sprawdź lokalny podręcznik, jeśli opcja polecenia nie zostanie rozpoznana:

man traceroute

Traceroute może potrwać pewien czas, ponieważ wysyła kilka sond na każdym kroku i czeka na odpowiedzi. Jeśli wydaje się, że zatrzymuje się w danym wierszu, może czekać na odpowiedzi z routerów, które nie odpowiadają na te sondy.

Jak uruchomić traceroute w systemie Linux

Wiele dystrybucji Linuxa zawiera traceroute, ale niektóre mogą wymagać jego instalacji najpierw. Prosty test to:

traceroute example.com

Aby uniknąć odwrotnych wyszukiwań DNS i wyświetlać tylko numeryczne adresy, użyj:

traceroute -n example.com

Możesz również ustawić maksymalną liczbę przeskoków i czas oczekiwania na odpowiedź:

traceroute -n -m 20 -w 2 example.com

Na Linuxie dostępne opcje polecenia zależą od zainstalowanego wersji traceroute. Jeśli polecenie brakuje, użyj menedżera pakietów swojej dystrybucji, aby zainstalować odpowiedni pakiet, lub użyj dostępnej alternatywy takiej jak tracepath.

Dla destynacji IPv6, wiele systemów Linux obsługuje:

traceroute -6 example.com

Jeśli domena ma rekordy IPv4 i IPv6, narzędzie może domyślnie wybrać jedną rodzinę adresów. Aby porównać ścieżki, uruchom osobne śledzenia IPv4 i IPv6, gdzie to wspierane. Może to pomóc w identyfikacji, czy problem z dostępnością dotyczy jednej rodziny adresów, ale nie drugiej.

Jak przeczytać każdy skok

Zacznij od sprawdzenia pierwszego skoku. W sieci domowej jest to często lokalny router. Jeśli pierwszy skok odpowiada szybko, Twoje urządzenie może co najmniej osiągnąć router w lokalnej sieci. Jeśli nie odpowiada, to samo w sobie nie dowodzi awarii lokalnej, ponieważ router może filtrować odpowiedzi diagnostyczne. Sprawdź, czy inne urządzenia lokalne i usługi internetowe działają, zanim podjętej wniosku.

Następnie porównaj czasy odpowiedzi w miarę postępowania trasy. Nagły i spójny wzrost, który kontynuuje się w późniejszych skokach, może wskazywać na zmianę ścieżki lub punkt, w którym zaczyna się opóźnienie sieciowe. Jednak wysoki czas odpowiedzi w jednym routerze, a następnie niższe czasy w późniejszych routerach często odzwierciedlają sposób, w jaki ten router obsługuje ruch diagnostyczny, a nie koniecznie opóźnienie wpływające na przekazywany ruch.

Szukaj ostatniego odcinka, który odpowiada, ale traktuj to jako wskazówkę, a nie jednoznaczne miejsce awarii. Następny router może filtrować sondy, ścieżka powrotna może być inna, lub sieć docelowa może blokować rodzaj odpowiedzi oczekiwany przez traceroute.

Na koniec porównaj kilka uruchomień i, gdzie to możliwe, przetestuj drugi cel w tym samym usłudze lub sieci. Jedno ślad może być wpływowane przez tymczasową przeciążenie lub filtrowanie. Wzory na powtarzanych testach są bardziej informacyjne niż jedno izolowane wynik.

Co oznacza gwiazdka?

Gwiazdka (*) oznacza, że traceroute nie otrzymał odpowiedzi na to przesiewanie w ciągu okresu oczekiwania. Ruter może nadal przesłać przesiewanie w kierunku docelowym. Może po prostu odmówić wysłania odpowiedzi diagnostycznej.

Routery i zapory często ograniczają komunikaty protokołu ICMP (Internet Control Message Protocol) lub inne odpowiedzi diagnostyczne, aby chronić wydajność i zmniejszyć niepożądaną ruch. Niektóre sieci zezwalają na normalny ruch aplikacji, filtrować jednak sondy traceroute. W wyniku tego ślad może pokazywać jedno lub więcej gwiazdek, a następnie kontynuować się odpowiednimi węzłami później w trasie.

Jeśli każdy skok po pewnym punkcie pokazuje gwiazdki, ścieżka może być filtrowana w tym miejscu, cel może być niedostępny, lub ruch powrotny może być zablokowany. Aby rozróżnić te przypadki, przetestuj rzeczywisty serwis za pomocą odpowiedniego aplikacji, takiej jak przeglądarka internetowa lub klient SSH, i porównaj ślady z innymi celami.

Zrozumienie czasów odpowiedzi i opóźnień

Wartości czasowe traceroute pokazują, ile czasu zajęło przesłanie sondy do odpowiedniego skoku i zwrócenie odpowiedzi. Zawierają opóźnienie sieciowe w obu kierunkach i mogą być wpływowane przez zator, kolejki oraz politykę odpowiedzi routera.

Wysoka wartość na jednym skoku może być myląca. Routery priorytetowo przekazują ruch przejściowy zamiast odpowiadać na pakiety diagnostyczne skierowane do siebie. Router może długo czekać na odpowiedź na traceroute, podczas gdy przekazuje zwykły ruch szybko. Jeśli kolejne skoki pokazują niższe czasy odpowiedzi, ta wysoka wartość jest mniej prawdopodobna, że reprezentuje stały opóźnienie w ścieżce danych.

Pojedynczy wzorzec jest bardziej przydatny, gdy zwiększenie opóźnienia zaczyna się na danym skoku i pozostaje widoczne na późniejszych skokach oraz w miejscu docelowym w wielu testach. Nawet wtedy traceroute sam nie potwierdza dokładnego przyczyny. Może wskazać, gdzie dalej prowadzić badania, takie jak przejęcie przez dostawcę, zatłoczony łącze lub odległy segment sieci.

Typowe wzorce traceroute

Jeśli pierwszy węzeł odpowiada, ale późniejsze węzły nie, lokalna sieć może działać, podczas gdy późniejsza sieć filtruje ruch diagnostyczny. Sprawdź, czy usługa docelowa sama w sobie jest dostępna, zanim założysz, że połączenie jest przerwane.

Jeśli ślad dotrze do celu, ale aplikacja nadal nie działa, może się zdarzyć, że ścieżka sieciowa działa, a usługa ma inny problem. Serwer może odrzucać połączenia, aplikacja może być niedostępna, lub zapora może blokować określony port.

Jeśli ślad zatrzymuje się w tym samym miejscu za każdym razem i cel jest również nieosiągalny, ostatni odpowiedni sieć może pomóc zawęzić, gdzie prosić o pomoc. Nie musi koniecznie identyfikować odpowiedzialnego urządzenia, ponieważ filtrowanie i niesymetryczne ścieżki powrotne mogą sprawić, że wydajne miejsce zatrzymania jest mylące.

Jeśli IPv4 działa, a IPv6 nie, lub na odwrót, wykonaj osobne śledzenia dla każdej rodziny adresów. Dwa ścieżki mogą używać różnych dostawców, routerów, polityk firewalla lub serwerów docelowych. Porównanie ich może ujawnić, czy problem dotyczy jednej strony sieci.

Traceroute i Tracert nie są identyczne

Polecenia tracert i traceroute pełnią podobne zadanie, ale ich metody sondowania i opcje mogą się różnić w zależności od systemu operacyjnego i implementacji. Windows tracert często używa sond ICMP Echo. Implementacje podobne do Unixa mogą domyślnie używać UDP, z pewnymi obsługującymi tryby sond ICMP lub TCP.

To ma znaczenie, ponieważ zapora może zezwalać na jeden rodzaj sondy i blokować inny. Dwa narzędzia mogą więc produkować różne wyniki, nawet jeśli działają z tego samego komputera do tego samego miejsca docelowego.

Niektóre implementacje traceroute pozwalają na wybór metody sondy. Na przykład wersje systemu Linux mogą obsługiwać opcje dla sond UDP, ICMP lub TCP. Śledzenie oparte na protokole TCP może być przydatne, gdy zwykłe sondy są filtrowane, ale określony usługa TCP jest dostępna. Składnia opcji różni się, więc przed użyciem konkretnego flagi skonsultuj się z lokalną dokumentacją.

Przy udostępnianiu wyników administratorowi sieci lub dostawcy, należy uwzględnić system operacyjny, polecenie, opcje, cel oraz przybliżony czas testu. Taka kontekst pomaga im zrozumieć różnice między śladami.

Traceroute vs Ping

Testy ping sprawdzają, czy cel odpowiada na określony typ badania sieciowego i mierzą czas podróży w obie strony. Jest przydatny do sprawdzania podstawowej dostępności, ale nie pokazuje ścieżki pośredniej.

Traceroute próbuje wykazać sekwencję odpowiadających routerów w kierunku celu. Może pomóc ustalić, gdzie odpowiedzi przestają przychodzić lub gdzie zaczyna się wzorzec opóźnień, ale jest bardziej wrażliwy na filtrowanie i polityki odpowiedzi routerów.

Te narzędzia odpowiada na różne pytania. Użyj polecenia ping, aby sprawdzić, czy docelowy system odpowiada. Użyj traceroute, aby zbadać ścieżkę wiodącą do niego. Żadne z tych narzędzi nie gwarantuje samodzielnie, że strona internetowa lub aplikacja działa poprawnie, ponieważ problemy specyficzne dla aplikacji mogą wystąpić nawet wtedy, gdy podstawowe testy sieciowe zakończą się powodzeniem.

Ścisła procedura diagnozowania i usuwania usterek

Zacznij od potwierdzenia nazwy i adresu docelowego. Jeśli używasz nazwy hosta, upewnij się, że rozwiązuje się poprawnie. Następnie uruchom traceroute i zanotuj czas, rodzaj adresu, opcje polecenia oraz cel.

Testuj ten sam cel wielokrotnie. Jeśli wynik znacznie się zmienia, problem może być przypadkowy lub trasę zmieniono. Jeśli ślad jest stabilny, ale aplikacja nie działa, sprawdź, czy usługa nasłuchuje, czy zapora nie blokuje jej portu i czy serwer zwraca błąd.

Porównaj z innym miejscem docelowym hostowanym przez tego samego dostawcę lub w tej samej strefie. Jeśli kilka miejsc docelowych pokazuje podobny problem zaczynający się w tym samym miejscu, to daje silniejszy sygnał, że uszkodzony odcinek sieci może zasłużyć na uwagę.

Jeśli zgłaszasz problem dostawcy Internetu lub firmie hostingowej, podaj dane wyjściowe w formie surowej zamiast tylko powiedzieć "traceroute nie działa". Podaj cel, czas, system operacyjny oraz czy sam usługa celu jest niedostępna. Te szczegóły ułatwiają badanie zgłoszenia.

Ograniczenia traceroute

Traceroute nie pokazuje każdego routera w Internecie. Niektóre sieci ukrywają lub filtrować swoje odpowiedzi, a niektóre trasy używają technologii, które sprawiają, że informacje o skoku są niekompletne. Równoważenie obciążenia może również wysyłać różne sondy w różnych ścieżkach, więc sąsiadujące linie nie zawsze reprezentują jedną stabilną trasę od końca do końca.

Czasy odpowiedzi nie są bezpośrednimi pomiarami szybkości, z jaką router przekazuje normalny ruch. Mierzą czas potrzebny na przesłanie sondy i otrzymanie odpowiedzi, a routery mogą traktować te pakiety diagnostyczne inaczej niż zwykły ruch aplikacyjny.

Traceroute również nie dowodzi, kto posiada adres routera, nie identyfikuje dokładnego przyczyny utraty pakietów ani nie potwierdza, że trasa jest autoryzowana. Dane o publicznym routingu i rejestracji wymagają osobistych sprawdzeń. Dla szerszej przeglądu publicznego zasobu IPv4 lub IPv6, użyj Kontroler gotowości zasobów IP.

Najczęściej zadawane pytania

Czy traceroute jest bezpieczny do użycia?

Traceroute to standardne narzędzie diagnostyczne wysyłające sondy sieciowe do celu. Uruchamianie kilku testów w celach diagnostycznych jest normalne. Unikaj generowania nadmiarowego ruchu lub sondowania systemów, których nie administrujesz, w wysokim tempie.

Dlaczego traceroute pokazuje inny przypadek za każdym razem?

Sieci mogą zmieniać trasy, używać równoważenia obciążenia lub kierować ruch przez różne dostawców. Ruch sondowania może również być obsługiwany inaczej niż zwykły ruch aplikacji. Małe różnice w trasie nie oznaczają automatycznie awarii.

Czy gwiazdka oznacza, że router jest wyłączony?

Nie. Oznacza to, że traceroute nie otrzymał odpowiedzi na ten sondę w czasie limitu. Router może nadal przekazywać ruch, filtrować lub ograniczać odpowiedzi diagnostyczne.

Dlaczego traceroute zatrzymuje się przed osiągnięciem strony internetowej?

Sieć docelowa lub pośredni firewall może blokować typ sondy. Strona internetowa może nadal być dostępna przez normalny ruch HTTPS. Przetestuj usługę przed stwierdzeniem, że trasa jest niedostępna.

Czy traceroute może zidentyfikować, gdzie występuje utrata pakietów?

Może pomóc w identyfikacji miejsc, w których odpowiedzi kończą się, ale nie zawsze może udowodnić, gdzie tracą się dane aplikacji. Porównaj wiele uruchomień, późniejsze przeskoki i rzeczywistą usługę. Narzędzia takie jak mtr może dostarczać powtórzone pomiary, ale ich wynik również należy interpretować ostrożnie.

Czy mogę uruchomić traceroute do adresu IPv6?

Tak. Windows, macOS i Linux obsługują śledzenie tras IPv6, choć nazwy poleceń i opcje różnią się. W systemie Linux, traceroute -6 jest wspierany. Na Windowsie, tracert can trace IPv6 when given an IPv6 destination.

Traceroute pomaga zobaczyć, które routery odpowiadają, gdy ruch porusza się od Twojego urządzenia w kierunku docelowego. Pierwszy przeskok to często Twój lokalny bramka, a późniejsze przeskoki mogą należeć do Twojego dostawcy Internetu i innych sieci przed osiągnięciem celu.

Użyj tracert na Windows i traceroute na macOS lub Linux. Sprawdź pierwszy skok, porównaj wzorce odpowiedzi w kolejnych skokach i powtórz test, gdy wyniki wyglądają niezwykle. Gwiazdki i izolowane wysokie czasy odpowiedzi są powszechne i nie dowodzą automatycznie, że sieć jest uszkodzona.

Najbardziej przydatne wnioski pochodzą z połączenia traceroute z testami aplikacji, sprawdzaniem DNS, powtarzalnymi pomiarami oraz raportami innych użytkowników lub sieci. Traktuj wynik jako dowód pomocny w kierowaniu śledztwem, a nie jako pełną diagnozę samą w sobie.

Aby zrozumieć część sieci lokalnej ścieżki, kontynuuj nasz przewodnik domyślne bramki przejścia. W przypadku publicznych sprawdzania adresów i routingu, zobacz Kontroler gotowości zasobów IP.