Команда tracert: трассировка маршрута в Windows, Mac и Linux

Ключевой вывод

Tracert (Windows) и traceroute (macOS и Linux) показывают каждый маршрутизатор между вашим компьютером и узлом назначения — с тремя значениями времени отклика для каждого хопа. Выполните tracert example.com в командной строке или traceroute example.com в терминале; добавьте -d (Windows) или -n (Mac/Linux), чтобы пропустить разрешение имён и получить результат быстрее. Звёздочки или «Превышен интервал ожидания для запроса» (в английской Windows — «Request timed out») на промежуточном хопе обычно означают лишь, что этот маршрутизатор игнорирует зондирующие пакеты. Тайм-ауты до самого конца обычно значат, что узел назначения отбрасывает пробные пакеты tracert: проверьте, открывается ли сайт, и повторите трассировку по TCP 443; важны задержка или потери, которые сохраняются до самого узла назначения.

Проверьте сейчас

Пример команды tracert в Windows: каждый хоп, три значения времени отклика и хоп с тайм-аутом, рядом — traceroute на Mac и Linux
Пример команды tracert в Windows: каждый хоп, три значения времени отклика и хоп с тайм-аутом, рядом — traceroute на Mac и Linux
Начать чтение
  1. Что такое команда tracert?
  2. Как выполнить tracert в Windows
  3. Параметры команды tracert
  4. Как выполнить traceroute на Mac
  5. Как выполнить traceroute в Linux
  6. Как читать результаты tracert
  7. Как работает tracert
  8. Tracert, traceroute, pathping и MTR: в чём разница
  9. Трассировка маршрута онлайн
  10. Команда tracert — частые вопросы

Что такое команда tracert?

Tracert (от trace route — «отследить маршрут») — это команда Windows, которая показывает путь вашего трафика к другому узлу: каждый маршрутизатор на пути («хоп») и время, за которое он отвечает. В macOS и Linux тот же инструмент называется traceroute.

К ней обращаются, когда сайт работает медленно или не открывается и нужно понять, где проблема: в вашей собственной сети, у интернет-провайдера, где-то посередине или на стороне узла назначения. Если ping показывает, отвечает ли узел, то tracert показывает маршрут и место, где он обрывается.

Трассировка маршрута из 8 городов прямо сейчас

Как выполнить tracert в Windows

  • Нажмите Windows + R, введите cmd и нажмите Enter (или найдите «Командная строка» через поиск).
  • Введите tracert и доменное имя или IP-адрес, например tracert example.com, и нажмите Enter.
  • Подождите. Tracert проверяет до 30 хопов, по три раза каждый, и ждёт каждого ответа до 4 секунд: чистая трассировка завершается за секунды, а трассировка с множеством тайм-аутов может занять несколько минут. Нажмите Ctrl + C, чтобы остановить её досрочно, или ускорьте её ключами -d и -w (см. ниже).
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.

Каждая строка — один хоп. Три числа — это три отдельных зондирующих пакета, а адрес справа — маршрутизатор, который ответил. Хоп 1 почти всегда ваш собственный роутер, а последняя строка — узел назначения. (Публичные адреса выше взяты из диапазонов, зарезервированных для документации.) В русской Windows те же строки выглядят так: «Трассировка маршрута к…», «Превышен интервал ожидания для запроса.» и «Трассировка завершена.»

Параметры команды tracert

Синтаксис: tracert [options] target (Microsoft). Ключи, которые вам действительно пригодятся:

КлючЧто делаетПример
-dНе преобразовывать IP-адреса в имена узлов — намного быстрееtracert -d example.com
-h max_hopsМаксимальное число хопов (по умолчанию 30)tracert -h 15 example.com
-w timeoutВремя ожидания каждого ответа в миллисекундах (по умолчанию 4000)tracert -w 1000 example.com
-4Принудительно использовать IPv4tracert -4 example.com
-6Принудительно использовать IPv6tracert -6 example.com

Ключи можно свободно сочетать: tracert -d -w 1000 example.com даёт самую быструю полезную трассировку. Чтобы сохранить результат для поддержки провайдера или хостинга, перенаправьте вывод в файл: tracert -d example.com > trace.txt.

У tracert в Windows нет ключа порта: он всегда отправляет эхо-запросы ICMP. Чтобы проследить маршрут так, как начинается HTTPS-соединение, — по TCP-порту 443, — используйте sudo traceroute -T -p 443 в Linux или WSL, sudo traceroute -e -P TCP -p 443 на Mac или наш онлайн-traceroute по TCP 443.

Как выполнить traceroute на Mac

Откройте Терминал (Программы › Утилиты) и выполните traceroute example.com. По умолчанию macOS отправляет UDP-пакеты; добавьте -I, чтобы использовать ICMP, как в Windows, — на такие пакеты часто отвечают маршрутизаторы, которые игнорируют UDP. Полезные ключи: -n (без разрешения имён), -m 30 (максимальное число хопов; по умолчанию в macOS их 64), -w 2 (сколько секунд ждать ответа на каждый пакет) и -q 1 (один пакет на хоп вместо трёх).

bash
traceroute -n -I example.com

Как выполнить traceroute в Linux

Выполните traceroute example.com. Если команда не найдена, установите её (sudo apt install traceroute в Debian/Ubuntu, sudo dnf install traceroute в Fedora) или воспользуйтесь утилитой tracepath, которая обычно установлена заранее. Traceroute в Linux по умолчанию отправляет UDP-пакеты, по 3 на хоп, максимум на 30 хопов.

КлючЧто делает
-nПоказывать только IP-адреса (без DNS-запросов)
-IИспользовать эхо-запросы ICMP (как tracert в Windows)
-TИспользовать TCP SYN-пакеты (по умолчанию порт 80) — проходят через файрволы, блокирующие UDP/ICMP; нужен sudo
-p portПорт назначения для пакетов, например -T -p 443
-m max_ttlМаксимальное число хопов (по умолчанию 30)
-q nЧисло пакетов на хоп (по умолчанию 3)
-w secondsВремя ожидания каждого ответа в секундах
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

Чтобы проверить путь до веб-сервера так, как начинается HTTPS-соединение, выполните трассировку по TCP-порту 443: sudo traceroute -T -p 443 example.com.

Как читать результаты tracert

  • Тайм-ауты на одном промежуточном хопе, но следующие хопы отвечают (* или «Превышен интервал ожидания для запроса.», в английской Windows — «Request timed out»): это нормально. Многие маршрутизаторы настроены игнорировать такие пакеты или ограничивать частоту ответов на них. С маршрутом всё в порядке.
  • Тайм-ауты с какого-то хопа и до самого конца: после последнего ответившего хопа на пробные пакеты никто не отвечает. Если сайт всё равно открывается, узел назначения или файрвол перед ним просто отбрасывает пробные пакеты: прежде чем винить маршрут, повторите трассировку по TCP 443. Если сайт тоже не открывается, запишите последний ответивший хоп — к владельцу этой сети и нужно обращаться. В браузере это обычно выглядит как ERR_CONNECTION_TIMED_OUT.
  • Скачок задержки, который сохраняется на всех следующих хопах (например, 10 мс → 120 мс → 121 мс → 125 мс): задержка реальная и начинается на этом хопе — часто это канал на большое расстояние или перегруженная сеть. Скачок только на одном хопе, после которого время снова падает, означает лишь, что этот маршрутизатор медленно отвечает, и его можно не учитывать.
  • «Заданный узел недоступен» или «Заданная сеть недоступна» (в английской Windows — «Destination host unreachable» и «Destination net unreachable»; !H или !N на Mac и Linux, !X при намеренной блокировке): маршрутизатор ответил, что не может доставить пакеты. «Сеть» означает, что у него нет маршрута к этой сети, «узел» — как правило, что последний маршрутизатор не достаёт до самого узла. Проверьте адрес; если он верный, проблема на том маршрутизаторе, который сообщил об ошибке, или за ним.
  • Частные адреса (192.168.x.x, 10.x.x.x, 172.16–31.x.x) или общие адреса 100.64–127.x.x на первых хопах: это ваш собственный роутер, а затем внутренняя сеть провайдера. Медленный хоп 1 указывает на Wi-Fi или роутер, скачок на следующем хопе — на линию до провайдера. Если трассировка обрывается здесь, начните со статьи Wi-Fi подключён, но интернета нет.
  • Трассировка доходит до узла назначения с низким временем: сетевой путь в порядке, так что медленный сайт — скорее проблема сервера или DNS. Проверьте это инструментами DNS Поиск и Тест Скорости DNS.

Как работает tracert

У каждого IP-пакета есть счётчик TTL (time to live, время жизни), который каждый маршрутизатор уменьшает на единицу; когда он доходит до нуля, маршрутизатор отбрасывает пакет и отправляет обратно ICMP-сообщение «Time Exceeded» (время истекло). На этом и построен tracert: он отправляет пакеты с TTL 1, затем 2, затем 3 и так далее, и каждый маршрутизатор на пути по очереди выдаёт себя — пока не ответит узел назначения.

Операционные системы используют разные зондирующие пакеты. Tracert в Windows отправляет эхо-запросы ICMP (те же пакеты, что и ping). Traceroute в macOS и Linux по умолчанию отправляет UDP-пакеты на старшие порты. Файрволы обрабатывают их по-разному, поэтому одна и та же трассировка в Windows и Linux может выглядеть неодинаково — и именно для этого существуют ключи -I и -T.

Tracert, traceroute, pathping и MTR: в чём разница

ИнструментПлатформаДля чего подходит лучше всего
tracertWindowsБыстрая проверка маршрута с помощью ICMP-пакетов
traceroutemacOS, LinuxПроверка маршрута с помощью UDP-, ICMP- (-I) или TCP-пакетов (-T в Linux, -e -P TCP на Mac)
pathpingWindowsВыполняет трассировку, а затем измеряет потерю пакетов на каждом хопе (около 25 секунд на хоп)
mtrmacOS, Linux (в Windows — через WinMTR)Живая, постоянно обновляемая трассировка с потерями и задержкой на каждом хопе
tracepathLinuxTraceroute без прав root, который заодно определяет MTU пути

При периодически возникающих проблемах pathping (Microsoft) или mtr полезнее однократного tracert: потеря пакетов, которая случается лишь время от времени, в трёх пакетах может и не проявиться.

Трассировка маршрута онлайн

Трассировка с вашего компьютера показывает только путь из вашей сети. Чтобы проверить, доступен ли сайт из других мест, — или обойтись без терминала, — воспользуйтесь нашим онлайн-traceroute: он трассирует маршрут сразу из 8 городов по ICMP, TCP 443 или UDP и показывает каждый хоп с потерями, местоположением и сетью. Используйте вместе с ним Ping инструмент, чтобы измерить задержку и потерю пакетов, и IP Поиск, чтобы узнать, кому принадлежит IP-адрес хопа.

Трассировка маршрута без терминала

Запустите traceroute до любого домена или IP-адреса сразу из 8 городов — по ICMP, TCP 443 или UDP — и посмотрите каждый хоп с потерями, задержкой, сетью и местоположением.

Источники

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

Команда tracert — частые вопросы

Как выполнить tracert?

В Windows откройте командную строку и введите tracert, а затем домен или IP-адрес, например tracert example.com. В macOS или Linux откройте терминал и введите traceroute example.com.

Что означает «Превышен интервал ожидания для запроса» в tracert?

Этот хоп не ответил на пакет за отведённое время (в английской Windows сообщение выглядит как «Request timed out»). Если следующие хопы по-прежнему отвечают, маршрутизатор просто игнорирует пакеты tracert или ограничивает частоту ответов — проблемы нет. Если все хопы после него тоже не отвечают, но сайт открывается, пробные пакеты отбрасывает узел назначения или файрвол перед ним, а не ваш трафик; если сайт тоже не открывается, соединение рвётся именно в этой точке.

Чем tracert отличается от traceroute?

Они делают одно и то же. Tracert — команда Windows, она отправляет эхо-запросы ICMP; traceroute — команда macOS и Linux, по умолчанию она отправляет UDP-пакеты, а ключи позволяют перейти на ICMP (-I) или TCP (-T в Linux, -P TCP на Mac).

Какие пакеты использует tracert в Windows?

Эхо-запросы ICMP (Echo Request) — те же пакеты, что и у ping, — с TTL, увеличенным на единицу для каждого хопа. Tracert в Windows не умеет отправлять пакеты UDP или TCP и выбирать порт; traceroute в macOS и Linux по умолчанию отправляет UDP и может переключиться на ICMP или TCP.

Как ускорить tracert?

Используйте tracert -d, чтобы пропустить разрешение имён узлов, и -w с меньшим временем ожидания, например tracert -d -w 1000 example.com. На Mac или в Linux используйте traceroute -n.

Почему в traceroute появляются звёздочки (* * *)?

Каждая звёздочка — это пакет, на который не пришёл ответ. Файрволы и маршрутизаторы часто игнорируют пакеты traceroute, поэтому звёздочки на одном хопе обычно безвредны.

Сколько хопов проверяет tracert?

По умолчанию до 30. Изменить предел можно ключом -h в Windows (tracert -h 15 example.com) или -m на Mac и в Linux.

Может ли tracert показать, где тормозит интернет?

Да. Найдите первый хоп, на котором задержка резко растёт и остаётся высокой на всех следующих хопах. Скачок на хопе 1 указывает на ваш Wi-Fi или роутер, на следующем хопе — на линию между модемом и провайдером, дальше — на сеть провайдера или остальной интернет.

Есть ли tracert онлайн?

Да. Онлайн-traceroute DNS Robot выполняет трассировку сразу из 8 городов по ICMP, TCP 443 или UDP, так что маршрут можно проверить без терминала и не только из вашей собственной сети.

Об авторе

Shaik Vahid

Основатель DNS Robot. Вахид много лет работал в поддержке веб-хостинга: исправлял клиентам домены, DNS-записи, SSL-сертификаты и доставку почты. Он создаёт инструменты DNS Robot и пишет эти руководства по ошибкам, с которыми люди сталкиваются на самом деле.

Трассировка

Трассировка маршрута до сайта или IP из 8 городов по хопам, с названием сетей