Команда Linux mtr

Linux 命令大全Энциклопедия команд Linux


mtr (My Traceroute) — это сочетаниеtracerouteиpingфункций мощного инструмента сетевой диагностики. Он позволяет отображать путь передачи пакетов данных в сети в реальном времени и предоставлять подробную статистическую информацию. Это мощный инструмент для сетевых администраторов и разработчиков для устранения сетевых проблем.

Основные возможности mtr

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

Установка команды mtr

Установка в распространённых дистрибутивах Linux

Пример

# Системы Debian/Ubuntu
sudo apt-get install mtr

# Системы CentOS/RHEL
sudo yum install mtr

# Системы Fedora
sudo dnf install mtr

# Системы Arch Linux
sudo pacman -S mtr

Установка в macOS

Пример

# Установка с помощью Homebrew
brew install mtr

Базовый синтаксис mtr

Базовый формат синтаксиса команды mtr выглядит следующим образом:

mtr [选项] 目标主机

Описание общих опций и параметров

Опция Описание
-4 Принудительное использование IPv4
-6 Принудительно использовать IPv6
-c COUNT Задать количество отправляемых ping-пакетов
-i SECONDS Задать интервал времени ping (секунды)
-n Не разрешать имена хостов, отображать IP-адреса
-r Режим генерации отчёта (неинтерактивный)
-s BYTES Задать размер ping-пакета (байты)
-w Режим широкого вывода, отображать полные имена хостов
-z Отображать номера AS (автономной системы)
--report Эквивалентно-r, завершает работу после генерации отчёта
--report-wide Отчёт в широком формате

Примеры использования mtr

Базовое использование: диагностика сетевого пути до целевого хоста

mtr google.com

После выполнения будет отображён интерфейс, обновляющийся в реальном времени, содержащий следующую информацию:

  • Количество переходов (Hop)
  • Имя хоста или IP-адрес
  • Уровень потери пакетов (Loss%)
  • Последняя задержка (Last)
  • Средняя задержка (Avg)
  • Лучшая задержка (Best)
  • Худшая задержка (Wrst)
  • Стандартное отклонение (StDev)

Режим формирования отчёта (подходит для вызова из скриптов)

mtr -r -c 10 google.com > mtr_report.txt

Эта команда отправит 10 ping-пакетов на google.com, а затем сохранит результаты в файл mtr_report.txt.

Установить размер ping-пакета и интервал

mtr -s 100 -i 0.5 example.com

Эта команда устанавливает размер каждого пакета ping равным 100 байтам, а интервал времени — 0.5 секунды.

Также отображать номер AS

mtr -z example.com

Эта команда отобразит номер AS (автономной системы) каждого узла в результатах, помогая определить сетевую принадлежность.


Интерпретация вывода mtr

Объяснение интерактивного интерфейса

При запуске mtr вы увидите вывод, подобный следующему:

My traceroute  [v0.92]
example.com (192.0.2.1)                                                                2022-01-01T12:00:00+0000
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                 Packets               Pings
 Host                                                        Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.1.1                                              0.0%    10    2.1   2.2   1.9   2.5   0.2
 2. 10.0.0.1                                                 0.0%    10    5.3   5.5   5.1   6.0   0.3
 3. 203.0.113.1                                              0.0%    10   15.2  15.5  15.0  16.1   0.4
 4. example.com                                              0.0%    10   20.1  20.3  20.0  21.0   0.3

Объяснение ключевых метрик

  1. Loss%: процент потерь пакетов; чем выше значение, тем нестабильнее сеть
  2. Snt: количество отправленных зондирующих пакетов
  3. Last: задержка последнего зондирования (миллисекунды)
  4. Avg: средняя задержка (миллисекунды)
  5. Best: наилучшая задержка (миллисекунды)
  6. Wrst: Наихудшая задержка (миллисекунды)
  7. StDev: Стандартное отклонение задержки, отражающее стабильность сети

Расширенное использование и советы

1. Одновременно трассировать пути IPv4 и IPv6

Пример

mtr -4 example.com  # Путь IPv4
mtr -6 example.com  # Путь IPv6

2. Использовать TCP SYN вместо ICMP (для обхода некоторых брандмауэров)

mtr --tcp example.com

3. Указать исходный порт (для тестирования конкретного маршрута)

mtr --port 8080 example.com

4. Сохранить результаты в формате CSV

mtr --csv example.com > result.csv

5. Сравнить состояние сети в двух временных точках

Пример

mtr -c 60 -i 1 -w example.com > result1.txt
# Через некоторое время
mtr -c 60 -i 1 -w example.com > result2.txt
diff result1.txt result2.txt

Устранение распространённых проблем

1. Проблема высокой потери пакетов

Если на определённом узле наблюдается высокая потеря пакетов:

  • Возможно, узел перегружен
  • Возможно, это проблема конфигурации сетевого устройства
  • Возможно, это проблема взаимодействия между интернет-провайдерами

2. Проблема внезапного увеличения задержки

Если задержка внезапно увеличивается на определённом узле:

  • Возможно, это перегрузка сети
  • Возможно, это изменение маршрутов
  • Возможно, это проблема производительности устройства

3. Отображение звёздочки (*)

Если вместо IP-адреса вы видите звёздочку (*):

  • Возможно, узел не отвечает на ICMP-запросы
  • Возможно, межсетевой экран заблокировал пробные пакеты

Сравнение mtr с другими инструментами

Инструмент Обновления в реальном времени Двунаправленная диагностика Статистика потерь пакетов Статистика задержек Интерактивный интерфейс
ping ❌ ❌ ✔️ ✔️ ❌
traceroute ❌ ❌ ❌ ✔️ ❌
mtr ✔️ ✔️ ✔️ ✔️ ✔️

Практические упражнения

  1. Используйте mtr для проверки сетевого пути к веб-сайтам, которые вы часто посещаете
  2. Сравните разницу в качестве сети между Wi-Fi и проводными подключениями
  3. Попробуйте протестировать производительность сети с разными размерами пакетов ping
  4. Настройте запланированную задачу для периодического создания отчётов о качестве сети

Пример

# Пример: ежедневно создавать отчёт о состоянии сети
(crontab -l 2>/dev/null; echo "0 2 * * * /usr/sbin/mtr -r -c 100 google.com > ~/network_report_$(date +%Y%m%d).txt") | crontab -

Итог

mtr — мощный инструмент сетевой диагностики, который сочетает преимущества traceroute и ping, предоставляя возможности комплексного анализа сетевого пути в реальном времени. Прочитав эту статью, вы сможете:

  1. Понять основные принципы и методы работы mtr
  2. Умело использовать mtr для диагностики сетевых проблем
  3. Интерпретируйте различные показатели, выводимые mtr
  4. Применяйте mtr для решения реальных сетевых проблем

Освоение команды mtr значительно повысит вашу эффективность при устранении сетевых проблем, и это навык, которым должен обладать каждый системный администратор и разработчик.


Linux 命令大全Энциклопедия команд Linux

Другие расширения