Как сделать трассировку на макбуке

Обновлено: 07.07.2024

Traceroute — это утилита, которая позволяет проследить маршрут следования данных до удалённого адресата в сетях TCP/IP. В Linux используется команда Traceroute, а в Windows — Tracert. При помощи этих команд можно увидеть путь пакета данных от вашего компьютера до целевого сервера или сайта.

Как работают Tracert и Traceroute

Этот принцип лежит в основе работы утилит Tracert и Traceroute, однако между ними есть отличия. Рассмотрим каждую утилиту отдельно.

Как использовать Traceroute и Tracert

Кириллические домены необходимо вводить в формате Punycode. Для перевода домена в Punycode воспользуйтесь сервисом.

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

Для выполнения этой процедуры в каждой современной операционной системе есть соответствующий инструмент.

В ОС Windows - это утилита tracert. В XP она была доступна по умолчанию, а вот во всех последующих версия вплоть до Windows 10 её надо включать дополнительно через "Программы и Компоненты".

В операционных система ОС семейства *NIX - Linux, FreeBSD, Android - программа traceroute
Смысл алгоритма трассировки маршрута в том, что посылается по три специальных запроса на каждый сетевой узел, через который идёт трафик до нужного хоста, затем для каждого из них на экране, рядом с его адресом, выдаётся время ответа. По этим результатам можно легко отследить на каком участке сети начинают появляться задержки ответа или он вообще пропадает.

Трассировка в Windows 10

Трассировка в Linux

В операционных системах семейства Linux - Ubuntu, Fedora, CentOS и т.п. - для запуска трассировки маршрута в надо открыть системную консоль и ввести команду:

Внимание! Использовать трассировку маршрута в сети для оценки качества последней мили (абонентской линии ADSL,FTTB или PON) нельзя, так как эта системная программа никоим образом оценить качество линии не может и не умеет.

Интернет по сути состоит из глобальной сети маршрутизаторов, которая позволяет компьютерам и серверам со всего мира связываться друг с другом. Эти маршрутизаторы обмениваются данными друг с другом, чтобы направлять или передавать пакеты данных по назначению.

схема сети интернет

Утилита командной строки Traceroute – это инструмент, который используется для определения точного маршрута, по которому пакет данных проходит в сети Интернет от отправителя до места назначения.

При помощи команды tracert (Windows) или traceroute (Linux и Mac OS) вы легко и быстро можете определить где находится проблема, узкое место в передаче данных, задержка соединения с сервером. Также вы можете использовать утилиту, если вам просто интересно узнать какой путь проделывает пакет данных до места назначения.

Чем Tracert отличается от Ping?

Широкоизвестная команда PING используется для проверки связи с сервером. Ваш компьютер отправляет четыре пакета данных в пункт назначения, и как только они прибудут туда, пакеты вернутся обратно на ваш компьютер.

отчет команды ping cmd

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

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

Как пользоваться Tracert?

Для примера проследим путь от моего ПК до сайта Google. В командной строке ввожу:

Вместо доменного имени вы можете также ввести ip-адрес удаленного сервера.

После запуска команды (по нажатию клавиши ENTER) наш ПК отправит три пакета данных каждому маршрутизатору на пути к месту назначения. Каждый из них в свою очередь сразу после получения пакетов отправит их обратно на наш компьютер и сообщит информацию о себе, например IP-адрес.

отчет утилиты tracert

Также маршрутизатор укажет время, измеренное в милисекундах, за которое три пакета данных прошли к нему и от него. Рассмотрим полученные результаты.

В крайнем левом столбце указано количество hops (хопов, узлов, прыжков) пройденных до пункта назначения. Следующие три столбца показывают время прохождения каждого пакета данных до каждого узла и обратно.

анализ полученных данных

Как видим, на первом этапе передача пакетов произошла менее чем за 1 ms. Первой точкой перехода был мой домашний модем-роутер (маршрутизатор). Этот маршрут самый короткий и быстрый, поскольку он проходит в пределах моей локальной сети. Но как только данные попадают в Интернет (второй прыжок), время приема-передачи значительно увеличивается. И чем дальше пакеты данных должны пройти к каждому маршрутизатору, тем больше времени будет затрачено на это.

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

сравнение tracert и ping

Последний столбец отчета traceroute сообщает IP-адрес или доменное имя каждого встреченного маршрутизатора.

Как установить проблему при помощи трассировки?

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


Предположим, что сайт google плохо открывается на нашем ПК. Запустив команду Ping мы обнаружим, что время прохождения туда-обратно очень высокое, в среднем около 210 миллисекунд.

отчет ping говорит о наличии проблемы

Проблема есть, но на каком именно этапе прохождения пакетов данных она возникает команда Ping не показывает.

Утилита Tracert поможет определить корень проблемы. Проанализируем отчет трассировки:

как анализировать отчет tracert

Сбой, как мы видим, возникает на пятом хопе, и данный маршрутизатор негативно влияет на оставшийся путь данных к месту назначения. Таким образом мы быстро обнаружили, что причина задержки передачи данных не связана с нашей локальной сетью или сервером. Проблема в удаленном роутере сети Интернет.

Что означают звездочки в отчете?

Иногда в отчете трассировки вы можете заметить звездочки, исходящие от маршрутизатора.

звездочки в отчете

Что такое TTL?

что значит ttl

Количество таких прыжков (hops) определяет параметр TTL (Time To Live), или время жизни. Он задает то, как долго переданные пакеты данных могут жить прежде чем будут отброшены. По умолчанию задаётся 30 прыжков. Если пакеты не достигают цели через 30 переходов, они автоматически отбрасываются.

Вышеуказанная запись означает, что когда данные достигают четвертого прыжка (узла), они отбрасываются и не передаются далее.

использование параметра ttl

На других компьютерах в той же локальной сети, подключенных через Wi-Fi, я могу видеть эти сайты в порядке и успешно запустить трассировку.

Когда я запускаю трассировку из терминала, она даже не выходит на шлюз беспроводного маршрутизатора:

РЕДАКТИРОВАТЬ: Вот вывод маршрута получить на IP-адрес:

Также вот моя информация таблицы маршрутизации, если это помогает (что еще могло заставить это случиться). Я могу запустить traceroute и зайти на сайт на других машинах в той же локальной сети (подключенных к тому же маршрутизатору по Wi-Fi).

Были некоторые люди, которые сталкивались с похожей проблемой и использовали некоторые инструменты очистки кэша (но казалось, что проблема продолжала появляться, ощущается почти как вирус?):

Маршрут — это интерфейс, в который нам надо послать пакет для достижения какого то узла назначения и адрес следующего маршрутизатора (next-hop):

Что такое путь? Путь — это список узлов, через которые прошел (пройдет) пакет:

Путь пакета можно посмотреть с помощью утилит tracert в OC Windows и traceroute в GNU/Linux и Unix-подобных системах. (другие команды, типа tracepath мы не рассматриваем).
Многие считают что этих утилит один и тот же принцип работы, но это не так. Давайте разберемся.

Вывод:
Icmp -протокол третьего уровня, и о портах он не знает ничего. Поэтому сделать tracert с указанием порта невозможно. Надеюсь тут мы разобрались.

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

Возьмем предыдущую схему и сделаем трассировку:

С использованием TCP SYN пакетов:

C использованием UDP пакетов:

Как видите трассировка прошла успешно. Мы видим путь до указанного хоста.


А теперь повесим на интерфейс Router4 фильтр на in (как указано на рисунке):

Снова сделаем трассировку:

Примечание: Появление звездочек вместо адресов хостов может быть обусловлено различными причинами и хорошо описано тут

Собственно говоря, утилита traceroute может работать как и утилита tracert с использованием ICMP Echo-Request. Для этого ее следует запустить с ключом -I. В примеры выше фильтр не блокирует ICMP, поэтому трассировка с использованием данного протокола покажет нам весь путь пакета:

Надеюсь мы разобрались в основных принципах работы данных утилит. Если надо сделать трассировку по какому то порту в Windows системах, можно использовать сторонние утилиты, к примеру tcptrace.

Читайте также: