Трассировка (команда tracert или traceroute) — это программа для определения маршрута следования данных от вашего компьютера до выбранного сервера. С её помощью можно увидеть, сколько узлов преодолевают данные и на каком из них возникает проблема, если не загружается сайт или не отвечает сервер.
В статье разбираемся, как работает программа, как сделать трассировку маршрута в разных операционных системах и на разных устройствах, а также как читать её результаты.
Содержание
Как работает трассировка
Команда трассировки отправляет по цепочке в направлении конечного сервера три пакета данных с параметром 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.
Откроется командная строка. Чтобы сделать трассировку, используйте команду tracert. В качестве адреса сервера можно указать его IP-адрес или доменное имя.
tracert адрес_сервера
Linux или Mac OS
В Mac OS перейдите в боковом меню Finder в раздел «Программы», затем перейдите в папку «Утилиты» и откройте приложение «Терминал».
В Linux Терминал открывается комбинацией клавиш Ctrl+Alt+T.
В Терминале, чтобы запустить трассировку, используется команда traceroute вместе с доменным именем или IP-адресом сервера.
traceroute адрес_сервера
iPhone
На главной странице приложения iNetTools перейдите в раздел «Trace Route» и впишите там в строке поиска домен или IP-адрес сервера. Результат трассировки отобразится чуть ниже в блоке «Result».
Android
В приложении Network Utilities перейдите в меню в левом верхнем углу и откройте раздел «Traceroute». Введите там в строке поиска домен или IP-адрес сервера, до которого хотите сделать трассировку.
Результаты трассировки
В результатах 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 означают, что узел не захотел отвечать на запросы от вашего компьютера. Это могло произойти по двум причинам: либо в настройках узла указано не отвечать, либо узел недоступен.
Вот пример подобной ситуации. Пятый узел не стал отвечать, но дальше шестой узел ответил и трассировка сайта успешно завершилась. Это значит, что всё в порядке и пятый узел всё-таки передал трафик.
А вот другой пример — после одного из узлов маршрут перестаёт отслеживаться, до окончания работы трассировки идут одни звёздочки. Сам сайт при этом вполне может открываться.
Такая проблема часто встречается в Linux или Mac OS, где команда traceroute по умолчанию использует протокол UDP и порты в диапазоне от 33434 до 33534 для трассировки маршрута. Некоторые файрволы блокируют эти порты в целях безопасности.
Как вариант можно попробовать сделать трассировку до сайта по протоколу ICMP. Для этого добавьте опцию -I перед адресом сервера:
traceroute -I vashdomen.tk
Если при использовании ICMP протокола результат не поменялся, скорее всего, на каком-то из участков маршрута проблема. Например, провайдер заблокировал сайт или что-то не так на стороне провайдера хостинга. Начать исследование стоит с последнего ответившего узла.
Что в итоге
Теперь вы знаете, что такое трассировка сети и как сделать её у себя на компьютере. Если не получается самостоятельно прочитать результаты команды, присылайте их в комментариях, попробуем разобраться вместе.