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

Advertisement
Что такое команда tracert?
Tracert (от trace route — «отследить маршрут») — это команда Windows, которая показывает путь вашего трафика к другому узлу: каждый маршрутизатор на пути («хоп») и время, за которое он отвечает. В macOS и Linux тот же инструмент называется traceroute.
К ней обращаются, когда сайт работает медленно или не открывается и нужно понять, где проблема: в вашей собственной сети, у интернет-провайдера, где-то посередине или на стороне узла назначения. Если ping показывает, отвечает ли узел, то tracert показывает маршрут и место, где он обрывается.
Как выполнить tracert в Windows
Нажмите Windows + R, введите
cmdи нажмите Enter (или найдите «Командная строка» через поиск).Введите
tracertи доменное имя или IP-адрес, напримерtracert example.com, и нажмите Enter.Подождите. Tracert проверяет до 30 хопов, по три раза каждый, и ждёт каждого ответа до 4 секунд: чистая трассировка завершается за секунды, а трассировка с множеством тайм-аутов может занять несколько минут. Нажмите Ctrl + C, чтобы остановить её досрочно, или ускорьте её ключами
-dи-w(см. ниже).
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 почти всегда ваш собственный роутер, а последняя строка — узел назначения. (IP-адреса выше — зарезервированные адреса для документации.) В русской Windows те же строки выглядят так: «Трассировка маршрута к…», «Превышен интервал ожидания для запроса.» и «Трассировка завершена.»
Advertisement
Параметры команды tracert
Синтаксис: tracert [options] target. Ключи, которые вам действительно пригодятся:
| Ключ | Что делает | Пример |
|---|---|---|
| -d | Не преобразовывать IP-адреса в имена узлов — намного быстрее | tracert -d example.com |
| -h max_hops | Максимальное число хопов (по умолчанию 30) | tracert -h 15 example.com |
| -w timeout | Время ожидания каждого ответа в миллисекундах (по умолчанию 4000) | tracert -w 1000 example.com |
| -4 | Принудительно использовать IPv4 | tracert -4 example.com |
| -6 | Принудительно использовать IPv6 | tracert -6 example.com |
Ключи можно свободно сочетать: tracert -d -w 1000 example.com даёт самую быструю полезную трассировку. Чтобы сохранить результат для поддержки провайдера или хостинга, перенаправьте вывод в файл: tracert -d example.com > trace.txt.
Как выполнить traceroute на Mac
Откройте Терминал (Программы › Утилиты) и выполните traceroute example.com. По умолчанию macOS отправляет UDP-пакеты; добавьте -I, чтобы использовать ICMP, как в Windows, — на такие пакеты часто отвечают маршрутизаторы, которые игнорируют UDP. Полезные ключи: -n (без разрешения имён), -m 30 (максимальное число хопов; по умолчанию macOS допускает до 64), -w 2 (сколько секунд ждать ответа на каждый пакет) и -q 1 (один пакет на хоп вместо трёх).
traceroute -n -I example.comAdvertisement
Как выполнить 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 | Время ожидания каждого ответа в секундах |
$ 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Чтобы проверить путь до веб-сервера точно так же, как до него добираются браузеры, выполните трассировку по TCP-порту 443: sudo traceroute -T -p 443 example.com.
Как читать результаты tracert
Тайм-ауты на одном промежуточном хопе, но следующие хопы отвечают (
*или «Превышен интервал ожидания для запроса.», в английской Windows — «Request timed out»): это нормально. Многие маршрутизаторы настроены игнорировать такие пакеты или ограничивать частоту ответов на них. С маршрутом всё в порядке.Тайм-ауты начиная с какого-то хопа и до самого конца: трафик отбрасывается на последнем ответившем хопе или сразу после него — часто это файрвол на стороне узла назначения или проблема маршрутизации. Запишите последний ответивший хоп: обращаться нужно именно к владельцу этой сети.
Скачок задержки, который сохраняется на всех следующих хопах (например, 10 мс → 120 мс → 121 мс → 125 мс): задержка реальная и начинается на этом хопе — часто это канал на большое расстояние или перегруженная сеть. Скачок только на одном хопе, после которого время снова падает, означает лишь, что этот маршрутизатор медленно отвечает, и его можно не учитывать.
«Заданный узел недоступен» или «Заданная сеть недоступна»: маршрутизатор сообщил, что у него нет маршрута к цели (в английской Windows это «Destination host unreachable» и «Destination net unreachable»). Проверьте адрес — или ищите проблему с файрволом или маршрутизацией на этом хопе.
Частные адреса (192.168.x.x, 10.x.x.x) на первых хопах: это ваш собственный роутер и внутренняя сеть провайдера. Большое время на этих хопах указывает на проблемы с домашним Wi-Fi или модемом.
Трассировка доходит до узла назначения с низким временем: сетевой путь в порядке, так что медленный сайт — скорее проблема сервера или DNS. Проверьте это инструментами DNS Поиск и Тест Скорости DNS.
Advertisement
Как работает 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: в чём разница
| Инструмент | Платформа | Для чего подходит лучше всего |
|---|---|---|
| tracert | Windows | Быстрая проверка маршрута с помощью ICMP-пакетов |
| traceroute | macOS, Linux | Проверка маршрута с помощью UDP-, ICMP- (-I) или TCP-пакетов (-T) |
| pathping | Windows | Выполняет трассировку, а затем измеряет потерю пакетов на каждом хопе (около 25 секунд на хоп) |
| mtr | macOS, Linux (в Windows — через WinMTR) | Живая, постоянно обновляемая трассировка с потерями и задержкой на каждом хопе |
| tracepath | Linux | Traceroute без прав root, который заодно определяет MTU пути |
При периодически возникающих проблемах pathping или mtr полезнее однократного tracert: потеря пакетов, которая случается лишь время от времени, в трёх пакетах может и не проявиться.
Advertisement
Трассировка маршрута онлайн
Трассировка с вашего компьютера показывает только путь из вашей сети. Чтобы проверить, доступен ли сайт из других мест, — или обойтись без терминала, — воспользуйтесь нашим онлайн-инструментом Трассировка: он выполняет трассировку с серверов DNS Robot и показывает каждый хоп с его местоположением и сетью. Используйте вместе с ним Ping инструмент, чтобы измерить задержку и потерю пакетов, и IP Поиск, чтобы узнать, кому принадлежит IP-адрес хопа.
Трассировка маршрута без терминала
Запустите traceroute с серверов DNS Robot до любого домена или IP-адреса и посмотрите каждый хоп с задержкой, сетью и местоположением.
Попробовать Traceroute онлайнAdvertisement
Команда tracert — частые вопросы
В Windows откройте командную строку и введите tracert, а затем домен или IP-адрес, например tracert example.com. В macOS или Linux откройте терминал и введите traceroute example.com.