Traceroute linux команда не найдена

Обновлено: 05.07.2024

Существует несколько хороших утилит, позволяющих искать неисправности в сети на уровне TCP/IP. Большинство из них выдает низкоуровневую информацию, поэтому для того чтобы пользоваться ими, нужно хорошо понимать принципы работы протоколов TCP/IP и маршрутизации. В этой статье мы рассмотрим основные инструменты поиска неисправностей в сети: утилитами ping, traceroute и mtr.

Утилита ping

Проверка доступности компьютера

Утилита ping предназначена для того, чтобы при помощи отправки ICMP пакетов убедиться в работоспособности хоста. Команда ping посылает запрос (ICMP ECHO_REQUEST) конкретному компьютеру и фиксирует поступающие ответы (ICMP ECHO_RESPONSE). Её можно применять для работоспособности отдельных компьютеров и сегментов сети. В обработке ее запроса участвуют таблицы маршрутизации, физические компоненты сетей и сетевые шлюзы, поэтому для достижения успешного результата сеть должна быть в более или менее рабочем состоянии. Если команда не работает, можно быть совершенно уверенным в том, что более сложные средства тем более не функционируют. Однако это правило неприменимо в сетях, где брандмауэры блокируют эхо-запросы ICMP. Убедитесь в том, что брандмауэр не препятствует работе команды ping, прежде чем подозревать, что зондируемый компьютер игнорирует эту команду. В конце концов, отключите на короткое время брандмауэр для проверки работоспособности сети.

Если не задан аргумент «число пакетов», команда ping работает в бесконечном цикле. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию <Ctrl+C>.

Min - минимальное время ответа хоста, кторому был отправлен запрос.

Avg - среднее время ответа хоста, кторому был отправлен запрос

Max - максимальное время ответа хоста, кторому был отправлен запрос.

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

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

Другие примеры задействования разын ключей:

Не резолвить имена адресов, выводить только ip-адреса

Завершение работы ping по заданному времени (тут 5 секунд)

Установить размер отправляемых пакетов в 1000 байт

Увеличить интервал времени пинга на 3 секунды

Утилита traceroute

Синтаксис утилиты не сложный:

Адресом узла может служить как IP адрес, так и доменное имя. Основные опции:

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

Бывает, что трассировка с помощью UDP не работает, это может произойти потому, что фаервол блокирует все лишние пакеты. Можно воспользоваться ICMP с помощью опции -I:

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

Утилита MTR

MTR – это альтернатива программе traceroute. Объединяя функции ping и traceroute, mtr позволяет постоянно опрашивать удаленный сервер и отслеживать изменения задержки и производительности с течением времени.

Синтаксис утилиты также несложный:

mtr_1_0.jpg

Вывод похож на traceroute, но mtr имеет существенное преимущество – ее вывод постоянно обновляется. Это позволяет собирать средние показатели, а также отслеживать тенденции и изменения производительности сети. Как и с утилитой ping, mtr будет работать бесконечно. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию <Ctrl+C>.

Часто какой-нибудь сегмент сети не работает должным образом. Как ни странно, при проверке часто обнаруживается, что используемое оборудование подключено и исправно. Трудно определить, что не работает, на каком участке проблема. На это есть своё объяснение. Это означает, что одно из устройств в локальной сети попросту не отвечает, что приводит к потере некоторых данных. Необходимо разобраться, какой из узлов дал сбой. Это легко проверить при помощи специальной утилиты под названием 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 во время стандартных операций и автоматических сценариев может оказать мощную нагрузку на сеть, что не является целесообразным решением.

Командой 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. Данная команда очень сильно вам поможет в решении сетевых проблем, так что трассировка вам в помощь.

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

Утилита ping позволяет только определить наличие проблемы, что узел не отвечает, но как узнать где обрывается соединение? Для этого применяется утилита traceroure. В этой небольшой инструкции мы рассмотрим как пользоваться traceroute linux, как понимать ее вывод и определить где же все-таки проблема. Но сначала рассмотрим, как работает traceroute.

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

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

Утилита Traceroute

Перед тем как перейти к примерам работы с утилитой давайте рассмотрим ее синтаксис и основные опции. Синтаксис вызова очень прост:

$ traceroute опции адрес_узла

В качестве адреса может использоваться ip адрес или доменное имя. Рассмотрим основные опции:

  • -4 или -6 - использовать ipv4 или ipv6 протокол;
  • -I - использовать ICMP пакеты вместо UDP;
  • -T - использовать TCP пакеты вместо UDP;
  • -F - не фрагментировать пакеты;
  • -f - указать TTL с которого нужно начать;
  • -g - передавать пакет через указанный шлюз;
  • -i - передавать пакет через указанный интерфейс;
  • -m - максимальное количество узлов, через которые пройдет пакет;
  • -q - количество пакетов, отправляемых за раз, по умолчанию три;
  • -n - не узнавать доменные имена;
  • -p - указать порт вместо порта по умолчанию;
  • -w - установить время ожидания ответа от узла, по умолчанию полсекунды;
  • -r - использовать другой роутер вместо того, что указанный в таблице маршрутизации;
  • -z - минимальный интервал между пакетами;
  • -U - использовать UDP с увеличением номера порта;
  • -UL - использовать протокол UDPLITE;
  • -D - использовать протокол DCCP;
  • --mtu - указать размер пакета;
  • -P - протокол, доступны такие значения: raw, dccp, udplite, udp, tcpconn, tcp, icmp.

Это не все опции утилиты, но все основные, которыми вы будете пользоваться. Дальше перейдем практике того, как выполняется трассировка сети Linux.

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


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

У вас, наверное, возник вопрос, почему время прохождения для некоторых узлов такое долгое? Ведь если выполнить ping, то общее время будет намного меньше. Дело в том, что время засекается для пути пакета туда и обратно. От запроса до ответа. Это раз, но еще нужно учитывать что маршрутизаторы дают высший приоритет для приходящих пакетов, когда для сервисных задержки могут быть более длинными.


Еще, вместо одного узла вы можете видеть звездочки traceroute. Это еще не значит, что он не работает. Это означает что всего лишь он не захотел нам отвечать. Давайте проверим еще что-нибудь, например, публичный DNS google:

sudo traceroute 8.8.8.8


Здесь уже больше узлов, и такая же ситуация со звездочками. Если бы на пути к серверу возникла ошибка, мы бы это увидели. Например, узел 195.153.14.1 нам не ответил и мы смогли отследить запрос только до 212.162.26.169.

sudo traceroute 195.153.14.1


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

sudo traceroute history.pl


sudo traceroute -I history.pl


Но трассировка может использоваться не только для обнаружения обрыва в цепочке маршрутизаторов. У нее еще есть достаточно интересное применение по исследованию сети. Например, вы можете попытаться определить использование подсетей провайдером. Отправим три запроса на разные адреса:




Затем сравните выводы этих команд. Вы увидите, что начальные IP адреса одинаковые. Мы можем сделать вывод, что наш роутер 192.168.1.1 подключен к локальной сети провайдера 195.5.8.0/24, которая, в свою очередь, подключена к сети 10.50.50.0/24 откуда уже получает доступ к внешней сети.

Выводы

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

И если их нет, то просто установи их через менеджер пакетов своего (неуказанного) дистрибутива.

Debian в заголовке:

apt-get install iputils-ping traceroute


Попробуй программу mtr. В Виндовсе такого нет ;)



s/tracert/traceroute/g, конечно же


Зачётный тролинг. Напиши ещё в лист разработчиков freeBSD, что ты хотел бы видеть в их ОСи аналог виндового TCP/IP стека

Во-во, куда ты её ввёл то? Её в терминал надо вводить.

Во всех остальных системах испокон веков эта команда называлась traceroute. А ещё есть tracepath, которая делает тоже самое, но немного другим способом (использует по умолчанию UDP вместо ICMP).

Хм. А где это в манах написано?


Проглядел. Ну теперь буду знать =).


Даже в убунтах пинг искаропки есть, возможно вы используете какую-то сборку дебиана? Или банально в команде ping была допущена опечатка?


debian какой версии? Как ставили? По умолчанию и ping, и traceroute в системе есть.

Действительно, это так и есть. Каким образом я так ping ввел, что он у меня ничего не сказал.. задача=) Название traceroute не знал, вот тут реально форум помог. Как то и то, и то работает несколько.. м.. кривовато, чтоль, но тут дело вкуса и привычки. P.s BarsStudio - исключительно канувшая в Лету вещь, родившаяся за 15 минут, у которой не было сайта. Вероятно будет, ибо сейчас потихоньку возвращаюсь в веб-коддингу. Картинка же тут от того, что она у меня привязана к нику посредством Граватара(Или как то так, название не помню - это было год назад минимум). Прекращаем страдать манией поиска троллей. Ибо итог получается абсолютно противоположный и ищущий сам превращается в то, что он искал. То что мы ненавидим больше всего - есть мы!(c)

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