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 от сервера до проблемного хоста и в обратную сторону — с вашего компьютера до сервера.