Трассировка (команда tracert или traceroute) — это программа для определения маршрута следования данных от вашего компьютера до выбранного сервера. С её помощью можно увидеть, сколько узлов преодолевают данные и на каком из них возникает проблема, если не загружается сайт или не отвечает сервер.

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

Содержание

  1. Как работает трассировка
  2. Как сделать трассировку
  3. Как понять результаты трассировки

Как работает трассировка

Команда трассировки отправляет по цепочке в направлении конечного сервера три пакета данных с параметром TTL=1. Этот параметр означает, сколько узлов могут пройти пакеты, и с каждым узлом связи уменьшается на 1. Узел, который получает пакеты с TTL=0 возвращает компьютеру сообщение, что дальше они идти не могут. Traceroute фиксирует адрес узла, а также время прохождения каждого пакета туда и обратно.

Дальше traceroute снова отправляет три пакета, но уже с TTL=2. Первый узел уменьшает TTL и отправляет их на следующий узел. Затем всё повторяется с TTL=3, TTL=4 и так пока пакеты не достигнут цели. Когда пакеты доходят до конечного узла и он возвращает сообщение, что дальше пакеты идти не могут, трассировка считается завершённой.

В операционных системах Linux и MacOS утилита для трассировки называется traceroute. В Windows используется утилита tracert. Показываем, как работают эти утилиты.

Трассировка маршрута до сервера

На компьютере трассировка делается в командной строке. Для смартфонов есть специальные приложения, например, iNetTools (для iPhone) и Network Utilities (для Android). Вот инструкции для каждого из способов.

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

Windows

Нажмите комбинацию клавиш Win + R и в появившемся окне введите команду cmd.

Как сделать трейсроут Windows — cmd tracert ip

Откроется командная строка. Чтобы сделать трассировку, используйте команду tracert. В качестве адреса сервера можно указать его IP-адрес или доменное имя. 

tracert адрес_сервера
Команда трассировки в Windows — cmd trace ip

Linux или Mac OS

В Mac OS перейдите в боковом меню Finder в раздел «Программы», затем перейдите в папку «Утилиты» и откройте приложение «Терминал».

В Linux Терминал открывается комбинацией клавиш Ctrl+Alt+T.

Как сделать Traceroute cmd MacOS

В Терминале, чтобы запустить трассировку, используется команда traceroute вместе с доменным именем или IP-адресом сервера.

traceroute адрес_сервера
Команда трассировки в cmd Mac OS

iPhone

На главной странице приложения iNetTools перейдите в раздел «Trace Route» и впишите там в строке поиска домен или IP-адрес сервера. Результат трассировки отобразится чуть ниже в блоке «Result».

Трассировка IP через cmd на iPhone

Android

В приложении Network Utilities перейдите в меню в левом верхнем углу и откройте раздел «Traceroute». Введите там в строке поиска домен или IP-адрес сервера, до которого хотите сделать трассировку.

Как сделать traceroute IP-адреса в Android

Результаты трассировки

В результатах traceroute вы увидите список всех узлов на пути к серверу, до которого прокладываете маршрут. Для примера рассмотрим трассировку до сайта hostiq.ua.

Как проверить трассировку до сайта

В самом начале перед первым узлом видно, что трассировка идёт до IP-адреса 104.20.51.161, максимально возможное количество узлов — 64 штуки, а размер каждого пакета — 52 байта.

traceroute to hostiq.ua (104.20.51.161), 64 hops max, 52 byte packets

Дальше идут непосредственно узлы маршрута: сначала хостнейм узла и его IP-адрес, затем три отметки времени — сколько в сумме ушло на отправку и возврат каждого из трёх пакетов.

1       192.168.1.1 (192.168.1.1) 4.546 ms 3.477 ms 3.349 ms

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

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

Как проверить трассировку до сервера — traceroute звёздочки

А вот другой пример — после одного из узлов маршрут перестаёт отслеживаться, до окончания работы трассировки идут одни звёздочки. Сам сайт при этом вполне может открываться.

Как сделать трассировку до сайта — звёздочки traceroute

Такая проблема часто встречается в Linux или Mac OS, где команда traceroute по умолчанию использует протокол UDP и порты в диапазоне от 33434 до 33534 для трассировки маршрута. Некоторые файрволы блокируют эти порты в целях безопасности.

Как вариант можно попробовать сделать трассировку до сайта по протоколу ICMP. Для этого добавьте опцию -I перед адресом сервера:

traceroute -I vashdomen.tk
Как сделать трассировку сайта в Linux

Если при использовании ICMP протокола результат не поменялся, скорее всего, на каком-то из участков маршрута проблема. Например, провайдер заблокировал сайт или что-то не так на стороне провайдера хостинга. Начать исследование стоит с последнего ответившего узла.

Что в итоге

Теперь вы знаете, что такое трассировка сети и как сделать её у себя на компьютере. Если не получается самостоятельно прочитать результаты команды, присылайте их в комментариях, попробуем разобраться вместе.