Если вам нужно узнать, куда направляются ваши пакеты после того, как они покидают ваш компьютер с Linux, то traceroute в Linux поможет вам.
Traceroute – это удобная утилита, которая есть практически в каждом дистрибутиве Linux и отслеживает, через какие маршрутизаторы проходят ваши сетевые пакеты. Эта утилита полезна для устранения неполадок или простого планирования сети.
Не каждый дистрибутив Linux содержит одинаковый пакет для команды
traceroute
. Некоторые дистрибутивы используют устаревший пакет inetutils, который содержит traceroute в составе набора сетевых инструментов, в то время как другие используют современный пакет traceroute.x86_64.
Cвязано: Как использовать Traceroute в Windows 10 (Tracert)
Изучение параметров Traceroute
Чтобы начать, давайте сначала посмотрим, что можно сделать с помощью команды traceroute в Linux.
Откройте терминал и введите команду traceroute -?
, чтобы получить доступ к странице справки:
Как видно из приведенного выше примера, у вас есть много параметров для настройки работы traceroute.
Основная функциональность Traceroute
Хотя у вас есть параметры для настройки трассировки маршрута, на самом деле вам не нужны все они. Фактически, вы можете просто запустить трассировку маршрута и указать хост для трассировки. Как видно ниже, трассировка маршрута в Linux отправляет пакет размером 60 байт и следует за каждым хопом, который проходит до целевого хоста.
Она может отслеживать эти хопы, используя время жизни (TTL) на каждом пакете, уменьшая его на единицу каждый раз, чтобы определить, когда пакет больше не принимается.

Знайте, что у трассировки маршрута есть максимальное количество хопов. Она может пройти максимум 30 хопов.
Добавление переключателей для более точного отслеживания
Стандартная функциональность трассировки маршрута в Linux работает хорошо, но вы можете сделать гораздо больше. Давайте теперь рассмотрим множество самых популярных и полезных переключателей, которые у вас есть.
Исключение хопов с помощью переключателя первого хопа
Один полезный командный параметр исключает определенные маршрутизаторы из трассировки. Используя параметр -f
или --first-hop=NUM
, вы можете исключить определенные маршрутизаторы из вывода. Это может быть очень полезно, если вы уверены, что один или несколько маршрутизаторов не вызывают проблем.
Вы также можете использовать переключатель -f
, чтобы задать трассировку, начиная после границы вашей сети, чтобы сузить возможные причины задержки в Интернете.
В следующем GIF-изображении вы можете увидеть выполнение команды traceroute -f 3 google.com
. Эта команда пропускает первые три маршрутизатора, обходя мою домашнюю сеть и маршрутизатор провайдера. Обратите внимание, что первые два прыжка отсутствуют.

Для достижения www.google.com с моей сети из приведенного выше примера требуется 15 прыжков. Вы видите:
- количество прыжков
- имя хоста или IP-адрес маршрутизатора по пути трассировки
- время ответа, как и раньше
В выводе вы можете увидеть дополнительные интерфейсы для некоторых прыжков. Это ожидаемо.
Ограничение прыжков с помощью переключателя Max-Hop
Предположим, что, помимо пропуска первых двух прыжков, вам также нужен путь до пятого прыжка в маршруте. Для этого вы можете использовать параметр переключателя -m
или --max-hop=NUM
.
Введите в терминале команду traceroute -m 5 -f 3 http://www.google.com
и нажмите Enter. Эта команда, несомненно, полезна для сужения потенциальных проблем с маршрутизацией. Теперь traceroute
пропускает первые два прыжка и останавливается на пятом прыжке.

Уменьшение количества пакетов-зондов с помощью переключателя -Q
Traceroute в Linux по умолчанию отправляет три пакета-зонда на каждый маршрутизатор в пути. Возможно, вы хотели бы сократить время работы команды traceroute
. Вы можете изменить количество пакетов-зондов, отправляемых на каждый маршрутизатор, с помощью параметра -q
.
Введите traceroute -q -m 5 -f 3 www.google.com
в ваш терминал и нажмите Enter. Вы можете видеть ниже, что traceroute
отправляет только один пакет, потому что мы получаем только одно время отклика для каждого узла.

Также вы можете увеличить количество пробных пакетов, отправляемых для каждого узла, указав аргумент для параметра -q
, как показано ниже. Увеличение количества пробных пакетов может помочь, предоставив среднее время отклика для каждого узла.

Резюме
В этой статье о Traceroute для Linux вы узнали основы использования этой полезной утилиты. С помощью этой команды можно сделать гораздо больше. Если вы хотите узнать, как использовать каждый переключатель, обратитесь к странице справки.