Когда сайт медленный или не грузится, мало просто знать "сервер медленный" — нужно понять где именно на пути от вас до сервера происходит задержка. This может быть интернет-провайдер, магистраль между странами, сам сервер, или что-то в между. Traceroute показывает каждый "прыжок" на этом пути.
This руководство объясняет как работает traceroute, как читать вывод, что значат звёздочки и высокие latency'и, и как использовать эту информацию для диагностики проблем. С примерами реальных ситуаций и мест где используется traceroute.
Что такое traceroute
Traceroute — это команда которая показывает полный путь пакетов от вашего компьютера до целевого сервера. Каждый пакет проходит через несколько маршрутизаторов (router'ов), и traceroute показывает каждый из них: IP адрес, hostname, время ответа (latency).
Example простого вывода:
traceroute example.com
1 192.168.1.1 (192.168.1.1) 1.234 ms 1.289 ms 1.156 ms
2 203.0.113.1 (203.0.113.1) 14.523 ms 14.456 ms 14.589 ms
3 198.51.100.1 (198.51.100.1) 23.123 ms 23.245 ms 23.089 ms
4 * * *
5 151.101.1.1 (151.101.1.1) 45.678 ms 45.734 ms 45.812 ms Здесь 5 прыжков до финального сервера. Hop 4 не отвечает (звёздочки) — вероятно, firewall блокирует ICMP.
Как работает traceroute (за кулисами)
Step 1: TTL (Time To Live) incrementing
Каждый IP пакет имеет field "TTL" — это counter как долго пакет может путешествовать. Обычно стартует с TTL=64 или TTL=255. Каждый router который пакет проходит, уменьшает TTL на 1. Когда TTL достигает 0, router выбрасывает пакет и отправляет обратно ICMP error message.
Traceroute использует это: отправляет первый пакет с TTL=1. Первый router уменьшает до TTL=0, выбрасывает его, и отправляет error. Второй пакет с TTL=2 проходит первый router, достигает второго, TTL становится 0, второй router отправляет error. И так далее.
Step 2: Трёхкратное зондирование
Traceroute отправляет не один пакет с каждым TTL, а ТРИ. This показывает consistency latency. Если три времени 14.5, 14.4, 14.6 — hop стабилен. Если 14.5, 50.0, 14.6 — hop нестабилен (packet loss или congestion).
Step 3: Сбор ответов
Когда router отправляет ICMP error message, traceroute извлекает из него: IP адрес этого router'а, hostname (если reverse DNS настроен), время в миллисекундах которое потребовалось ответить. Всё вместо это — одна строка вывода.
Техничное объяснение: Traceroute использует ICMP Echo Request (на Unix/macOS) или UDP пакеты (на некоторых системах). Windows использует ICMP. Когда TTL=0, router отправляет ICMP Time Exceeded message, содержащий его IP. This сигнал что пакет "прошёл" через этот hop.
Как читать вывод traceroute
Столбцы вывода
Hop number: порядковый номер (1, 2, 3...), первый — ваш локальный gateway
Hostname: доменное имя router'а (если настроена reverse DNS), часто пусто
IP address: реальный IP адрес этого router'а
Latency x3: три значения в миллисекундах (ms) — время ответа для каждого из трёх проб
Каждый hop получает три отдельных запроса. Если видите 14.5 14.6 14.4 — это значит все три пакета ответили за ~14.5ms, hop стабилен. Если 14.5 * 14.6 — один пакет потерялся.
Что означают звёздочки (*)
Звёздочка значит этот hop не ответил за таймаут (обычно 5 секунд). Причины:
1. Firewall блокирует ICMP — самая частая причина. Многие корпоративные router'ы не отвечают на ICMP из соображений безопасности.
2. Router просто не отвечает — некоторые маршрутизаторы настроены не отправлять Time Exceeded message
3. Реальная потеря пакета — router перегружен, packet loss на этом участке
4. Высокая задержка — пакет просто долго идёт, но потом может ответить
Золотое правило: если видите * * * на одном hop'е, но следующие hop'ы отвечают — это ICMP filtering, не реальная проблема. Если все hop'ы после какого-то точки — * * *, это может быть реальный break в connectivity.
Что значит растущая latency
Обычно latency растёт с каждым hop'ом. Hop 1 может быть 1ms (вы локально), hop 5 может быть 50ms. This нормально — дальше от вас = дольше идёт. Но внезапный скачок может указать на проблему:
1 1.234 ms
2 14.523 ms
3 23.123 ms
4 * * *
5 45.678 ms
6 55.000 ms
7 100.000 ms ← скачок на 45ms
8 101.000 ms Если hop 7 внезапно стал на 45ms медленнее чем hop 6, это может быть congested link или проблемный router. Отслеживайте первый hop'е где скачок.
Examples реальных проблем и что они выглядят
Example 1: Last-mile issue (последний провайдер)
1 1.234 ms
2 14.523 ms
3 23.123 ms
4 45.678 ms
5 1500.000 ms ← скачок на 1.5 секунды
6 1500.000 ms Последний hop до финального сервера внезапно медленный. Может быть ISP отправителя, перегруженный line, или плохое соединение с дата-центром. Контактируйте свой ISP.
Example 2: International backbone congestion
1 1.234 ms
2 14.523 ms
3 23.123 ms
4 45.678 ms
5 145.678 ms ← скачок на 100ms (трансатлантический линк)
6 150.000 ms Скачок на 100ms часто означает пересечение континентального линка (например, трансатлантический кабель). This нормально, но если hop 5 должен быть в Европе а он в США — это неправильная маршрутизация. Check AS numbers в WHOIS.
Example 3: Intermittent packet loss
5 45.000 ms 45.123 ms * ← один пакет потерян
6 56.000 ms * 56.234 ms ← один пакет потерян
7 67.000 ms 67.100 ms 67.050 ms Случайные потери пакетов на hop'ах 5-6 указывают на нестабильный участок. Этот hop перегружен или имеет проблемы с оборудованием. Если видите этот паттерн, приложение будет чувствовать случайные задержки и retransmits.
Example 4: Complete block (hop not responding)
1 1.234 ms
2 14.523 ms
3 23.123 ms
4 * * *
5 * * *
6 * * * Если все hop'ы после какой-то точки — звёздочки, это может быть настоящее отключение. Проверьте:
1. Доступен ли вообще целевой сервер (ping на конечный адрес) 2. Может ли firewall блокировать? (спросить администратора дата-центра) 3. Есть ли BGP hijack или маршрутизация в никуда
Как запустить traceroute на разных ОС
macOS и Linux
traceroute example.com # ICMP (стандартный)
traceroute -U example.com # UDP на порт 33434
traceroute -P tcp example.com # TCP (если ICMP блокирован)
mtr -c 100 example.com # реал-тайм мониторинг (MTR)
MTR лучше чем обычный traceroute для диагностики — показывает потери пакетов и статистику в реал-тайме. Установить: brew install mtr на macOS, apt install mtr на Linux.
Windows
tracert example.com # встроенный traceroute
tracert -h 30 example.com # максимум 30 hop'ов
tracert -d example.com # без resolve hostname'ов (быстрее)
На Windows команда tracert (не traceroute). Windows по умолчанию использует ICMP. Для лучшего опыта скачайте WinMTR.
Онлайн tool'ы (без установки)
Используйте AtomPing Traceroute Tool чтобы быстро проверить путь до сервера без установки. Просто введите hostname или IP.
Traceroute vs Ping vs MTR
| Tool | Что показывает | Когда использовать |
|---|---|---|
| Ping | Только round-trip time до конечного сервера | Быстрая проверка если сервер вообще доступен |
| Traceroute | Полный путь со всеми hop'ами и latency | Pinpoint где именно задержка или потеря пакетов |
| MTR | Traceroute + реал-тайм статистика потерь | Диагностика intermittent issues и packet loss patterns |
Workflow диагностики:
1. ping server.com → сервер доступен?
2. traceroute server.com → где latency? звёздочки?
3. mtr -c 100 server.com → какой hop нестабилен? packet loss где?
Interpreting Results
Нормальный результат
• Latency растёт постепенно (1ms → 14ms → 25ms → 50ms)
• Нет растущих звёздочек
• Последний hop отвечает (это целевой сервер)
• Три времени каждого hop'а близки друг другу
Проблемный результат
• Внезапный скачок latency на одном hop'е
• Много звёздочек (особенно в начале пути)
• Непостоянные времена (14ms, 50ms, 15ms на одном hop'е)
• Последний hop не отвечает (сервер off или блокирует)
Что делать если видите проблему
Если скачок latency на hop X:
• Запомните IP hop'а из traceroute
• Используйте WHOIS/ASN lookup чтобы узнать кто владеет этим hop'ом
• Если это ISP вашего провайдера, контактируйте их
Если много звёздочек в начале:
• This часто firewall filtering (нормально)
• Проверьте что hop'ы ПОСЛЕ звёздочек отвечают
• Если всё after также звёздочки — есть настоящая проблема
Если непостоянные времена:
• Запустите MTR с 100+ пакетами (mtr -c 200 server.com)
• Смотрите в окне MTR какой hop имеет packet loss %
• Обвиняйте hop с потерей, не последний
Продвинутые техники
TCP traceroute (когда ICMP блокирован)
Если обычный traceroute показывает звёздочки везде, это может быть firewall блокирует ICMP. Попробуйте TCP traceroute:
traceroute -P tcp -p 443 example.com # TCP на порт 443 (HTTPS) TCP часто разрешён firewall'ами даже когда ICMP нет.
Отслеживание через время
Если проблема intermittent, запускайте MTR несколько раз и сравнивайте. Какой hop консистентно медленный? Какой имеет packet loss в определённое время?
watch -n 5 'mtr -c 10 example.com' # перезапускать traceroute каждые 5 сек Monitoring with AtomPing
Вместо ручного запуска traceroute каждый раз, используйте AtomPing Traceroute Tool для сохранённых результатов и истории. Можно даже настроить alert если latency скачет выше threshold'а.
Преимущества:
• Сохранять результаты traceroute для сравнения
• Видеть тренды latency со временем
• Поделиться результатом с поддержкой ISP
• Get alert если hop'е начнёт быть медленным
Резюме
Traceroute — это мощная диагностическая утилита для понимания где именно на пути到целевого сервера происходит задержка или потеря пакетов.
• Ping = просто "доступен ли сервер"
• Traceroute = "какой путь идут пакеты и где задержка"
• MTR = traceroute + реал-тайм статистика
• Звёздочки = обычно firewall filtering, но могут быть потери
• Скачок latency = найдите hop где скачок, определите что это, контактируйте владельца
• Intermittent issue = используйте MTR с 100+ пакетами, смотрите packet loss %
Связанные материалы
AtomPing Traceroute Tool — быстрая онлайн диагностика пути до сервера
Ping Monitoring & ICMP Guide — как работает ping и ICMP
DNS Record Types Explained — как reverse DNS влияет на hostname'ы в traceroute
FAQ
What is traceroute and how does it work?
Traceroute is a network diagnostic tool that maps the path packets take from your computer to a destination (website, server, IP address). It works by sending packets with incrementally increasing TTL (Time To Live) values. Each router along the path decrements TTL by 1. When TTL reaches 0, the router discards the packet and sends back an ICMP error message containing the router's IP and response time. By sending packets with TTL 1, 2, 3, etc., traceroute collects responses from each router and displays the full path.
What do the columns mean in traceroute output?
Each line shows: (1) hop number (1-30), (2) router hostname (if available), (3) router IP address, (4) three latency measurements (in milliseconds) for three separate probes sent to each hop. Example: '2 router.isp.com (203.0.113.1) 14.523 ms 14.456 ms 14.589 ms' means hop 2 took ~14.5ms to respond. The three measurements show consistency: if latency varies wildly, that hop is congested or unreliable.
What does * or timeout mean in traceroute results?
An asterisk (*) means the hop didn't respond within the timeout window (default 5 seconds). Causes: (1) ICMP is filtered by a firewall at that hop (very common), (2) the router simply doesn't respond to traceroute (some enterprise routers are configured this way), (3) a real network issue. Multiple stars in a row usually indicate firewall filtering. Single star at the last hop is often normal. Stars don't always mean a problem, but they do obscure visibility into that part of the network.
What's the difference between traceroute and ping?
Ping sends a single packet to a destination and measures round-trip time. It's simple but shows only whether the destination is reachable and how fast. Traceroute sends multiple packets with increasing TTL, showing each router (hop) along the path. Ping = 'is the server up?' Traceroute = 'which routers does my traffic go through, and where is latency happening?' Use traceroute when ping fails to pinpoint where connectivity breaks down.
What is MTR and how is it different from traceroute?
MTR (My Traceroute) is a tool that combines ping and traceroute into one continuous, real-time display. It shows the path like traceroute does, but then continuously pings each hop to show running statistics: packet loss %, average latency, best/worst latency. MTR updates every second. It's better than traceroute for finding intermittent issues because you see loss/latency patterns over time, not just a snapshot. Available on macOS (brew install mtr), Linux, and Windows (mtr-windows).
How can I run traceroute on different operating systems?
macOS/Linux: open Terminal, type 'traceroute example.com' (ICMP) or 'traceroute -U example.com' (UDP). Windows: open Command Prompt, type 'tracert example.com' (note the different spelling). Windows uses ICMP by default. On macOS, install MTR via Homebrew: 'brew install mtr' then 'mtr example.com' for real-time view. Online traceroute tools available at AtomPing.com/tools/traceroute for quick testing without installing anything.