Traceroute в Linux: как диагностировать сеть
TL;DR
Traceroute — утилита для отображения маршрута сетевых пакетов от вашего компьютера до удалённого хоста. Она показывает промежуточные маршрутизаторы и задержки на каждом этапе. Используйте traceroute для поиска узких мест, неотвечающих шлюзов и оценки латентности; если поведение неочевидно, примените альтернативы (mtr, ping, tcptraceroute) и следуйте предложенной методике диагностики.
Важно: traceroute не исправляет сеть. Это инструмент наблюдения и диагностики. Результат помогает принять дальнейшие действия.

Содержание
- Как работает traceroute
- Какие проблемы можно найти с помощью traceroute
- Использование traceroute в Linux — базовый пример
- Отправка пакетов с настраиваемым TTL
- Выбор протокола для проб (UDP / TCP / ICMP)
- Изменение интерфейса и порта
- Методика диагностики (пошагово)
- Дерево принятия решения (Mermaid)
- Чек-листы по ролям
- Когда traceroute не даёт ответа и альтернативы
- Критерии приёмки
- Короткий глоссарий
- Соображения по безопасности и приватности
Как работает traceroute
Traceroute отправляет подряд тестовые пакеты с постепенно увеличивающимся значением TTL (Time To Live). Каждый маршрутизатор, через который проходит пакет, уменьшает TTL на 1. Когда TTL достигает нуля, маршрутизатор отсылает ICMP-сообщение “Time Exceeded” назад отправителю. По этому механизму traceroute получает IP-адреса промежуточных узлов и измеряет задержку до каждого из них.
Определение: TTL — счётчик Life‑Time пакета; уменьшается на каждом хопе и предотвращает бесконечную маршрутизацию.
Коротко:
- traceroute по умолчанию использует UDP-пакеты в большинстве реализаций Linux;
- некоторые реализации могут применять ICMP или TCP (см. ниже);
- ответ от каждого хопа показывает IP (и часто время RTT).

Какие проблемы можно найти с помощью traceroute
Traceroute помогает обнаружить и локализовать такие проблемы:
- Неотвечающие или «падающие» маршрутизаторы внутри сети.
- Резкие скачки задержки (латентности) между двумя хопами.
- Ассиметричные маршруты (разные пути туда и обратно).
- Ограничения или блокировки ICMP/UDP/TCP на промежуточных узлах.
- Неправильная маршрутизация на границе провайдеров.
Важно: traceroute не исправляет маршруты. Он предоставляет карту, по которой можно планировать дальнейшие меры (обновление правил, обращение к провайдеру, изменение конфигурации).

Использование traceroute в Linux — базовый пример
Откройте терминал и выполните:
traceroute ubuntu.myvpsserver.topКоманда начнёт отправлять пробные пакеты и покажет список хопов и RTT (в миллисекундах). В качестве аргумента можно указать доменное имя или IP.

Совет: чтобы узнать IP вашего локального шлюза, выполните ip route | grep default или ifconfig -s | awk '{print $1}'.
Отправка пакетов с настраиваемым TTL
По умолчанию traceroute инкрементирует TTL, начиная с 1. Можно настроить начальный TTL с помощью флага -f (first TTL). Также полезно менять количество запросов на каждый хоп с -q.
Примеры:
traceroute -q1 ubuntu.myvpsserver.topЭтот пример отправит по одному пакету на хоп. Если шлюзы ограничивают количество пакетов на IP, можно также отключить параллельные запросы:
traceroute -N 1 ubuntu.myvpsserver.top
Если нужно пропустить первые N хопов (начать проверку с более глубокого уровня), используйте -f:
traceroute -f 3 ubuntu.myvpsserver.top
Выбор протокола для проб (UDP, TCP, ICMP)
По умолчанию — UDP. Но многие межсетевые экраны или провайдеры фильтруют UDP-пакеты traceroute. В таких случаях можно переключиться на TCP или ICMP.
- TCP SYN (полезно для обхода фильтров UDP):
traceroute -T target.example.com
- ICMP ECHO (иногда самый универсальный вариант):
sudo traceroute -I myvpsserver.topICMP полезен, если сеть блокирует UDP и TCP probe‑пакеты. Учтите, что ICMP может быть ограничен тоже.
Изменение сетевого интерфейса и порта
Чтобы выбрать конкретный сетевой интерфейс на машине (например, при наличии нескольких NIC), используйте -i:
traceroute -i enp1s0 myvpsserver.topДля указания начального порта UDP применяйте -p:
traceroute -p34543 myvpsserver.topПримечание: при сочетании с -I (ICMP) опция -p задаёт исходный номер последовательности ICMP, а не порт.

Методика диагностики — пошагово (мини‑метод)
- Запустите базовый traceroute до проблемного хоста:
traceroute hostname. - Обратите внимание на первые неответы (
* * *) и резкие скачки RTT. - Повторите запрос с
-q1и-N 1, чтобы исключить эффект параллельных пакетов. - Попробуйте
-Iи-T, чтобы проверить фильтрацию протоколов. - Выполните
pingдо подозрительных узлов по очереди для подтверждения задержек. - При необходимости — смените интерфейс
-iили начальный TTL-fдля локализации проблемы. - Соберите скриншоты/логи и, если проблема на стороне провайдера, эскалируйте с точными данными о хопе и времени.
Дерево принятия решения
flowchart TD
A[Есть проблема доступа или высокая задержка?]
A -->|Нет| B[Остановиться: проблема не сетевого уровня]
A -->|Да| C[Запустить базовый traceroute]
C --> D{На каком хопе начинается проблема?}
D -->|Локально 'первые 1-3 хопа'| E[Проверить локальный роутер/маршрутизацию]
D -->|Дальше| F[Попробовать -T и -I]
F --> G{Ответило ли изменение протокола?}
G -->|Да| H[Вероятно фильтрация UDP: использовать TCP/ICMP]
G -->|Нет| I[Собрать логи, обратиться к провайдеру]
E --> J[Проверить интерфейс, кабели, таблицы маршрутов]
J --> K[Если не помогло — эскалировать на сетевого инженера]Чек-листы по ролям
Системный администратор:
- Запустить traceroute и ping до проблемного хоста.
- Проверить таблицы маршрутизации (
ip route). - Проверить настройки межсетевого экрана и NAT.
- Собрать логи и трассировки для провайдера.
Разработчик / DevOps:
- Повторить тесты из среды CI/CD или с того же сервера.
- Проверить конфигурацию сервиса (binding, firewall rules).
- Протестировать соединение с разных зон/регионов.
Техподдержка (первой линии):
- Спросить, есть ли локальные изменения сети у пользователя.
- Попросить сделать traceroute и отправить вывод.
- При невозможности локализовать — передать инженерам с указанием хопа и времени.
Когда traceroute даёт неверную картину и альтернативы
Traceroute может «ложно» показывать проблему, если:
- Промежуточный роутер фильтрует ICMP/UDP, но сам пропускает трафик дальше — тогда вы увидите пропуски (
* * *), но реальный трафик идёт. - Маршрут ассиметричный: маршрут туда и обратно различается, поэтому задержки на возврате не видны.
- QoS/Rate limiting применяет разные правила к probe-пакетам.
Альтернативы и дополняющие инструменты:
- mtr — непрерывная смесь traceroute + ping для динамической оценки.
- ping — для оценки стабильности и средней задержки.
- tcptraceroute или traceroute -T — для проверки TCP-путей.
- tracepath — простая версия, не требует root.
- tcpdump — для анализа содержимого и подтверждения, что пакеты проходят.
Критерии приёмки
Чтобы считать диагностику завершённой, должны быть выполнены следующие пункты:
- Набор тестов (traceroute/ICMP/TCP) воспроизводит проблему или документирует её отсутствие.
- Определён конкретный хоп или сегмент сети с аномалией.
- Собраны временные метрики и логи (скрин, текстовый вывод) для эскалации.
- Предложен дальнейший план: локальная правка, смена маршрута, обращение к провайдеру.
Короткий глоссарий (1‑строчные определения)
- TTL — Time To Live, счётчик «жизни» пакета;
- RTT — Round Trip Time, время туда‑обратно;
- ICMP — протокол сообщений сети (используется для ошибок и диагностики);
- UDP/TCP — протоколы транспортного уровня; UDP без установления соединения, TCP устанавливает соединение.
Соображения по безопасности и приватности
- Traceroute раскрывает IP-адреса промежуточных устройств. Не публикуйте трассировки с конфиденциальными внутренними адресами в открытых каналах.
- Запуск traceroute с правами root не обязателен для большинства флагов, но некоторые варианты (например, низкоуровневые порты) требуют привилегий.
- Если вы выполняете трассировку через VPN или приватные каналы, учитывайте правила компании и шифрование данных.
Все изменения и скриншоты — Ramces Red.
Итог
Traceroute — простой и полезный инструмент для первоначальной локализации сетевых проблем. Он даёт картину маршрута и задержки, но не заменяет углублённый анализ. Комбинируйте traceroute с mtr, ping и tcpdump, используйте разные протоколы и следуйте методике для надёжной диагностики.
Похожие материалы
Настройка внешнего вида Android: темы, лаунчеры, значки
Динамические маршруты в Next.js
Переустановить Microsoft Store в Windows 11
Как добавить шрифты в GIMP
Как загрузить приложения Microsoft Store без магазина