15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
09.10.2024

Як запустити Traceroute на Windows, Mac та Linux

A traceroute — це мережева діагностична утиліта, яка відображає точний шлях, яким IP-пакети проходять від вашої машини до цільового хоста, фіксуючи кожен проміжний маршрутизатор (хоп) на шляху та вимірюючи час кругового обходу (RTT) до кожного з них. Це найефективніший інструмент для визначення того, чи виникає стрибок затримки, втрата пакетів або аномалія маршрутизації у вашій локальній мережі, інфраструктурі вашого ISP, транзитній магістралі або на самому цільовому сервері.

Коли ви запускаєте traceroute, ваша система надсилає серію зондуючих пакетів із поступово зростаючими значеннями TTL (Time To Live). Кожен маршрутизатор, який зменшує TTL до нуля, повертає ICMP-повідомлення «Time Exceeded», розкриваючи свою ідентичність та час відповіді. Саме цей механізм принципово відрізняє traceroute від простого `ping` — він розкриває повну топологію маршрутизації, а не лише доступність від кінця до кінця.

Як працює Traceroute зсередини

Розуміння базової механіки запобігає неправильній інтерпретації результатів — помилки, яку допускають навіть досвідчені адміністратори.

  • Windows (`tracert`) за замовчуванням надсилає пакети ICMP Echo Request.
  • Linux та macOS (`traceroute`) за замовчуванням надсилають UDP-датаграми на порти з великими номерами (33434+), хоча це можна налаштувати.
  • Кожен зонд надсилається тричі на хоп, що дає три виміри RTT на рядок.
  • Маршрутизатор, який обмежує швидкість або відкидає ICMP/UDP, відображатиме зірочки (`* * *`), але це не обов’язково означає, що шлях після нього порушено.

Ця поведінкова відмінність між операційними системами є критичною: хоп, який виглядає як такий, що не відповідає на Linux, може нормально відповідати на Windows, просто тому що ACL маршрутизатора блокує UDP, але дозволяє ICMP.

Як запустити Traceroute на Windows

Крок 1: Відкрийте командний рядок

Натисніть `Win + R`, введіть `cmd` та натисніть Enter. Або знайдіть Командний рядок у меню «Пуск». У середовищах, де ICMP обмежено, розгляньте запуск від імені адміністратора.

Крок 2: Виконайте команду

“`

tracert example.com

“`

Замініть `example.com` на цільове доменне ім’я або IP-адресу. Windows перетворює ім’я хоста на IP перед надсиланням першого зонду.

Крок 3: Прочитайте вивід

“`

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

1 <1 ms <1 ms <1 ms 192.168.0.1

2 10 ms 11 ms 10 ms 10.0.0.1

3 15 ms 16 ms 15 ms isp.gateway.net [203.0.113.1]

4 * * * Request timed out.

5 22 ms 21 ms 23 ms core1.backbone.net [198.51.100.5]

“`

Основні параметри `tracert` на Windows

ПрапорФункція
`-d`Пропускає зворотні DNS-запити, значно прискорює вивід
`-h <max_hops>`Встановлює максимальну кількість хопів (за замовчуванням: 30)
`-w <timeout>`Встановлює час очікування в мілісекундах на зонд (за замовчуванням: 4000 ms)
`-4`Примусово використовує IPv4
`-6`Примусово використовує IPv6

Приклад з параметрами:

“`

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

“`

Порада: На Windows `tracert -d` — найшвидший спосіб отримати результати, коли вас цікавить лише маршрутизація на рівні IP, а не імена хостів. Зворотні DNS-запити можуть додавати кілька секунд на хоп у перевантажених мережах.

Як запустити Traceroute на macOS

Крок 1: Відкрийте Terminal

Натисніть `Command + Space`, введіть Terminal та натисніть Enter. Або перейдіть до Програми > Утиліти > Terminal.

Крок 2: Виконайте команду

“`

traceroute example.com

“`

macOS постачається з попередньо встановленим `traceroute` як частиною набору мережевих інструментів BSD. Додаткова інсталяція не потрібна.

Крок 3: Прочитайте вивід

“`

traceroute to example.com (93.184.216.34), 64 hops max, 52 byte packets

1 192.168.0.1 (192.168.0.1) 1.206 ms 0.930 ms 0.799 ms

2 10.0.0.1 (10.0.0.1) 10.123 ms 10.456 ms 10.678 ms

3 isp.gateway.net (203.0.113.1) 15.789 ms 15.012 ms 15.234 ms

“`

Зверніть увагу, що macOS за замовчуванням має максимум 64 хопи проти 30 у Windows — це важливо при трасуванні шляхів до географічно віддалених або складних мережевих призначень.

Основні параметри `traceroute` на macOS

ПрапорФункція
`-n`Вимикає розпізнавання імен хостів, показує лише необроблені IP
`-q <nqueries>`Змінює кількість зондів на хоп (за замовчуванням: 3)
`-m <max_ttl>`Встановлює максимальний TTL / кількість хопів
`-w <waittime>`Тайм-аут у секундах на зонд
`-I`Використовує ICMP Echo замість UDP (корисно, коли UDP заблоковано)
`-T`Використовує TCP SYN-зонди (потребує root; обходить багато брандмауерів)

Приклад — режим ICMP для обходу UDP-фільтрації:

“`

sudo traceroute -I example.com

“`

Приклад — режим TCP SYN на порту 80 (найбільш сумісний з брандмауерами):

“`

sudo traceroute -T -p 80 example.com

“`

Як запустити Traceroute на Linux

Крок 1: Відкрийте Terminal

Натисніть `Ctrl + Alt + T` або знайдіть термінал у лаунчері програм.

Крок 2: Встановіть `traceroute` за потреби

У багатьох мінімальних або серверних дистрибутивах Linux `traceroute` не встановлено за замовчуванням.

Debian / Ubuntu:

“`

sudo apt-get install traceroute

“`

CentOS / RHEL / AlmaLinux / Rocky Linux:

“`

sudo yum install traceroute

“`

Fedora:

“`

sudo dnf install traceroute

“`

Arch Linux:

“`

sudo pacman -S traceroute

“`

Крок 3: Виконайте команду

“`

traceroute example.com

“`

Крок 4: Прочитайте вивід

“`

traceroute to example.com (93.184.216.34), 30 hops max, 60 byte packets

1 192.168.0.1 (192.168.0.1) 0.728 ms 0.457 ms 0.373 ms

2 10.0.0.1 (10.0.0.1) 9.862 ms 9.946 ms 10.123 ms

3 isp.gateway.net (203.0.113.1) 14.987 ms 14.123 ms 15.456 ms

“`

Основні параметри `traceroute` на Linux

ПрапорФункція
`-n`Вимикає зворотне DNS-розпізнавання
`-I`Надсилає ICMP Echo-зонди (потребує root)
`-T`Надсилає TCP SYN-зонди (потребує root)
`-U`Надсилає UDP-зонди (поведінка за замовчуванням)
`-p <port>`Вказує порт призначення
`-m <max_ttl>`Максимальна кількість хопів
`-q <nqueries>`Кількість зондів на хоп
`-A`Виводить номери AS (автономних систем) поруч з кожним хопом

Прапор `-A` є особливо потужним для діагностики проблем міжмережевої маршрутизації AS — він показує, якому ISP або мережевому оператору належить кожен хоп, дозволяючи точно визначити, де передача між операторами спричиняє затримку.

“`

traceroute -A example.com

“`

`mtr` — Краща альтернатива на Linux

Для поточної або інтерактивної діагностики `mtr` (Matt’s Traceroute) поєднує `ping` та `traceroute` у постійно оновлюваному дисплеї. Це кращий інструмент серед мережевих інженерів для аналізу втрати пакетів у реальному часі.

“`

sudo apt-get install mtr

mtr example.com

“`

`mtr` накопичує статистику з часом, роблячи видимою переривчасту втрату пакетів — те, що одноразовий `traceroute` повністю пропустить.

Порівняння між платформами: tracert проти traceroute

ФункціяWindows (`tracert`)macOS (`traceroute`)Linux (`traceroute`)
Протокол зонду за замовчуваннямICMP Echo RequestUDPUDP
Максимальна кількість хопів за замовчуванням306430
Кількість зондів на хоп за замовчуванням333
Розмір пакету (за замовчуванням)40 bytes52 bytes60 bytes
Режим ICMPЗа замовчуваннямПрапор `-I` (root)Прапор `-I` (root)
Режим TCP SYNНедоступно нативноПрапор `-T` (root)Прапор `-T` (root)
Пошук номера ASНедоступноНедоступноПрапор `-A`
Підтримка IPv6Прапор `-6`Команда `traceroute6`Прапор `-6`
Вбудовано в ОСТакТакЧасто потребує встановлення

Розуміння виводу Traceroute: технічний розбір

Номер хопу

Кожен рядок представляє один маршрутизатор на шляху. Хоп 1 майже завжди є вашим шлюзом за замовчуванням (домашній маршрутизатор або LAN-комутатор). Хоп 2 зазвичай є першою точкою агрегації вашого ISP.

Час відповіді (RTT)

На кожен хоп відображається три значення RTT. Здорові значення зазвичай слідують шаблону поступового збільшення в міру того, як хопи накопичують географічну відстань. Раптовий стрибок на 50+ ms на конкретному хопі, який зберігається на всіх наступних хопах, вказує на справжнє вузьке місце на цьому вузлі.

Інтерпретація `* * *` (зірочок)

Зірочки означають, що зонд перевищив час очікування — маршрутизатор не повернув ICMP-відповідь у межах вікна очікування. Це не обов’язково є проблемою. Багато корпоративних маршрутизаторів та вузлів магістральних мереж депріоритизують або мовчки відкидають ICMP/UDP-зондуючі пакети з міркувань безпеки, продовжуючи нормально пересилати трафік. Якщо хопи після зірочок показують нормальні RTT, шлях не порушено.

Висока затримка на одному хопі

Якщо хоп 7 показує 200 ms, а хоп 8 — 25 ms, показник 200 ms майже напевно є обмеженням швидкості ICMP на маршрутизаторі хопу 7, а не реальним вузьким місцем. Маршрутизатор обробляє зонд з низьким пріоритетом, пересилаючи фактичний трафік на повній швидкості. Завжди оцінюйте тенденції затримки по всьому шляху, а не окремі хопи ізольовано.

Асиметрична маршрутизація

Traceroute відображає лише прямий шлях. Зворотні пакети можуть слідувати зовсім іншим маршрутом. Це означає, що стрибок затримки, який ви спостерігаєте, може виникати на зворотному шляху, а не на прямому шляху, що відображається. Для повної видимості потрібні інструменти на кшталт `traceroute` в обох напрямках (від джерела та від призначення).

Петлі маршрутизації

Якщо одна й та сама IP-адреса з’являється на кількох послідовних хопах, існує петля маршрутизації. Пакети пересилаються між двома маршрутизаторами нескінченно, доки не закінчиться TTL. Це є неправильною конфігурацією і призведе до повної відмови підключення до цього призначення.

Поширені сценарії Traceroute та їх значення

Сценарій 1: Висока затримка починаючи з хопу 2

Перша точка агрегації вашого ISP перевантажена. Це поза вашим контролем. Задокументуйте вивід з мітками часу та зверніться до вашого ISP з доказами.

Сценарій 2: Усі хопи після хопу 5 показують `* * *`, але призначення відповідає на ping

Вхідні маршрутизатори призначення блокують ICMP-зонди. Перейдіть до режиму TCP SYN (`-T -p 443`) для трасування через брандмауери.

Сценарій 3: Стрибки затримки на хопі, розташованому в несподіваній країні

Ваш трафік маршрутизується міжнародно перед досягненням локального призначення — аномалія BGP-маршрутизації. Це поширено при неправильно налаштованому anycast або погано з’єднаних ISP.

Сценарій 4: Traceroute завершується, але веб-сайт все одно повільний

Вузьке місце може бути на стороні сервера: перевантажений CPU, повільна відповідь програми або затримка бази даних. Traceroute вимірює лише продуктивність мережевого рівня. Якщо ви розміщуєте на VPS і стикаєтеся з цим, дослідіть використання ресурсів сервера за допомогою `top`, `htop` або `vmstat`.

Сценарій 5: Traceroute ніколи не завершується (зупиняється на певному хопі нескінченно)

Брандмауер відкидає ваші зонди, і призначення недоступне. Підтвердьте за допомогою `ping` до призначення. Якщо ping також не проходить, хост недоступний або блокує весь ICMP. Якщо ping проходить, заблоковано лише протокол зонду — змініть протокол.

Traceroute для діагностики серверів та хостингу

Traceroute є незамінним при діагностиці проблем підключення між вашою інфраструктурою та кінцевими користувачами або між сервісами. Якщо ви запускаєте програми на Виділеному сервері, traceroute з кількох географічно розподілених точок спостереження виявляє, чи локалізована затримка в певному регіоні або ISP.

У середовищах веб-хостингу, керованих через панель управління, трасування маршрутів до IP вашого сервера з боку клієнта допомагає розрізнити проблему на рівні хостингу та проблему мережевого транзиту. Адміністратори, які використовують VPS з cPanel, можуть зіставляти дані traceroute з журналами доступу на стороні сервера для повного розуміння скарги на підключення.

При діагностиці збоїв доставки електронної пошти або тайм-аутів SMTP, запуск traceroute до IP вашого поштового сервера є логічним першим кроком перед дослідженням записів SPF/DKIM. Якщо ви використовуєте виділений сервіс Email Hosting, це допомагає підтвердити, чи є проблема на мережевому рівні або на рівні конфігурації.

Для навантажень, чутливих до затримки, таких як інференс машинного навчання або конвеєри рендерингу, що працюють на GPU Hosting, traceroute допомагає перевірити, що мережевий шлях між вашим клієнтом та GPU-вузлом оптимально маршрутизований без несподіваних транзитних хопів.

Розширені техніки: онлайн та розподілений Traceroute

Traceroute з однієї точки показує лише шлях від вашої машини. Для комплексного мережевого аналізу:

  • Looking Glass сервери: Багато ISP та IXP керують публічними looking glass серверами, які дозволяють запускати traceroute з їхнього мережевого краю, розкриваючи шлях з перспективи оператора.
  • BGP.tools / RIPE Atlas: Розподілені платформи вимірювань, які одночасно запускають traceroute з сотень глобальних точок спостереження, виявляючи регіональні аномалії маршрутизації, невидимі з однієї локації.
  • PathPing (Windows): Вбудований інструмент Windows, який поєднує `ping` та `tracert`, запускаючи безперервні зонди до кожного хопу та обчислюючи статистику втрати пакетів. Запустіть за допомогою: `pathping example.com`
  • WinMTR: Графічний еквівалент `mtr` для Windows, що надає статистику втрати пакетів та затримки на хоп у реальному часі.

Практична матриця рішень: який інструмент використовувати

СитуаціяРекомендований інструмент
Швидка одноразова перевірка шляху на Windows`tracert -d target`
Швидка одноразова перевірка шляху на Linux/macOS`traceroute -n target`
Поточний/реальний аналіз втрати пакетів`mtr target`
Ціль за брандмауером, що блокує ICMP/UDP`traceroute -T -p 443 target` (Linux/macOS)
Визначення того, якому ISP належить кожен хоп`traceroute -A target` (Linux)
Діагностика з кількох глобальних локаційRIPE Atlas або BGP.tools
Статистика безперервних втрат на Windows`pathping target`
Порівняння прямого та зворотного шляхівЗапустіть traceroute з обох кінцевих точок

Ключові технічні висновки

  • Завжди спочатку використовуйте `-n` або `-d` для усунення затримок DNS-розпізнавання та швидшого отримання необроблених результатів.
  • Хоп, що показує `* * *`, не вказує на порушений шлях — оцінюйте хопи, що йдуть після нього.
  • Затримка на одному проміжному хопі часто є обмеженням швидкості ICMP, а не реальним вузьким місцем.
  • Змінюйте протоколи зондів (ICMP, UDP, TCP SYN) при постійних тайм-аутах — брандмауери є протокол-вибірковими.
  • Використовуйте `mtr` замість `traceroute` для будь-якого діагностичного сеансу довше одноразової перевірки.
  • Traceroute розкриває лише прямий шлях. Асиметрична маршрутизація потребує двонаправленого аналізу.
  • Прапор `-A` у Linux traceroute додає анотацію номера AS, що є необхідним для аналізу маршрутизації з кількома ISP.
  • Документуйте виводи traceroute з мітками часу при подачі заявок до служби підтримки ISP — оператори вимагають ці дані для розслідування проблем на рівні BGP.

Часті запитання

Чому traceroute показує `* * *` для деяких хопів, але призначення все одно доступне?

Маршрутизатори на шляху налаштовані на відкидання або обмеження швидкості ICMP-повідомлень про перевищення TTL, продовжуючи нормально пересилати трафік. Це навмисна політика безпеки та продуктивності на більшості корпоративних маршрутизаторів та маршрутизаторів операторського класу. Це не вказує на втрату пакетів на шляху даних.

У чому різниця між `tracert` на Windows та `traceroute` на Linux?

Основна відмінність полягає в протоколі зонду за замовчуванням: `tracert` використовує ICMP Echo Requests, тоді як Linux/macOS `traceroute` використовує UDP-датаграми. Це означає, що вони по-різному взаємодіють з брандмауерами та ACL. Linux `traceroute` також підтримує TCP SYN-зонди та пошук номерів AS, чого `tracert` не робить.

Як запустити traceroute через брандмауер, що блокує UDP та ICMP?

Використовуйте режим TCP SYN з портом, який майже напевно відкритий на цілі, наприклад порт 80 або 443: `sudo traceroute -T -p 443 example.com`. TCP SYN-зонди проходять через більшість stateful брандмауерів, оскільки нагадують початок легітимного з’єднання.

Що означає, коли затримка traceroute раптово зростає і залишається високою для всіх наступних хопів?

Постійне збільшення затримки починаючи з певного хопу вказує на справжнє вузьке місце або перевантажений канал у цій точці шляху. Це відрізняється від стрибка на одному хопі (який зазвичай є обмеженням швидкості). Стійке збільшення означає, що весь трафік затримується на цьому вузлі або на каналі безпосередньо після нього.

Чи може traceroute діагностувати повільну роботу веб-сайту?

Traceroute діагностує лише затримку мережевого рівня та проблеми маршрутизації. Якщо мережевий шлях виглядає чистим, але веб-сайт все одно повільний, проблема на стороні сервера — час обробки програми, затримка запитів до бази даних або вичерпання ресурсів. Використовуйте інструменти моніторингу сервера разом з traceroute для повної діагностики.

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати