traceroute linux — как пользоваться

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

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

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

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

Обычно по умолчанию утилита traceroute не входит в дистрибутив Linux, и поэтому при использовании трассировки вы можете получить ошибку «команда не найдена», в английской версии «команда не найдена».

Установка на Ubuntu, Debian:

# соответствующее обновление
# apt install traceroute

В Centos 7

# yum install traceroute

В Centos 8

# не устанавливает traceroute

Команда traceroute Linux

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

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

How Does It Work?

Traceroute работает, используя свойство сетевых пакетов «время жизни». У всех пакетов есть определенное количество рикошетов, которые они могут совершить между компьютерами, прежде чем они будут автоматически отброшены. Эта функция предотвращает бесконечную передачу потерянных пакетов по сети, замедляя законный трафик.

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

Traceroute использует эти сообщения об истечении срока действия для проверки пути между вашим компьютером и местом назначения. Он начнется с отправки пакета со сроком службы один. Первое устройство освободит его, отправив сообщение со своим IP-адресом. Затем traceroute отправит еще один пакет со временем жизни два. Второе устройство отправит сообщение об истечении срока действия. Traceroute будет продолжать процесс, пока вы не достигнете своей цели.

Как настроить размер пакета с помощью команды traceroute

Вы можете настроить размер пакетов, отправляемых за переход; размер по умолчанию — 60 байт; следующая команда изменит размер пакета на 50 байт.

$ traceroute youtube.com 50

Requirements

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

4. Use IPv4 or IPv6

По умолчанию команда traceroute использует адреса IPv4 для отслеживания запроса. Мы можем указать ему использовать IPv6-адрес, добавив параметр -6 перед именем хоста. Эквивалент для traceroute -6 — это команда traceroute6:

$ traceroute6 baeldung.com

Результат должен выглядеть так:

traceroute на baeldung.com (2606: 4700: 3030 :: 6812: 3e4e), максимум 30 переходов, 80 байтовых пакетов 1 2001: 2e8: 665: 0: 2: 2: 0: 1 (2001: 2e8: 665: 0: 2: 2: 0: 1) 0,083 мс 0,048 мс 0,044 мс 2 2001: 2e8: 22: 204 :: 2 (2001: 2e8: 22: 204 :: 2) 25,128 мс 25,047 мс 25,025 мс 3 2001: 2e8: 20: : 22: 11 (2001: 2e8: 20 :: 22: 11) 1,106 мс 25,830 мс 1,007 мс 4 xe-0-0-14-1.a02.tokyjp05.jp.bb.gin.ntt.net (2001: 218 : 2000: 5000 :: 305) 0,908 мс 1,197 мс 1,097 мс 5 ae-25.r02.tokyjp05.jp.bb.gin.ntt.net (2001: 218: 0: 2000 :: 59) 1,515 мс 1,744 мс 1,785 мс 6 ae-4.r30.tokyjp05.jp.bb.gin.ntt.net (2001: 218: 0: 2000 :: 11a) 1466 мс 1538 мс ae-4.r30.tokyjp05.jp.bb.gin.ntt net (2001: 218: 0: 2000 :: 11a) 1337 мс 7 ae-3.r00.tokyjp08.jp.bb.gin.ntt.net (2001: 218: 0: 2000 :: 2d7) 1857 мс 1839 мс ae — 3.r00.tokyjp08.jp.bb.gin.ntt.net (2001: 218: 0: 2000 :: 2d7) 1,901 мс 8 as7515.ntt.net (2001: 218: 2000: 5000 :: 26) 2,717 мс 2419 мс 2325 мс 9 2400: cb00: 22: 1024 :: a29e: 759c (2400: cb00: 22: 1024 :: a29e: 759c) 2115 мс 1985 мс 2400: cb00: 22: 1024 :: a29e: 759f (2400: cb00: 22: 1024 :: a29e: 759f) 2272 м ю

Как мы видим, результаты очень похожи на результаты использования IPv4. На этот раз у нас девять роутеров. Для каждого из них мы получаем имя хоста, адрес IPv6 и три времени приема-передачи.

Внимание, подключение по протоколу IPv6 может быть отключено интернет-провайдером. Например, AWS не поддерживает IPv6 на своих экземплярах. В этих случаях мы увидим результат ниже:

traceroute6: Примечание: baeldung.com имеет несколько адресов; с использованием 2606: 4700: 3036 :: 6812: 3f4e connect: нет маршрута к хосту

Мы можем решить эту проблему с помощью инструмента .tracerouteonline

Утилита Traceroute

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

$ tracerouteoptions host_address

В качестве адреса можно использовать 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.

Introduction

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

2. Install

Если у нас еще не установлен traceroute, сначала нам нужно это сделать. Например, в Ubuntu команда для установки traceroute выглядит так:

$ sudo apt установить traceroute

Как ограничить количество зондов с помощью команды traceroute

вы можете установить количество зондов с помощью кнопки «-q». По умолчанию в traceroute на каждом переходе отображаются три зонда: этот параметр можно использовать, если вы хотите получить быстрые ответы:

Следующая команда ограничит количество зондов до 2:

$ trace -q2 youtube.com

 

Как настроить скорость отклика Hop с помощью команды traceroute

С помощью кнопки «-w» вы можете увеличить количество секунд, в течение которых каждый прыжок должен ждать, чтобы показать результат. Он принимает только значения с плавающей запятой, поэтому вам нужно передать число с плавающей запятой (6.0, 6.5); и увеличение количества прыжков должно дать лучший ответ: следующая команда установит время ожидания на 5,5 мс для каждого прыжка:

$ trace -w5.5 youtube.com

 

Useful Flags

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

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

$ traceroute -4 linuxconfig.org

По умолчанию traceroute использует пакеты icmp (ping). Если вы предпочитаете тестировать TCP-соединение для сбора более важных данных для веб-сервера, вы можете использовать флаг -T.

$ traceroute -T linuxconfig.org

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

$ traceroute -p 53 192.168.1.1

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

$ traceroute -f 3 -m 10 linuxconfig.org

Distributions

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

Синтаксис

Давайте посмотрим на синтаксис команды.

параметры трассировки host_address

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

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

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

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

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

What Does Traceroute Do?

Traceroute отправляет пакеты на целевой компьютер и записывает все шаги, которые пакеты совершают на своем пути. Печатает IP-адреса и доменные имена серверов, через которые проходят пакеты, в окне терминала.

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

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

5. Additional Options

Команда предлагает нам множество дополнительных опций. Мы можем найти их все вместе с описанием на странице руководства Linux. Давайте посмотрим на некоторые из них.

5.1. Maximum Number of Hops

Добавляя дополнительный параметр -m, мы можем указать максимальное количество переходов, которое будет проверять traceroute:

$ traceroute -m 3 baeldung.com

Теперь вывод будет состоять только из первых трех маршрутизаторов:

… 1 192.168.100.1 (192.168.100.1) 1,446 мс 0,765 мс 0,653 мс 2 10.100.0.1 (10.100.0.1) 2,131 мс 1,982 мс 1,877 мс 3 10.30.140.1 (10.30.140.1) 1,844 мс 2,121 мс 2,181 мс

Значение по умолчанию для параметра -m — 30. Убедитесь, что вы увеличили его в случаях, когда количество переходов может превышать 30.

5.2. Offset the Trace Start

Помимо установки максимального количества прыжков, мы можем указать, на каком хосте мы хотим начать трассировку.

По умолчанию traceroute всегда запускается с первого хоста. Мы можем изменить его с помощью параметра -f:

$ traceroute -f 6 baeldung.com

Теперь у нас есть только два последних маршрутизатора для домена baeldung.com:

… 6 cloudflare.thinx.pl (212.91.0.28) 6,732 мс 6,287 мс 6,271 мс 7 104,18.63.78 (104.18.63.78) 6,518 мс 5,390 мс 5,590 мс

5.3. Number of Probe Packets per Hop

По умолчанию traceroute отправляет три тестовых пакета для каждого сетевого хоста. Это можно настроить, установив параметр -q:

$ traceroute -q 5 baeldung.com

Теперь команда должна отправить пять зондирующих пакетов для каждого хоста:

… 7 104.18.63.78 (104.18.63.78) 5,453 мс 5,446 мс 5,359 мс 5,447 мс 5,406 мс…

5.4. Size of Probing Packet

Пакеты зондов Traceroute составляют 60 байтов для IPv4 и 80 байтов для IPv6. Чтобы отследить путь к пакету с разными размерами зонда, мы можем указать желаемое значение сразу после хоста:

$ traceroute baeldung.com 512

Наиболее частой причиной увеличения размера пакета traceroute является устранение проблем с максимальным размером передаваемого блока (MTU). В остальном настройки по умолчанию должны быть в порядке.

Conventions

  • # — требует, чтобы данная команда linux запускалась с привилегиями root непосредственно от имени пользователя root или с помощью команды sudo
  • $ — дана команда linux для запуска от имени обычного непривилегированного пользователя

Basic Usage

Traceroute прост. Запустите команду traceroute, а затем укажите цель. Этот пункт назначения может быть IP-адресом или доменным именем.

$ traceroute linuxconfig.org
От traceroute к LinuxConfig

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

Traceroute заблокирован

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

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

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

Как ограничить количество прыжков с помощью команды traceroute

По умолчанию 30 переходов; но вы можете установить свое значение с помощью параметра «-m»: например, следующая команда проверяет веб-сайт только на предмет 4Hops, чтобы добраться до места назначения. Вы можете наблюдать только отслеживание до 4 хопов.

$ trace -m4 youtube.com

 

6. Conclusion

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

Эта статья закрыта для комментариев!

Categories

  • Администрация
  • Файл
  • Файловая система
  • Установка
  • Сеть
  • Процессы
  • Сценарии
  • Исследовать
  • Безопасность
  • Паутина

3. Example

Начнем с простого примера: запустим команду traceroute для домена baeldung.com:

$ traceroute baeldung.com

Результат должен выглядеть так:

traceroute: Предупреждение: baeldung.com имеет несколько адресов; с использованием 104.18.62.78 traceroute на baeldung.com (104.18.62.78), максимум 30 переходов, 60 байтовых пакетов 1 192.168.100.1 (192.168.100.1) 5,810 мс 0,791 мс 0,791 мс 2 10.100.0.1 (10.100.0.1) 1,854 мс 2,031 мс 1,775 мс 3 10.30.140.1 (10.30.140.1) 1,906 мс 2,216 мс 1,896 мс 4 60.184.246.94.ip4.epix.net.pl (94.246.184.60) 5,068 мс 5,190 мс 5,205 мс 5 ae48-48.r7.poland- rs .thinx.atman.pl (212.91.0.10) 5219 мс 5394 мс 5244 мс 6 cloudflare.thinx.pl (212.91.0.28) 5787 мс 6500 мс 6107 мс 7 104.18.63.78 (104.18.63.78) 5379 мс 5238 мс 5219 мс

Первая строка сообщает нам, какой адрес назначения будет использоваться для этого теста.

Во-вторых, мы знаем о двух вещах: максимальное количество прыжков, которое может пройти пакет, чтобы достичь пункта назначения, и размер пакета. В нашем случае у нас есть максимальное количество переходов 30 и размер пакета 60 байт. По умолчанию traceroute использует три тестовых пакета для каждого перехода.

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

В нашем случае для подключения к baeldung.com запрос должен пройти через семь разных маршрутизаторов. В выходных данных мы видим, что первый — это маршрутизатор в локальной сети (192.168.100.1), а второй (104.18.62.78) — целевой хост для домена baeldung.com.

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

Как использовать traceroute

После установки вы можете использовать его в Ubuntu; прежде чем вдаваться в подробности; Давайте посмотрим на основы использования traceroute:

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

$ trace

Кроме того, следующая команда покажет трассировку для youtube.com.

$ traceroute youtube.com

ИЛИ

$ traceroute www.youtube.com

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

  • IP-адрес получателя
  • Число переходов: это числовое значение, указывающее, как долго traceroute будет пытаться достичь пункта назначения (по умолчанию 30).
  • Количество зондов, отправленных за один прыжок, или количество пакетов за один прыжок (по умолчанию — 3).
  • Последний важный момент касается размера отправляемых вами пакетов. (по умолчанию 60 байт)

Все эти значения можно установить в соответствии с вашими потребностями:

Команда traceroute поддерживает список параметров, которые можно вводить для различных целей; посмотрите на них:

Installing Traceroute

Traceroute — это базовая системная утилита Linux. Он доступен практически во всех репозиториях дистрибутива. Используйте свой менеджер пакетов, чтобы установить его в вашей системе.

Ubuntu/Debian

$ sudo apt установить traceroute

Fedora

# dnf install traceroute

OpenSUSE

# zypper в traceroute

Arch Linux

# pacman -S traceroute

Как установить количество переходов с помощью параметра -f команды traceroute

Значок -f Параметр команды traceroute будет печатать результат с указанным числом переходов; вы можете выбрать количество переходов, с которых будет отображаться результат: например, в примере, показанном ниже, результат будет начинаться с 10-го перехода.

$ trace -f10 youtube.com

Оцените статью
Блог о хакинге