MTR — это консольная (и графическая в Windows) утилита, которая объединяет в себе возможности ping и traceroute. Она в реальном времени отслеживает маршрут пакетов от вашего компьютера до целевого хоста, измеряет задержки (RTT — Round Trip Time) на каждом узле и фиксирует процент потерь пакетов.
В отличие от классического traceroute, который даёт один «снимок», MTR непрерывно отправляет пакеты и обновляет статистику. Это позволяет быстро находить «узкие места» — перегруженные роутеры, проблемы у провайдера или на стороне сервера. Утилита особенно полезна при диагностике нестабильного интернета, высоких пингов в играх, потерь пакетов при работе с API или медленной загрузке сайтов.
MTR работает по принципу traceroute: отправляет пакеты с постепенно увеличивающимся TTL (Time To Live). Когда пакет «умирает» на промежуточном узле, тот отвечает ICMP-сообщением. По умолчанию используются ICMP-пакеты, но можно переключиться на UDP или TCP.
Как установить MTR на Windows, Linux и macOS
- Linux
Установка через менеджер пакетов:
#Debian / Ubuntu
sudo apt update && sudo apt install mtr
#Fedora / CentOS / RHEL / AlmaLinux / Rocky
sudo dnf install mtr # или sudo yum install mtr
#Arch Linux
sudo pacman -S mtr
- macOS:
Требуется Homebrew (если нет — установите одной строкой): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Затем:
brew install mtr
После установки запускайте всегда с sudo, потому что MTR требует доступа к raw-сокетам.
- Windows:
Используйте графическую версию WinMTR (официальная, без установки).
- Скачайте последнюю версию WinMTR v0.92 с официального GitHub: https://github.com/WinMTR/WinMTR-Official/releases (выберите WinMTR-64.zip).
- Распакуйте архив.
- Запустите WinMTR.exe (32- или 64-битная версия).
Готово — программа портативная.
Как пользоваться MTR
- Linux / macOS (терминал):
sudo mtr example.com # или IP-адрес, например 8.8.8.8
- Утилита сразу запускается в интерактивном режиме: таблица обновляется каждую секунду.
- Чтобы остановить: нажмите q или Ctrl+C.
- Для отчёта (неинтерактивного):
sudo mtr -r -c 100 example.com
- Windows (WinMTR):
- В поле Host введите домен или IP (без http/https).
- Нажмите Start.
- Подождите 2–3 минуты (или пока не отправится минимум 100 пакетов).
- Нажмите Stop → Export TEXT (или HTML).
Результат сохранится в текстовый файл — удобно отправлять в тикет.
Описание полученных значений:
на что смотреть и обращать внимание
MTR выводит таблицу со столбцами:
- Host,Имя хоста или IP-адрес узла
- Loss%,Процент потерянных пакетов на этом хопе, "Главный показатель! Если Loss% растёт и сохраняется на всех последующих узлах — проблема именно здесь. Если только на одном хопе, а дальше 0% — чаще всего это rate-limiting ICMP (роутер просто не отвечает на все запросы). Не проблема."
- Snt,Количество отправленных пакетов
- Last,Задержка последнего пакета (мс)
- Avg,Средняя задержка
- Best,Минимальная задержка
- Wrst,Максимальная задержка
- StDev,Стандартное отклонение (джиттер), Чем выше — тем нестабильнее канал
Ключевые правила интерпретации:
- Потеря пакетов только на одном промежуточном хопе и 0% дальше — почти всегда нормально (роутер ограничивает ICMP).
- Если Loss% высокий с какого-то хопа и остаётся до конца — проблема на этом узле или после него.
- Высокий Wrst / StDev при нормальном Avg — джиттер (нестабильность).
- Путь туда и обратно может быть разным (асимметричная маршрутизация). Поэтому потеря на «чужом» хосте может быть на обратном пути. Поэтому смотрите с обоих сторон.
- Последний хоп (целевой сервер) может не отвечать на ICMP — это тоже нормально.
Описание ключей (опций) MTR
Основные полезные флаги (работают в Linux/macOS):
- -r / --report — режим отчёта (без живого обновления, только финальная статистика).
- -c N — количество циклов (например -c 100).
- -i X — интервал между пакетами в секундах (по умолчанию 1; root может поставить <1).
- -n / --no-dns — не резолвить имена хостов (только IP, быстрее).
- -b / --show-ips — показывать и имя, и IP.
- -4 / -6 — принудительно IPv4 или IPv6.
- --udp — использовать UDP-пакеты вместо ICMP (полезно, если ICMP заблокирован).
- --tcp — использовать TCP SYN-пакеты (имитирует реальное соединение).
- --sctp — SCTP-пакеты (редко).
- -o "LSD NBAW" — задать порядок и набор колонок (L=Loss, S=Sent, D=Dropped и т.д.).
- -s BYTES — размер пакета.
- -m N — максимальное количество хопов (по умолчанию 30).
Полный список: man mtr или mtr --help.
Полезные советы и трюки
- Быстрый отчёт для поддержки sudo mtr -r -c 200 -n example.com > mtr-report.txt
- Когда ICMP блокируют — используйте --udp или --tcp.
- Мониторинг в реальном времени — запустите без -r и смотрите 5-7 минут.
- В Windows — после экспорта в TXT файл можно отправить в тикет.
- Не пугайтесь высокого Loss% на 1–2 хопах в начале — это часто ваш роутер или первый шлюз провайдера, который просто игнорирует часть ICMP.
- Для постоянного мониторинга — скрипт с выводом в лог каждые 5 минут.
- Официальные источники:
- Исходный код и документация: https://github.com/traviscross/mtr
- WinMTR: https://github.com/WinMTR/WinMTR-Official
MTR — один из самых удобных и информативных инструментов сетевой диагностики.
Освоив его, вы сможете самостоятельно находить 80–90 % проблем с соединением, не дожидаясь ответа от провайдера.