Home » Как использовать traceroute и mtr для диагностики сетевых проблем
Как использовать traceroute и mtr для диагностики сетевых проблем

Как использовать traceroute и mtr для диагностики сетевых проблем

Если ты когда-нибудь сталкивался с тем, что твой сервер внезапно перестал отвечать, сайты грузятся как улитка, а саппорт хостинга отвечает загадочными фразами про “проблемы на маршруте” — добро пожаловать в клуб. В этой статье разберём, как использовать traceroute и mtr для диагностики сетевых проблем. Это не просто “попробуй перезапустить роутер”, а реальные инструменты, которые помогут понять, где именно застревает трафик, и что с этим делать. Будет много практики, примеры из жизни, немного гиковских лайфхаков и, конечно, команды, которые можно сразу копировать в консоль. Погнали!

Как это работает? — Простыми словами о traceroute и mtr

Когда ты отправляешь пакет на сервер, он не летит напрямую, как голубь с письмом. Он проходит через кучу промежуточных точек — роутеров, шлюзов, провайдерских узлов. Иногда на этом пути что-то ломается: где-то теряются пакеты, где-то задержка вырастает до небес. Вот тут и приходят на помощь traceroute и mtr.

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

Обе утилиты используют TTL (Time To Live) — специальное поле в IP-пакете, которое уменьшается на каждом узле. Когда TTL становится равен нулю, узел отправляет ICMP-сообщение обратно. Так мы и узнаём, через какие точки проходит маршрут.

Как быстро и просто всё настроить?

Всё гениальное — просто. Установить traceroute и mtr можно буквально за минуту. Вот как это делается на популярных дистрибутивах Linux:


# Для Ubuntu/Debian
sudo apt update
sudo apt install traceroute mtr

# Для CentOS/RHEL
sudo yum install traceroute mtr

# Для Arch Linux
sudo pacman -S traceroute mtr

На macOS traceroute уже встроен, а mtr можно поставить через Homebrew:


brew install mtr

На Windows есть аналоги: tracert (встроен) и WinMTR (гугли winmtr.net, это порт mtr под Windows).

Примеры, схемы, практические советы

Давай разберёмся на практике. Вот базовые команды:


# traceroute
traceroute arenda-server.cloud

# mtr (интерактивный режим)
mtr arenda-server.cloud

# mtr (один запуск, отчёт в текстовом виде)
mtr -r -c 100 arenda-server.cloud

Что смотреть в выводе?

  • Время (ms) на каждом хопе — если где-то задержка резко растёт, это подозрительно.
  • Потери пакетов (%) — если на каком-то узле теряется 10%+ пакетов, это уже проблема.
  • Звёздочки (*) — значит, узел не отвечает на ICMP. Не всегда плохо (могут быть фильтры), но если дальше по маршруту всё плохо — стоит задуматься.

Кейс 1: Всё хорошо


traceroute to arenda-server.cloud (185.XX.XX.XX), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 1.123 ms 1.098 ms 1.078 ms
2 10.10.10.1 (10.10.10.1) 2.345 ms 2.321 ms 2.312 ms
3 185.XX.XX.XX (185.XX.XX.XX) 10.123 ms 10.098 ms 10.078 ms

Всё ок: задержки минимальные, потерь нет, маршрут короткий.

Кейс 2: Где-то беда


4 * * *
5 185.XX.XX.XX (185.XX.XX.XX) 200.123 ms 210.098 ms 220.078 ms

На 4-м хопе — тишина (звёздочки), на 5-м — задержка выросла в 20 раз. Скорее всего, проблема между 3 и 5 хопом. Можно писать в саппорт с этим выводом — они оценят.

Кейс 3: Потери пакетов


mtr -r -c 100 arenda-server.cloud
...
| Host | Loss% | Snt | Last | Avg | Best | Wrst | StDev |
|------------------|-------|-----|------|------|------|------|-------|
| 192.168.1.1 | 0.0% | 100 | 1.1 | 1.2 | 1.0 | 2.0 | 0.2 |
| 10.10.10.1 | 0.0% | 100 | 2.3 | 2.4 | 2.2 | 3.0 | 0.3 |
| 185.XX.XX.XX | 15.0% | 100 | 10.1 | 12.3 | 10.0 | 30.0 | 5.0 |

15% потерь на последнем хопе — это уже серьёзно. Если потери начинаются не на первом хопе, а где-то дальше — проблема не у тебя, а на стороне провайдера или хостинга.

Таблица сравнения: traceroute vs mtr

Функция traceroute mtr
Показывает маршрут Да Да
Показывает потери пакетов Нет Да
Интерактивный режим Нет Да
Графический интерфейс Нет Да (mtr-gtk)
Работает на Windows tracert (аналог) WinMTR
Удобен для автоматизации Средне Да (режим отчёта)

Похожие решения и альтернативы

  • ping — для проверки доступности, но не показывает маршрут.
  • pathping (Windows) — гибрид ping и tracert, даёт статистику по каждому хопу.
  • iperf — для теста пропускной способности, но не для диагностики маршрута.
  • smokeping — мониторинг задержек и потерь в графиках (https://oss.oetiker.ch/smokeping/ официальный сайт).
  • Netcat (nc) — для проверки портов, но не маршрута.

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

  • traceroute — стандарт де-факто, есть почти везде, но не показывает потери пакетов.
  • mtr — любимец сисадминов, потому что сразу видно, где “течёт”.
  • WinMTR — must-have для Windows-юзеров, особенно если нужно отправить отчёт в саппорт.
  • Smokeping — круто для долгосрочного мониторинга, но требует отдельной настройки и сервера.

По опросам на StackOverflow и Reddit, mtr используют 80% админов для быстрой диагностики, traceroute — для “официальных” отчётов и тикетов в саппорт.

Интересные факты и нестандартные способы использования

  • Можно запускать mtr в cron и сохранять отчёты — удобно для поиска плавающих проблем.
  • mtr поддерживает работу через TCP и UDP (ключи -T и -u), что помогает, если ICMP фильтруется.
  • traceroute можно запускать с разными портами (например, traceroute -T -p 443), чтобы проверить маршрут до HTTPS-сервера.
  • mtr-gtk — графическая версия для тех, кто любит мышкой.
  • Можно использовать mtr для проверки маршрута между двумя серверами (ssh + mtr), чтобы понять, где “узкое место”.

Автоматизация и скрипты: новые возможности

Оба инструмента отлично подходят для автоматизации. Например, можно написать скрипт, который раз в час запускает mtr до нужных хостов и сохраняет отчёты в лог. Если где-то начались потери или задержки — отправлять уведомление в Telegram или Slack.


#!/bin/bash
HOSTS=("arenda-server.cloud" "8.8.8.8")
for HOST in "${HOSTS[@]}"; do
mtr -r -c 100 $HOST > /var/log/mtr_$HOST.log
done

Можно интегрировать mtr в систему мониторинга (Zabbix, Nagios, Prometheus) — будет видно, где и когда начались проблемы.

Вывод — заключение и рекомендации

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

  • Используй traceroute для первичной диагностики маршрута.
  • Запускай mtr для поиска плавающих проблем и потерь пакетов.
  • Не бойся автоматизировать — mtr отлично работает в скриптах и cron.
  • Если нужна графика — смотри в сторону smokeping или mtr-gtk.

И главное — не стесняйся отправлять выводы traceroute/mtr в саппорт. Это не “магия”, а реальное доказательство проблемы, которое ускоряет решение в разы.

Если ты ищешь надёжный VPS или выделенный сервер для своих проектов — смотри тут: VPS и выделенные серверы. Стабильная сеть, быстрый саппорт и никаких “мистических” потерь пакетов!

Официальные ссылки для самостоятельного изучения:

Пусть твои пакеты всегда доходят до цели!


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

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

Leave a reply

Your email address will not be published. Required fields are marked