Как установить traceroute на linux

Обновлено: 07.07.2024

Часто какой-нибудь сегмент сети не работает должным образом. Как ни странно, при проверке часто обнаруживается, что используемое оборудование подключено и исправно. Трудно определить, что не работает, на каком участке проблема. На это есть своё объяснение. Это означает, что одно из устройств в локальной сети попросту не отвечает, что приводит к потере некоторых данных. Необходимо разобраться, какой из узлов дал сбой. Это легко проверить при помощи специальной утилиты под названием traceroute в Линукс.

В данной статье рассматривается использование проверенного инструмента только для компьютеров Linux. В других системах эти инструкции не работают.

Принцип работы трассировки

Данные в сети передаются в виде пакетов. Об этом знает даже новичок. Поток информации нуждается в разбивке, что обеспечивают специальные программы, установленные на компьютере. Далее эти пакеты отправляются на целевой узел через Интернет, после чего поток информации заново собирается.

Каждая «порция» данных имеет ограниченный срок жизни и переходит от узла к узлу, достигая конечной цели. По умолчанию утилита traceroute использует пакеты формата UDP, но данный параметр поддается коррективам. Вскоре вы сами в этом убедитесь.

команда traceroute не найдена

command not found

Обычно по умолчание утилита traceroute не входит в комплект дистрибутивов Линукс и поэтому при использовании трассировки можно получить ошибку "команда не найдена", в английском варианте "command not found".

Установка в Убунту, Debian:

Синтаксис

Рассмотрим синтаксис команды.

В той части команды, где будет указан адрес узла, необходимо прописать доменное имя или IP-адрес.

Дополнительные опции

Чтобы изменить тип пакетов, необходимо воспользоваться соответствующими опциями. Для пакетов ICMP – опция -I. Для пакетов TCP – опция -T. Вследствие чего формат UDP больше не будет использован программой.

Если нужно указать размер пакета, задайте опцию --mtu. В таблице маршрутизации будет указано конкретное устройство. Чтобы поменять его, и задать другой роутер, задайте опцию -r. Для установки максимально допустимого времени жизни пакета задайте опцию -m. Чтобы задать длительность паузы между прыжками, задайте опцию -z.

Вышеперечисленные ключи не являются обязательными для использования traceroute в командной строке устройства Линукс. Вы всегда можете запустить утилиту без добавления вспомогательных опций.

Примеры трассировки в Linux

Рассмотрим на примере выполнение трассировки сети до определенного сервера. Он будет указан в завершении:

Трассировка сайта

Как видно из скриншота, пакет дошел до сайта всего за два хоста

Система отправляла по 3 пакета на каждый из этих узлов, засекая при этом точное время их прохождения. Имея подобную информацию на руках, очень просто понять, на каком узле возникла проблема, если сеть дала сбой.

Следует учитывать тот факт, что сервисная задержка может отнять немало времени. Это связано с приоритетностью маршрутизатора. Приходящие пакеты всегда находятся в фаворе.

Если в появившемся окне вместо узла указаны звёздочки утилиты, не стоит делать поспешных выводов о его поломке. Скорее всего, узел просто не ответил на этот раз.

Если трассировка сети не осуществляется с помощью пакетов UDP, их формат нужно поменять. В ином случае фаервол продолжил блокировку лишних пакетов. О том, как осуществить замену на практике, говорилось выше. Например, если вы хотите отдать предпочтение пакетам ICMP, то нужно подобрать соответствующую опцию, указанную в статье. В данном случае это опция -I.

Для начала пробуем без изменений:

Если не получается, измените формат пакетов:

Чтобы разобраться с полученными данными и сделать правильное умозаключение, следует провести сравнение 3 выводов заданных команд. Вы увидите, к какой локальной сети подключен ваш маршрутизатор, и какие сети использует провайдер.

Подводя итог, следует резюмировать основные функции команды traceroute:

  1. Тестирование сети
  2. Управление сетью
  3. Измерение сети.

Заключение

Утилита treaceroute – весьма популярный и надежный инструмент для проверки обрыва цепочки, используемый не только системными администраторами, но и обычными пользователями дистрибутива Linux. Эта команда может пригодиться при различных неисправностях. Её рекомендуется использовать исключительно для ручной локализации проблем. Использование traceroute во время стандартных операций и автоматических сценариев может оказать мощную нагрузку на сеть, что не является целесообразным решением.

Это руководство поддерживает Ubuntu, Debian, Fedora, OpenSUSE и Arch Linux.

Требования

Рабочий Linux с установленным сетевым подключением.

Введение | Зачем нужен traceroute?

Traceroute находит, какие сетевые маршруты берутся между вашим компьютером и пунктом назначения.

Это место назначения может быть веб-сайтом, сервером или другой машиной в вашей сети.

Это полезный инструмент для понимания того, как данные передаются через сеть.

Что делает Traceroute?

Traceroute отправляет пакеты на целевой компьютер и записывает все шаги, которые выполняются этими пакетами.

Он выводит IP-адреса и доменные имена серверов, через которые проходят эти пакеты, в своем окне терминала.

Вы сможете увидеть, сколько времени потребуется, чтобы ваши пакеты достигли места назначения, и вы сможете узнать, почему некоторые веб-сайты занимают в загрузке больше времени, чем другие, в зависимости от количества трафика.

Traceroute можно также использовать для сопоставления локальных сетей.

Если вы проводите аудит безопасности, вы можете использовать traceroute из целевой сети, чтобы понять, как настроена сеть и какие устройства находятся на ней.

Как это работает?

Traceroute работает, используя свойство «ttl», которое имеют сетевые пакеты.

Все пакеты имеют определенное количество отказов, которые они могут делать между компьютерами, прежде чем они будут автоматически удалены.

Эта функция предотвращает бесконечные передачи потерянных пакетов по сети, замедляя законный трафик.

Когда пакет переходит от сетевого устройства к другому, устройство проверяет время для жизни этого пакета.

Если количество отскоков, оставшихся от него, выше одного, оно уменьшит число на единицу и передает его следующему устройству.

Если это число один, он упадет, потому что уменьшение времени жизни на один приведет к нулю, убив пакет.

Если устройство отбрасывает пакет, оно отправляет обратно отправителю, сообщая ему, что он упал пакет, потому что время ожидания истекло.

Затем traceroute отправит еще один пакет со временем для жизни из двух ttl.

Traceroute продолжит процесс до достижения цели.

Установка Traceroute

Он доступен практически во всех хранилищах репозиториев.

Используйте его менеджер пакетов, чтобы установить его в своей системе.

Ubuntu/Debian

Fedora

OpenSUSE

Arch Linux

Основное использование

Traceroute прост. Запустите команду traceroute, а затем пункт назначения.

Это место назначения может быть IP-адресом или доменным именем.

Вы увидите, что traceroute работает в реальном времени в окне терминала. Всегда интересно посмотреть, сколько прыжков совершает пакет. Иногда вам нужно только пару прыжков, прежде чем добраться до места назначения. В других случаях кажется, что пакет проходит через половину Интернета, чтобы добраться туда.

Иногда вы можете увидеть, что traceroute останавливает вывод какой-либо фактической информации в ваш терминал и начинает показывать символы звездочки, как на изображении выше.

Некоторые сети настроены на блокировку трассировки.

Если ваши пакеты перемещаются по такой сети в любой момент своего пути, traceroute не будет работать.

Попробуйте также с IP-адресом. Вы заметите, что это тот же самый процесс.

Не стесняйтесь попробовать это и в своей собственной сети.

Вы сможете увидеть, есть ли медленные области или узкие места, которые необходимо улучшить.

Полезные флаги

Вам действительно не нужны флаги для использования traceroute, но есть несколько из них, которые могут помочь, в зависимости от вашей ситуации.

Во-первых, вы можете легко переключаться между IP4 и IP6 с помощью флагов -4 и -6.

По умолчанию traceroute использует пакеты icmp (ping).

Если вы предпочитаете проверять TCP-соединение для сбора данных, более релевантных веб-серверу, вы можете использовать флаг -T.

Если вы хотите протестировать определенный порт, флаг -p может помочь с этим.

Вы также можете вручную управлять им, когда traceroute начинается и заканчивается.

Вы можете сделать это, используя флаг -f, чтобы установить первый раз для жизни и -m для максимального времени для жизни.

Пример ниже начнется на третьем прыжке и заканчивается на десятой.

Заключительные мысли

Он может помочь вам сформировать четкую картину пути, который пакеты совершают как в вашей локальной сети, так и в Интернете в целом.

Командой tracert мы инициируем отправку пакетов данных тому получателю, который указали – это может быть адрес сайта, имя компьютера в сети или IP-адрес. При этом пакеты проходят через все промежуточные системы (обычно это специальные сетевые устройства – машрутизаторы) между нашим компьютером и получателем. Таким образом, мы устанавливаем маршрут до пункта назначения и, что гораздо более важно – определяем время отклика (значение в миллисекундах) каждого промежуточного узла.

Таким образом можно установить, в каком месте цепочки находится проблема. Если пакеты не доходят до самого пункта назначения – значит, проблема в нем. Если цепочка обрывается на середине – проблема в каком-то из промежуточных маршрутизаторов. При этом с другого компьютера или по другому маршруту (если такой существует) наш отвалившийся сайт может быть доступен. Если пакеты не выходят за пределы сети нашего провайдера – стало быть, там и проблема.

Трассировка в Linux

В linux за трассировку отвечает пакет traceroute. Первое что сделаем это поставим пакет.

Для CentOS и RedHat

yum install -y traceroute

Для Debian и Ubuntu

apt-get install traceroute -y

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-01

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-01

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-02

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-02

Как видите команда очень похожа на команду из операционной системы Windows. Данная команда очень сильно вам поможет в решении сетевых проблем, так что трассировка вам в помощь.


О трассировке

Traceroute отправляет пакеты данных на целевой компьютер, сервер или веб-сайт и записывает любые промежуточные шаги, через которые проходят пакеты. Результатом команды traceroute будут IP-адреса и доменные имена, через которые проходят пакеты. Эти записи также показывают, сколько времени требуется, чтобы пакеты достигли каждого пункта назначения. Это может объяснить, почему некоторые веб-сайты загружаются дольше, чем другие, поскольку количество переходов трафика может варьироваться.

Traceroute также полезен для отображения локальных сетей. Понимание топологии и подключений локальной сети можно найти при запуске инструмента.

Установка traceroute

Для Debian/Ubuntu и производных:


Для Fedora и производных:

Для openSUSE, SUSE Linux и производных:

Для Arch Linux и производных:

Использование traceroute

В следующих разделах показано, как использовать traceroute в вашей системе Linux.

Основное использование

Если сеть настроена на блокировку сигнала traceroute, то этот зонд будет отмечен звездочками.

IPv4 или IPv6

По умолчанию traceroute будет использовать Интернет-протокол по умолчанию, на который настроена ваша система. Чтобы вручную установить версию IP, выполните описанную ниже процедуру.

Чтобы указать traceroute на использование IPv4, используйте флаг -4 :

Чтобы указать traceroute использовать IPv6, используйте флаг -6 :

Тестирование портов

Если есть необходимость протестировать конкретный порт, его можно указать с помощью флага -p . Для отслеживания UDP traceroute будет начинаться с заданного значения и увеличиваться с каждым зондом. Для трассировки ICMP значение будет определять начальное значение последовательности ICMP. Для TCP и других это будет постоянный порт назначения для подключения.

Скрытие имен устройств

В некоторых ситуациях имена устройств в выводе могут сделать вывод беспорядочным. Для большей наглядности вы можете скрыть имена устройств из вывода. Для этого используйте флаг -n :

Предел тайм-аута Traceroute

Методы исследования

Есть несколько методов, которые вы можете использовать для проверки удаленного адреса. Чтобы указать traceroute на использование эха ICMP, используйте флаг -I :


Чтобы использовать TCP SYN для зондирования, используйте флаг -T :

Установка максимального количества прыжков

По умолчанию traceroute отслеживает 30 переходов. Traceroute предлагает возможность вручную установить количество отслеживаемых переходов.

Используйте флаг -m для количества переходов:


Указание интерфейса

Если к компьютеру подключено несколько сетевых интерфейсов, может оказаться полезным указать сетевой интерфейс, который будет использоваться для отправки пакетов. Чтобы указать сетевой интерфейс, используйте флаг -i :

Определение количества запросов для прыжка

Чтобы определить количество запросов для перехода, укажите это число с помощью флага -q :


Маршрутизация пакетов через шлюз

Чтобы маршрутизировать пакеты через определенный шлюз, используйте опцию -g , за которой следует шлюз:


Чтобы получить более полное и подробное руководство по всем доступным параметрам traceroute, посетите страницу руководства с помощью следующей команды:


Заключение

А ранее мы писали об использовании аналогичной команды tracert в Windows.

Читайте также: