← К вики

traceroute: диагностика маршрута

Как отследить маршрут пакетов до хоста и найти проблемный узел.

Время: 5 мин · Сложность: ★☆☆☆☆

Подходит: ✓ Ubuntu 22.04 · ✓ Debian 12 · ✓ AlmaLinux 9 · ✓ Windows


Краткое описание

traceroute показывает каждый промежуточный маршрутизатор на пути пакетов до хоста. Для каждого узла выводится RTT — так можно найти, где именно возникает задержка или потери.

Когда пригодится

  • Подозреваете, что проблема на конкретном узле сети, а не на сервере
  • Нужно показать маршрут в поддержку
  • Высокая задержка — хотите понять, на каком хопе она появляется
  • Пакеты доходят, но с потерями — ищете проблемный участок

Что понадобится

  • Доступ к терминалу
  • Установленный traceroute (Linux) или встроенный tracert (Windows)

Пошаговая инструкция

Установка на Ubuntu/Debian:

apt install -y traceroute

Установка на AlmaLinux:

dnf install -y traceroute

Запуск:

traceroute 8.8.8.8

Если часть хопов не отвечает, попробуйте TCP-режим — он обходит файрволы, блокирующие UDP:

traceroute -T 8.8.8.8

На Windows встроен без установки:

tracert 8.8.8.8

Проверка результата

Пример вывода:

traceroute to 8.8.8.8 (8.8.8.8), 30 hops max
 1  192.168.1.1       0.5 ms   0.4 ms   0.5 ms
 2  10.0.0.1          2.1 ms   1.9 ms   2.0 ms
 3  * * *
 4  72.14.194.130    15.2 ms  15.0 ms  14.9 ms
 5  8.8.8.8          16.1 ms  16.0 ms  15.9 ms
  • Каждая строка — один хоп (маршрутизатор). Три числа — RTT трёх пробных пакетов.
  • * * * — узел не отвечает на ICMP. Это не значит, что пакеты не идут дальше: многие маршрутизаторы отбрасывают ICMP, но транзитный трафик пропускают.
  • Высокий RTT на одном хопе, но нормальный на следующем — маршрутизатор просто приоритизирует транзитные пакеты выше служебных. Не считается проблемой.
  • Высокий RTT начиная с определённого хопа и до конца — проблема в этом узле или после него.
  • Потери на последнем хопе — сервер недоступен или блокирует ICMP.

Возможные ошибки

Все хопы показывают * * * — ICMP или UDP полностью заблокированы на пути. Попробуйте traceroute -T (TCP).

traceroute завис и долго не выводит результат — нормально, когда узлы не отвечают. Дождитесь завершения или прервите Ctrl+C.

command not found — установите пакет: apt install -y traceroute или dnf install -y traceroute.

FAQ

* * * — это проблема? Нет, если следующие хопы отвечают нормально. Узел просто не обрабатывает ICMP, но пакеты через него проходят.

traceroute и tracert — одно и то же? Одна идея, разные реализации. tracert (Windows) использует ICMP, traceroute (Linux) по умолчанию использует UDP.

Что передавать в поддержку? Полный вывод traceroute от сервера до проблемного хоста и в обратную сторону — с вашего компьютера до сервера.

Полезные ссылки

Следующие статьи

Сейчас работают только те cookie, без которых сайт не откроется. Разрешите ещё аналитические — будем видеть, где интерфейс мешает, и чинить это.