15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
09.10.2024

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

Утилита traceroute — это сетевой диагностический инструмент, который отображает точный маршрут, по которому IP-пакеты следуют от вашего компьютера до целевого хоста, фиксируя каждый промежуточный маршрутизатор (хоп) и измеряя время приёма-передачи (RTT) до каждого из них. Это наиболее эффективный инструмент для определения того, где именно возникает скачок задержки, потеря пакетов или аномалия маршрутизации — в вашей локальной сети, инфраструктуре провайдера, транзитной магистрали или на самом сервере назначения.

При запуске 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 мс)
`-4`Принудительно использует IPv4
`-6`Принудительно использует IPv6

Пример с параметрами:

“`

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

“`

Совет профессионала: В Windows `tracert -d` — это самый быстрый способ получить результаты, когда вас интересует только маршрутизация на уровне IP, а не имена хостов. Обратный поиск DNS может добавлять несколько секунд на каждый хоп в перегруженных сетях.

Как запустить Traceroute в macOS

Шаг 1: Откройте Терминал

Нажмите `Command + Space`, введите Terminal и нажмите Enter. Или перейдите в Программы > Утилиты > Терминал.

Шаг 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: Откройте Терминал

Нажмите `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 — он показывает, какому провайдеру или сетевому оператору принадлежит каждый хоп, позволяя точно определить, где именно передача между операторами вызывает задержку.

“`

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 — как правило, первая точка агрегации вашего провайдера.

Время отклика (RTT)

На каждый хоп отображаются три значения RTT. Нормальные значения, как правило, постепенно увеличиваются по мере накопления хопов и географического расстояния. Резкий скачок на 50+ мс на конкретном хопе, сохраняющийся на всех последующих хопах, указывает на реальное узкое место в этом узле.

Интерпретация `* * *` (звёздочек)

Звёздочки означают, что зонд превысил время ожидания — маршрутизатор не вернул ICMP-ответ в течение отведённого времени. Это не обязательно является проблемой. Многие корпоративные маршрутизаторы и узлы магистральных сетей намеренно снижают приоритет или молча отбрасывают ICMP/UDP-зонды из соображений безопасности, продолжая при этом нормально пересылать трафик. Если хопы после звёздочек показывают нормальные значения RTT, путь не нарушен.

Высокая задержка на одном хопе

Если хоп 7 показывает 200 мс, а хоп 8 — 25 мс, значение 200 мс почти наверняка является результатом ограничения скорости ICMP на маршрутизаторе хопа 7, а не реальным узким местом. Маршрутизатор обрабатывает зонд с низким приоритетом, пересылая реальный трафик на полной скорости. Всегда оценивайте тенденции задержки по всему пути, а не отдельные хопы в изоляции.

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

Traceroute отображает только прямой путь. Обратные пакеты могут следовать совершенно другим маршрутом. Это означает, что наблюдаемый скачок задержки может возникать на обратном пути, а не на прямом, который показывает traceroute. Для полной видимости необходимы инструменты вроде `traceroute` в обоих направлениях (от источника и от назначения).

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

Если один и тот же IP-адрес появляется на нескольких последовательных хопах, существует петля маршрутизации. Пакеты бесконечно пересылаются между двумя маршрутизаторами до истечения TTL. Это является ошибкой конфигурации и приведёт к полному отказу подключения к данному назначению.

Типичные сценарии Traceroute и их значение

Сценарий 1: Высокая задержка начиная с хопа 2

Первая точка агрегации вашего провайдера перегружена. Это вне вашего контроля. Зафиксируйте вывод с временными метками и обратитесь к провайдеру с доказательствами.

Сценарий 2: Все хопы после хопа 5 показывают `* * *`, но назначение отвечает на ping

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

Сценарий 3: Скачки задержки на хопе, расположенном в неожиданной стране

Ваш трафик маршрутизируется через другую страну перед достижением локального назначения — аномалия маршрутизации BGP. Это распространено при неправильно настроенном anycast или плохо подключённых провайдерах.

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

Узкое место может быть на стороне сервера: перегруженный CPU, медленный отклик приложения или задержка базы данных. Traceroute измеряет только производительность на сетевом уровне. Если вы размещаетесь на VPS и сталкиваетесь с этим, исследуйте использование ресурсов сервера с помощью `top`, `htop` или `vmstat`.

Сценарий 5: Traceroute никогда не завершается (останавливается на определённом хопе бесконечно)

Межсетевой экран отбрасывает ваши зонды, и назначение недоступно. Проверьте с помощью `ping` до назначения. Если ping также не проходит, хост недоступен или блокирует весь ICMP. Если ping проходит, заблокирован только протокол зондирования — смените протокол.

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

Traceroute незаменим при диагностике проблем с подключением между вашей инфраструктурой и конечными пользователями или между сервисами. Если вы запускаете приложения на выделенном сервере, traceroute из нескольких географически распределённых точек наблюдения позволяет определить, локализована ли задержка в конкретном регионе или у конкретного провайдера.

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

При диагностике сбоев доставки электронной почты или тайм-аутов SMTP запуск traceroute до IP-адреса вашего почтового сервера является логичным первым шагом перед проверкой записей SPF/DKIM. Если вы используете выделенный почтовый хостинг, это помогает подтвердить, является ли проблема сетевой или конфигурационной.

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

Продвинутые техники: онлайн и распределённый Traceroute

Traceroute из одной точки показывает только путь от вашего компьютера. Для комплексного анализа сети:

  • Looking Glass серверы: Многие провайдеры и 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)
Определение провайдера каждого хопа`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, что необходимо для анализа маршрутизации через несколько провайдеров.
  • Документируйте выводы traceroute с временными метками при подаче заявок в поддержку провайдера — операторы требуют эти данные для расследования проблем на уровне BGP.

Часто задаваемые вопросы

Почему traceroute показывает `* * *` для некоторых хопов, но назначение по-прежнему доступно?

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

В чём разница между `tracert` в Windows и `traceroute` в Linux?

Ключевое различие — протокол зондирования по умолчанию: `tracert` использует ICMP Echo Request, тогда как 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
Начать