Skip to content

Latest commit

 

History

History
304 lines (180 loc) · 28.9 KB

File metadata and controls

304 lines (180 loc) · 28.9 KB

Команда MTR в Linux

Источник: Linux MTR command

Мартин Праматаров (ClouDNS blog) · 26 февраля 2026 · рубрика Tools

Существует множество небольших сетевых утилит: Ping, Traceroute, Dig, Host и так далее.

Но не так часто одна из этих маленьких утилит командной строки объединяет функциональность двух программ в одной. Команда MTR — как раз такой случай. Это комбинация ping и traceroute.

Содержание

  • Что такое команда MTR?
  • Когда стоит использовать команду MTR?
  • Преимущества её использования
  • Выполнение MTR на Linux, macOS и Windows
  • Синтаксис команды MTR и список опций
  • Примеры команды MTR
  • MTR и Traceroute, Ping, Nslookup, Host и Dig
  • Вопросы безопасности при работе с MTR
  • Лучшие практики при использовании команды MTR
  • Устранение типичных ошибок команды MTR
  • Заключение

Что такое команда MTR?

MTR (Matt’s traceroute) — программа с интерфейсом командной строки, служащая для диагностики и устранения неисправностей сети. Исходный код был создан Мэттом Кимбаллом в 1997 году. Годом позже Роджер Вольф продолжил его работу и переименовал программу в My traceroute.

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

Её превосходство над традиционной утилитой в том, что она также предоставит массу статистики по каждому узлу (hop), например время ответа и процент потерь.

Так что, используя команду MTR, вы получите больше информации о маршруте и увидите проблемные устройства на пути. Если вы видите внезапный рост времени ответа или потерь пакетов — вы нашли плохой канал.

Кратко говоря, команда MTR служит для следующего:

  • Проверка связности от компьютера с этой командой до пункта назначения.
  • Просмотр потерь пакетов. Это укажет на качество связи между точками.
  • Время кругового прохода. Вы можете увидеть точное время, которое требуется пакетам, чтобы достичь пункта назначения, и получить отчёт.

Команда MTR доступна на Unix-подобных ОС вроде Linux (Ubuntu, CentOS, Fedora и т.д.), macOS и FreeBSD. Существует версия MTR для Windows, но с ограниченной функциональностью. Есть также WinMTR для Windows, но её код другой.

Когда стоит использовать команду MTR?

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

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

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

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

Преимущества её использования

Команда MTR в Linux даёт ряд преимуществ в управлении сетями и устранении их неисправностей:

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

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

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

Выполнение MTR на Linux, macOS и Windows

Как использовать команду MTR на Linux или FreeBSD?

*Для MTR на Linux и FreeBSD вам понадобятся права администратора (sudo)

  • Сначала откройте приложение Терминал.
  • Чтобы получить команду MTR на Linux (Ubuntu или Debian), установите её командой «sudo apt-get install mtr», «sudo yum install mtr» для CentOS, Fedora или «sudo pkg install package_name» на FreeBSD.
  • Используйте команду «mtr -rw [destination_host]» для базовой информации или смотрите синтаксис и примеры ниже для более продвинутых задач. Замените destination_host на нужный вам. Используйте её 10-15 минут.

Как использовать команду MTR на macOS?

*Для MTR на macOS вам понадобятся права администратора (sudo). Команда не будет предустановлена, так что сначала её нужно установить.

  • Для установки вам понадобится Brew. Зайдите на сайт Brew и выберите язык.
  • Под ним вы увидите текстовую команду, скопируйте её.
  • На компьютере Mac зайдите в Applications, затем Utilities и там откройте приложение Терминал.
  • Внутри Терминала вставьте текст и нажмите Enter.
  • Вам будет предложено ввести пароль. Сделайте это и нажмите Enter.
  • Когда Brew уже установлен, введите новую команду: «brew install mtr» и нажмите Enter.
  • Когда MTR установится, запустите её командой «sudo mtr» и Enter. Используйте код «mtr -rw [destination_host]» для базовой проверки. Замените destination_host на нужный вам. Запустите на 10-15 минут.
  • Теперь вы можете начать использовать команду MTR на macOS. Смотрите синтаксис и примеры ниже, чтобы научиться делать более сложные задачи.

Как использовать команду MTR на Windows?

  • Сначала скачайте WinMTR с GitHub.
  • Возьмите файл с именем WinMTR-v100-static.zip, распакуйте его — там будут две версии: WinMTR.exe (32bit) и WinMTR64.exe.
  • Выберите в зависимости от вашей версии Windows и дважды кликните.
  • Поместите хост, который хотите проверить, в поле Host. Если нужны дополнительные опции, их можно увидеть в «Options».
  • Нажмите start и запустите на некоторое время (10-15 минут).
  • Остановите, когда решите, что получили достаточно информации. Можно скопировать текст и сохранить его в текстовый файл.

Синтаксис команды MTR и список опций

Синтаксис команды MTR на Linux:

mtr [-hvrctglspni46] [-help] [-version] [-report] [-report-cycles COUNT] [-curses] [-split] [-raw] [-no-dns] [-gtk] [-address IP.ADD.RE.SS [-interval SECONDS] [-psize BYTES | -s BYTES] HOSTNAME [PACKETSIZE]

Все доступные опции команды MTR на Linux:

Опция Описание
-h -help Показать все доступные опции.
-v -version Показать версию команды MTR.
-r -report Запускает режим отчёта. В этом режиме она выполнится указанное с помощью «–c» число раз и покажет статистику в конце.
-w -report-wide Широкий режим отчёта. Отличие от предыдущего в том, что имена хостов в отчёте не будут обрезаться.
-c COUNT -report-cycles COUNT Задать количество пингов.
-s BYTES -psize BYTES PACKETSIZE Задать размер пакетов. Если задано отрицательное число, будут отправляться пакеты случайного размера.
-t -curses Принудительный интерфейс на основе curses.
-n -no-dns Показывать числовые IP-адреса без разрешения имён хостов.
-g -gtk Принудительный интерфейс GTK+.
-p -split Настроить команду mtr для раздельного пользовательского интерфейса.
-l -raw С буквой «L» можно задать использование формата raw-вывода.
-a IP.ADD.RE.SS -address IP.ADD.RE.SS Привязать сокеты исходящих пакетов к конкретному интерфейсу.
-i SECONDS -interval SECONDS Задать время в секундах между ICMP ECHO-запросами.
-u Принудительно использовать UDP вместо ICMP ECHO.
-4 Только IPv4.
-6 Только IPv6.

Примеры команды MTR

Мы покажем вам множество примеров команды MTR и того, как использовать её в Linux. Те же примеры можно использовать на macOS или FreeBSD (могут быть небольшие различия). Мы будем использовать Google.com как имя хоста и некоторые публичные IP-адреса. Вы можете заменить их и использовать в своих целях.

Базовая команда mtr

$ mtr google.com

Она покажет вам базовую статистику: каждый узел (имена хостов) со временем и loss%.

Показ числовых IP-адресов

$ mtr -g google.com

Если использовать «-g», вы получите IP-адреса (числа) вместо имён хостов. IP-адреса можно использовать с другим инструментом для дальнейшей диагностики.

Показ и числовых IP-адресов, и имён хостов

$ mtr -b google.com

Теперь вы увидите и имена хостов, и IP-адреса. Адреса будут в скобках.

Задание количества пингов

$ mtr -c 10 google.com

В этом случае вы задаёте количество пингов, которое хотите отправить (здесь 10). Можно задать большое число вроде 1000, чтобы проверять имя хоста в течение длительного периода и получить лучшее представление о связности.

Получить отчёт о результате команды MTR

$ mtr -r -c 10 google.com >mtr-command-google

или

$ mtr -rw -c 10 google.com >mtr-command-google

Это делается с помощью «-r». Здесь мы задали количество пингов равным 10, а последняя часть «mtr-command-google» — имя, которое вы можете менять как хотите.

При использовании «-rw» можно получить более чистый отчёт, приятнее для глаз.

Переупорядочить отчёт

$ mtr -o “LSDR NBAW JMXI” google.com

«-o» — для вывода (output). С помощью этого кода вы можете менять формат отчёта, чтобы получать информацию в удобном виде.

Временные интервалы между ICMP ECHO-запросами

$ mtr -i 10 google.com

С помощью «-c» мы задаём количество пингов. С «-i» вы задаёте временной интервал между ICMP ECHO-пингами.

Использовать TCP

$ mtr -tcp google.com

Принудительно использовать TCP вместо ICMP.

Использовать UDP

$ mtr -udp google.com

Принудительно использовать UDP вместо ICMP.

Задать максимальное количество узлов

$ mtr -m 35 216.58.223.78

Мы используем «-m» со значением 35 для конкретного IP-адреса. Можно увеличить значение, если запрос делает по пути больше узлов.

Определить размер пакета

$ mtr -r -s 50 google.com

Вы можете задать конкретный размер пакетов для пингов. В этом примере команды MTR мы используем 50 байт.

Вывод в CSV

$ mtr -csv google.com

Используйте, если формат CSV подходит вам лучше, чем традиционный отчёт.

Вывод в XML

$ mtr -xml google.com

Используйте, если формат XML подходит вам лучше, чем обычный отчёт.

Больше информации и справка

$ man mtr

или

$ mtr –help

Эти две команды могут дать вам больше информации о команде MTR и том, как её использовать.

MTR и Traceroute, Ping, Nslookup, Host и Dig

MTR — мощная и при этом универсальная команда мониторинга и диагностики сети, и в сочетании с Traceroute, Ping, Nslookup, Host и Dig вы можете получить полный обзор своей сети. Рассмотрим их подробнее:

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

Для более простого измерения нагрузки часто используется команда ping. Она измеряет задержку, потери пакетов и другие метрики между двумя устройствами в сети. Ping — простой инструмент, который легко понять и использовать, что делает его популярным выбором для тех, кто только начинает заниматься мониторингом сети.

Команда nslookup (сокращение от «name server look-up») позволяет пользователям обращаться к серверам доменных имён из интерфейса командной строки. Этой командой можно опрашивать DNS-сервер о конкретном доменном имени или IP-адресе, получая информацию о связанной записи и нижележащих DNS-записях. nslookup — полезный инструмент для устранения проблем разрешения имён и проверки результатов других запросов разрешения имён.

Команда host — альтернатива nslookup, предоставляющая продвинутые возможности вроде рекурсии и низкоуровневого контроля над процессом запроса. Она позволяет выполнять DNS-lookup-операции массово, а также опрашивать DNS-сервер о нескольких записях одной командой. Она даёт больше контроля над всем процессом разрешения имён, чем nslookup, и является ценным инструментом устранения неисправностей для более сложных проблем разрешения имён.

Команда dig (сокращение от «domain information groper») — мощный инструмент диагностики DNS, предоставляющий множество функций и настроек для конфигурирования и оптимизации DNS-запросов. В отличие от nslookup и host, dig позволяет отправлять числовые запросы, давая пользователям больше контроля над поведением их DNS-запросов. Она также предоставляет подробную информацию о результатах запросов, что делает её отличным выбором для более опытных пользователей, которым нужен глубокий анализ DNS-записей.

Вопросы безопасности при работе с MTR

Команда MTR в Linux даёт ряд преимуществ в управлении и диагностировании сетей, но важно учитывать последствия её использования для безопасности. Вот самые распространённые проблемы безопасности, связанные с MTR:

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

Во-вторых, команды MTR также можно использовать для организации атак типа «отказ в обслуживании» (DoS) или DDoS (распределённых атак «отказ в обслуживании»). Например, злоумышленник может отправить множество MTR-запросов на заданный сервер, чтобы перегрузить его запросами и вызвать DoS-событие.

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

Лучшие практики при использовании команды MTR

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

  • Выбор целевых хостов: стратегически выбирайте хосты назначения, чтобы диагностировать конкретные сегменты сети или конечные точки, относящиеся к точной проблеме.
  • Интерпретация результатов: понимайте значимость значений потерь пакетов и задержки, учитывая факторы вроде топологии сети, расстояния и времени суток.
  • Сравнительный анализ: сравнивайте выводы MTR за разные периоды времени или в разных сетевых условиях, чтобы выявлять паттерны и тренды.
  • Сотрудничество: делитесь отчётами MTR с сетевыми коллегами или провайдерами, когда ищете помощь или совместно устраняете сетевые проблемы.
  • Безопасность: осознавайте важность приватности и безопасности при передаче сетевых трассировок, особенно если они содержат чувствительную информацию. Удаляйте или обезличивайте чувствительные данные перед передачей результатов.

Устранение типичных ошибок команды MTR

Хотя команда MTR — мощный инструмент сетевой диагностики, пользователи могут столкнуться с ошибками, влияющими на её работу. Вот как выявить и исправить самые распространённые проблемы:

«mtr: command not found»

Причина: команда MTR не установлена в вашей системе.

Решение: установите её соответствующей вашей ОС командой:

  • Debian/Ubuntu: sudo apt install mtr
  • CentOS/Fedora: sudo yum install mtr
  • macOS: brew install mtr

«Permission Denied»

Причина: команде для корректной работы нужны права root.

Решение: запустите её с sudo, например так:

sudo mtr google.com

«100% Packet Loss at First Hop»

Причина: ваш файрвол или маршрутизатор может блокировать ICMP-пакеты.

Решение:

  • Временно отключите локальные правила файрвола: sudo ufw disable (Linux).
  • Проверьте, включена ли на маршрутизаторе фильтрация ICMP, и настройте.
  • Используйте TCP вместо ICMP: mtr -tcp google.com.

«Some Hops Show 100% Packet Loss»

Причина: некоторые маршрутизаторы отбрасывают или блокируют ICMP-ответы, но продолжают передавать трафик.

Решение: если трафик продолжается за этим узлом, скорее всего, это не проблема. Маршрутизатор просто настроен игнорировать ICMP-запросы.

Понимая эти ошибки, вы сможете обеспечить точность отчётов MTR и эффективно диагностировать сетевые проблемы.

Заключение

Команда MTR — хорошая комбинация двух популярных инструментов: Ping и Traceroute. Она проста в использовании и доступна на разных ОС. Использование команды MTR эффективно измеряет сетевую задержку, выявляет потенциальные проблемы и устраняет неисправности соединений.


networking linux monitoring