Trace Network Routes Using Linux / UNIX
Use traceroute command. Open a shell prompt, enter:
Sample output:
Patreon supporters only guides
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
1 sl1-dallas.xyz.org (74.11.22.33) 0.561 ms 0.765 ms 0.755 ms 2 po102.dar01.dal01.dallas-datacenter.com (66.228.118.177) 0.969 ms 0.961 ms 1.175 ms 3 po1.cer02.dal01.dallas-datacenter.com (66.228.118.204) 1.165 ms 1.155 ms 1.361 ms 4 xe-7-4.r02.dllstx09.us.bb.gin.ntt.net (157.238.224.69) 1.346 ms 1.561 ms 1.550 ms 5 te-10-1-0.edge2.Dallas3.level3.net (4.68.63.225) 1.768 ms 1.760 ms 1.738 ms 6 vlan79.csw2.Dallas1.Level3.net (4.68.19.126) 2.191 ms vlan69.csw1.Dallas1.Level3.net (4.68.19.62) 12.751 ms vlan79.csw2.Dallas1.Level3.net (4.68.19.126) 1.042 ms 7 ae-62-62.ebr2.Dallas1.Level3.net (4.69.136.137) 7.784 ms ae-92-92.ebr2.Dallas1.Level3.net (4.69.136.149) 4.040 ms 1.285 ms 8 ae-6.ebr3.NewYork1.Level3.net (4.69.137.122) 35.727 ms 35.958 ms 35.950 ms 9 ae-83-83.csw3.NewYork1.Level3.net (4.69.134.106) 36.430 ms ae-93-93.csw4.NewYork1.Level3.net (4.69.134.110) 49.142 ms ae-63-63.csw1.NewYork1.Level3.net (4.69.134.98) 36.402 ms 10 ae-4-99.edge1.NewYork1.Level3.net (4.68.16.206) 36.610 ms ae-1-69.edge1.NewYork1.Level3.net (4.68.16.14) 36.340 ms ae-2-79.edge1.NewYork1.Level3.net (4.68.16.78) 36.819 ms 11 GOOGLE-INC.edge1.NewYork1.Level3.net (4.71.172.86) 49.793 ms 49.785 ms 50.003 ms 12 (72.14.236.213) 49.993 ms 216.239.43.146 (216.239.43.146) 68.671 ms (72.14.236.213) 72.396 ms 13 66.249.94.92 (66.249.94.92) 69.160 ms 68.988 ms 66.249.94.90 (66.249.94.90) 69.088 ms 14 66.249.94.92 (66.249.94.92) 64.541 ms (72.14.236.134) 79.013 ms 66.249.94.92 (66.249.94.92) 64.514 ms 15 66.249.94.50 (66.249.94.50) 71.474 ms (72.14.236.130) 71.460 ms 66.249.94.50 (66.249.94.50) 71.432 ms 16 eh-in-f99.google.com (72.14.207.99) 69.652 ms 69.382 ms 69.868 ms
Трассировка маршрута
Использование утилиты «Tracert».
Рассмотрим пример работы программы в операционной системе Windоws. Программа tracert выполняет отправку данных указанному узлу сети, при этом отображая сведения о всех промежуточных маршрутизаторах, через которые прошли данные на пути к целевому узлу. В случае проблем при доставке данных до какого-либо узла программа позволяет определить, на каком именно участке сети возникли неполадки. Здесь хочется отметить, что программа работает только в направлении от источника пакетов и является весьма грубым инструментом для выявления неполадок в сети. В силу особенностей работы протоколов маршрутизации в сети Интернет, обратные маршруты часто не совпадают с прямыми, причем это справедливо для всех промежуточных узлов в трейсе. Поэтому ICMP ответ от каждого промежуточного узла может идти своим собственным маршрутом, затеряться или прийти с большой задержкой, хотя в реальности с пакетами, которые адресованы конечному узлу, этого не происходит. Кроме того, на промежуточных маршрутизаторах часто стоит ограничение числа ответов ICMP в единицу времени, что приводит к появлению ложных потерь.
Запуск программы производится из командной строки. Для этого вы должны войти в неё. Для операционных систем семейства Windows существует несколько способов запуска командной строки:
1. Пуск — Выполнить — В графе «Открыть» написать «cmd» и нажать Ок.
2. Сочетание клавиш Win (кнопка с логотипом Windows) + R (должны быть нажаты одновременно) — В графе «Открыть» написать «cmd» и нажать Ок.
3. Пуск — Все программы (или просто «Программы», зависит от версии операционной системы) — Стандартные — Командная строка.
Далее вам необходимо произвести трассировку до заданного ip адреса или доменного имени.
Использование утилиты «Pathping
PathPing предоставляет информацию о латентности сети и потерях данных на промежуточных узлах между исходным пунктом и пунктом назначения. Команда pathping в течение некоторого периода времени отправляет многочисленные сообщения с эхо-запросом каждому маршрутизатору, находящемуся между исходным пунктом и пунктом назначения, а затем на основании пакетов, полученных от каждого из них, вычисляет результаты. Поскольку pathping показывает коэффициент потери пакетов для каждого маршрутизатора или связи, можно определить маршрутизаторы или подсети, имеющие проблемы с сетью. Команда pathping выполняет эквивалентное команде tracert действие, идентифицируя маршрутизаторы, находящиеся на пути.
Запуск программы производится из командной строки. Для этого вы должны войти в неё. Для операционных систем семейства Windows существует несколько способов запуска командной строки:
1. Пуск — Выполнить — В графе «Открыть» написать «cmd» и нажать Ок.
2. Сочетание клавиш Win (кнопка с логотипом Windows) + R (должны быть нажаты одновременно) — В графе «Открыть» написать «cmd» и нажать Ок.
3. Пуск — Все программы (или просто «Программы», зависит от версии операционной системы) — Стандартные — Командная
Внимание! Выполнение данной команды потребует некоторое время, необходимо дождаться полного выполнения, как указано в примере ниже
Копирование текста из командной строки.
Чтобы скопировать текст к кликаем правой кнопкой мышки по командной строке и вызываем контекстное меню. В открывшемся меню выбираем пункт «Пометить». После этого текст в командной строке можно выделить обычным движением мышкой и скопировать с помощь комбинации клавиш Ctrl+C.
Далее результаты необходимо будет переслать на электронный адрес почты 911@profintel.ru, с указанием вашего id номера и кратким описанием вашей проблемы.
Анализатор пути Pro
Следующий инструмент, который мы собираемся упомянуть, — это Path Analyzer Pro. Благодаря ему мы сможем отслеживать расширенные сетевые маршруты с помощью тестов производительности, DNS, Whois и разрешение сети для исследования сетевых проблем. Кроме того, он имеет простой графический интерфейс и доступен для Windows и Мак Операционные системы OS X.
Очень важной особенностью является то, что он до 20 раз быстрее, чем традиционный traceroute. Также заслуживает внимания его функция «синопсиса», благодаря которой нам не придется искать данные с пяти или десяти серверов Whois, регистраторов, маршрутизаторов и других источников, а затем сопоставлять их и получать сводную информацию
Если вы хотите скачать пробную версию программы, вы можете сделать это из здесь , если вам нравится самая базовая версия, она стоит 30 евро.
Purpose of tracepoints¶
A tracepoint placed in code provides a hook to call a function (probe)
that you can provide at runtime. A tracepoint can be “on” (a probe is
connected to it) or “off” (no probe is attached). When a tracepoint is
“off” it has no effect, except for adding a tiny time penalty
(checking a condition for a branch) and space penalty (adding a few
bytes for the function call at the end of the instrumented function
and adds a data structure in a separate section). When a tracepoint
is “on”, the function you provide is called each time the tracepoint
is executed, in the execution context of the caller. When the function
provided ends its execution, it returns to the caller (continuing from
the tracepoint site).
You can put tracepoints at important locations in the code. They are
lightweight hooks that can pass an arbitrary number of parameters,
which prototypes are described in a tracepoint declaration placed in a
header file.
LIST OF AVAILABLE METHODS top
In general, a particular traceroute method may have to be chosen by -M name, but most of the methods have their simple cmdline switches (you can see them after the method name, if present). default The traditional, ancient method of tracerouting. Used by default. Probe packets are udp datagrams with so-called "unlikely" destination ports. The "unlikely" port of the first probe is 33434, then for each next probe it is incremented by one. Since the ports are expected to be unused, the destination host normally returns "icmp unreach port" as a final response. (Nobody knows what happens when some application listens for such ports, though). This method is allowed for unprivileged users. icmp -I Most usual method for now, which uses icmp echo packets for probes. If you can ping(8) the destination host, icmp tracerouting is applicable as well. This method may be allowed for unprivileged users since the kernel 3.0 (IPv4, for IPv6 since 3.11), which supports new dgram icmp (or "ping") sockets. To allow such sockets, sysadmin should provide net/ipv4/ping_group_range sysctl range to match any group of the user. Options: raw Use only raw sockets (the traditional way). This way is tried first by default (for compatibility reasons), then new dgram icmp sockets as fallback. dgram Use only dgram icmp sockets. tcp -T Well-known modern method, intended to bypass firewalls. Uses the constant destination port (default is 80, http). If some filters are present in the network path, then most probably any "unlikely" udp ports (as for default method) or even icmp echoes (as for icmp) are filtered, and whole tracerouting will just stop at such a firewall. To bypass a network filter, we have to use only allowed protocol/port combinations. If we trace for some, say, mailserver, then more likely -T -p 25 can reach it, even when -I can not. This method uses well-known "half-open technique", which prevents applications on the destination host from seeing our probes at all. Normally, a tcp syn is sent. For non-listened ports we receive tcp reset, and all is done. For active listening ports we receive tcp syn+ack, but answer by tcp reset (instead of expected tcp ack), this way the remote tcp session is dropped even without the application ever taking notice. There is a couple of options for tcp method: syn,ack,fin,rst,psh,urg,ece,cwr Sets specified tcp flags for probe packet, in any combination. flags=num Sets the flags field in the tcp header exactly to num. ecn Send syn packet with tcp flags ECE and CWR (for Explicit Congestion Notification, rfc3168). sack,timestamps,window_scaling Use the corresponding tcp header option in the outgoing probe packet. sysctl Use current sysctl (/proc/sys/net/*) setting for the tcp header options above and ecn. Always set by default, if nothing else specified. mss=num Use value of num for maxseg tcp header option (when syn). info Print tcp flags of final tcp replies when the target host is reached. Allows to determine whether an application listens the port and other useful things. Default options is syn,sysctl. tcpconn An initial implementation of tcp method, simple using connect(2) call, which does full tcp session opening. Not recommended for normal use, because a destination application is always affected (and can be confused). udp -U Use udp datagram with constant destination port (default 53, dns). Intended to bypass firewall as well. Note, that unlike in tcp method, the correspond application on the destination host always receive our probes (with random data), and most can easily be confused by them. Most cases it will not respond to our packets though, so we will never see the final hop in the trace. (Fortunately, it seems that at least dns servers replies with something angry). This method is allowed for unprivileged users. udplite -UL Use udplite datagram for probes (with constant destination port, default 53). This method is allowed for unprivileged users. Options: coverage=num Set udplite send coverage to num. dccp -D Use DCCP Request packets for probes (rfc4340). This method uses the same "half-open technique" as used for TCP. The default destination port is 33434. Options: service=num Set DCCP service code to num (default is 1885957735). raw -P proto Send raw packet of protocol proto. No protocol-specific headers are used, just IP header only. Implies -N 1 -w 5 . Options: protocol=proto Use IP protocol proto (default 253).
Как сделать трассировку?
Для этого вам понадобится служебная программа (утилита) traceroute. Принцип ее действия прост: программа посылает в проблемном направлении информационный сигнал – пакет данных, получая ответ от каждого из узлов – своеобразное информационное эхо. Таким образом, можно замерить время прохождения сигнала от одного узла к другому, без труда выявив «слабое звено».
Не нужно бросаться искать, где бы скачать такую полезную вещь: утилита traceroute уже встроена в вашу операционную систему. Для ее запуска служит команда tracert. Итак, что вам необходимо сделать:
- Вызываем командную строку. Для этого:
- Нажимаем кнопку пуск на экране либо клавишу win на клавиатуре (клавиша win на стандартной клавиатуре находится между Alt и Control, на ней изображен всемирно известный логотип всеми любимой операционной системы Windows);
- В появившемся меню (стартовом меню) выбираем пункт «выполнить». Команда «выполнить» позволяет задействовать служебные программы системы Windows, спрятанные подальше от рук любопытных пользователей, так как неумелое пользование некоторыми программами может нанести вред работе операционной системе и хранящимся на компьютере данным. Своего рода «защита от дурака». Но мы уж точно не дураки, поэтому продолжаем;
- В появившейся после выбора «выполнить» строке вводим вручную латинским шрифтом cmd и нажимаем Ok. Командная строка вызвана.
Справка: быстро вызвать строку «выполнить» можно нажав на клавиатуре комбинацию win+r. После чего можно ввести cmd.
- В командную строку вводим команду tracert имя или IP сайта (с подсоединением к которому возникли проблемы). Например, tracert ru.
- Ожидаем результат. В результате мы увидим несколько строк (до 30), каждая из которых – узел, через который проходит информация. В строке будет написано имя или IP узла и время прохождения сигнала в миллисекундах (ms – тысячная доля секунды).
Выше описанное актуально для операционной системы Windows, а как выполняется трассировка маршрута под Linux? В общих чертах аналогично, только терминал (аналог командной строки) вместо cmd вызывается сочетанием клавиш Ctrl+Alt+t, а вместо tracert вводим traceroute. Стоит также отметить, что трассировка в Linux будет продолжаться, пока пользователь не прервет ее сам, нажав ctrl+c.
Что нам даст результат? Чем больше время прохождения пакета, тем больше сайт «тормозит», таким образом, мы выявим узел, виновный в «тормозах». Непроходимый же узел будет обозначен надписью «Превышен интервал ожидания маршрута». Чем выше в списке проблемная строка, тем более локальна проблема. «Непроходимость» внизу списка указывает на проблемы с сайтом или доменом, а вверху – у вашего провайдера либо в локальной сети.
Справка по команде ROUTE
Обработка таблиц сетевых маршрутов. ROUTE [] [] -f Очистка таблиц маршрутов от всех записей шлюзов. При указании одной из команд таблицы очищаются до выполнения команды. -p При использовании с командой ADD маршрут сохраняется после перезагрузок системы. По умолчанию маршруты не сохраняются при перезагрузке. Пропускается для остальных команд, всегда изменяющих соответствующие постоянные маршруты. -4 Принудительное использование протокола IPv4. -6 Принудительное использование протокола IPv6. <команда> Одна из следующих команд: PRINT Печать маршрута ADD Добавление маршрута DELETE Удаление маршрута CHANGE Изменение существующего маршрута <назначение> Задает узел. MASK Далее следует значение параметра "маска_сети". <маска_сети> Значение маски подсети для записи данного маршрута. Если этот параметр не задан, по умолчанию используется значение 255.255.255.255. <шлюз> Шлюз. <интерфейс> Номер интерфейса для указанного маршрута. METRIC Определение метрики, т. е. затрат для узла назначения. Проводится поиск всех символических имен узлов в файле сетевой базы данных NETWORKS. Проводится поиск символических имен шлюзов в файле базы данных имен узлов HOSTS. Для команд PRINT и DELETE можно указать узел или шлюз с помощью подстановочного знака либо опустить параметр "шлюз". Если узел содержит подстановочный знак "*" или "?", он используется в качестве шаблона и печатаются только соответствующие ему маршруты. Знак "*" соответствует любой строке, а "?" - любому знаку. Примеры: 157.*.1, 157.*, 127.*, *224*. Соответствие шаблону поддерживает только команда PRINT. Диагностические сообщения: Недопустимое значение MASK вызывает ошибку, если (УЗЕЛ МАСКА) != УЗЕЛ. Например> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1 Добавление маршрута завершится ошибкой, так как указан недопустимый параметр маски. (Узел & Маска) != Узел. Примеры: > route PRINT > route PRINT -4 > route PRINT -6 > route PRINT 157* .... Печать только узлов, начинающихся со 157 > route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2 узел^ ^маска ^шлюз метрика^ ^ интерфейс^ Если IF не задан, то производится попытка найти лучший интерфейс для указанного шлюза. > route ADD 3ffe::/32 3ffe::1 > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2 Параметр CHANGE используется только для изменения шлюза или метрики. > route DELETE 157.0.0.0 > route DELETE 3ffe::/32
Опции команды Tracert
Когда мы используем команду Tracert, в дополнение к записи команды Tracert и IP-адреса или имени сервера в консоли системных символов, мы можем записать ряд параметров для изменения или получения дополнительных данных, для этого мы должны ввести команду «Tracert Пробел, и следовал один из вариантов, которые мы укажем ниже. Примером может быть: Tracert -d 192.168.1.1
Посмотрим, какие у нас есть варианты:
- -d: эта опция заставляет команду Tracert не выполнять поиск DNS для всех IP-адресов. То есть вместо того, чтобы показывать имя маршрутизатора, он будет показывать нам только свой IP-адрес.
- -h: эта опция позволяет нам указать максимальное количество прыжков, которое может выполнить команда Tracert. Для этого мы должны ввести команду следующим образом. Tracert -h «количество прыжков» «IP-адрес или имя хоста» .
- -j: эта опция указывает команде tracert, что будет нестрогим источником запроса к хосту. Чтобы сделать это, мы должны ввести опцию -j, пробел, за которым следует исходный хост, который мы хотим. Работает только с IPv4 IP-адресами.
- -w: эта опция используется для указания максимального времени ожидания в миллисекундах в каждом ответе до сбоя соединения. Для этого мы должны ввести опцию -w, пробел и время в миллисекундах, которые мы хотим.
- -R: эта опция используется для следования по обратному маршруту. Работает только с IPv6 IP-адресами.
- -S: эта опция служит для указания команде tracert, какой адрес источника мы хотим использовать. Для этого мы должны ввести опцию -s, пробел, а затем IP-адрес источника.
- -4: этот параметр служит для принудительного использования IP-адресов IPv4.
- -6: эта опция помогает нам принудительно использовать IP-адреса IPv6.
Синтаксис
Рассмотрим синтаксис команды.
В той части команды, где будет указан адрес узла, необходимо прописать доменное имя или IP-адрес.
Дополнительные опции
Чтобы изменить тип пакетов, необходимо воспользоваться соответствующими опциями. Для пакетов ICMP – опция -I. Для пакетов TCP – опция -T. Вследствие чего формат UDP больше не будет использован программой.
Если нужно указать размер пакета, задайте опцию —mtu. В таблице маршрутизации будет указано конкретное устройство. Чтобы поменять его, и задать другой роутер, задайте опцию -r. Для установки максимально допустимого времени жизни пакета задайте опцию -m. Чтобы задать длительность паузы между прыжками, задайте опцию -z.
Вышеперечисленные ключи не являются обязательными для использования traceroute в командной строке устройства Линукс. Вы всегда можете запустить утилиту без добавления вспомогательных опций.
Примеры трассировки в Linux
Рассмотрим на примере выполнение трассировки сети до определенного сервера. Он будет указан в завершении:
Как видно из скриншота, пакет дошел до сайта всего за два хоста
Система отправляла по 3 пакета на каждый из этих узлов, засекая при этом точное время их прохождения. Имея подобную информацию на руках, очень просто понять, на каком узле возникла проблема, если сеть дала сбой.
Следует учитывать тот факт, что сервисная задержка может отнять немало времени. Это связано с приоритетностью маршрутизатора. Приходящие пакеты всегда находятся в фаворе.
Если в появившемся окне вместо узла указаны звёздочки утилиты, не стоит делать поспешных выводов о его поломке. Скорее всего, узел просто не ответил на этот раз.
Если трассировка сети не осуществляется с помощью пакетов UDP, их формат нужно поменять. В ином случае фаервол продолжил блокировку лишних пакетов. О том, как осуществить замену на практике, говорилось выше. Например, если вы хотите отдать предпочтение пакетам ICMP, то нужно подобрать соответствующую опцию, указанную в статье. В данном случае это опция -I.
Для начала пробуем без изменений:
Если не получается, измените формат пакетов:
Обрыв цепочки – не единственное, что может выявить трассировка сети Linux. Её также можно применить для исследования сети. К примеру, пользователю нужно выяснить, какие подсети используются поставщиком Интернет-услуг. Для этого необходимо отправить 3 запроса с указанием разных адресов. Вот так это выглядит на практике:
Первый адрес:
Второй адрес:
Третий адрес:
Чтобы разобраться с полученными данными и сделать правильное умозаключение, следует провести сравнение 3 выводов заданных команд. Вы увидите, к какой локальной сети подключен ваш маршрутизатор, и какие сети использует провайдер.
Подводя итог, следует резюмировать основные функции команды traceroute:
- Тестирование сети
- Управление сетью
- Измерение сети.
Заключение
Утилита treaceroute – весьма популярный и надежный инструмент для проверки обрыва цепочки, используемый не только системными администраторами, но и обычными пользователями дистрибутива Linux. Эта команда может пригодиться при различных неисправностях. Её рекомендуется использовать исключительно для ручной локализации проблем. Использование traceroute во время стандартных операций и автоматических сценариев может оказать мощную нагрузку на сеть, что не является целесообразным решением.
Принцип работы трассировки
Данные в сети передаются в виде пакетов. Об этом знает даже новичок. Поток информации нуждается в разбивке, что обеспечивают специальные программы, установленные на компьютере. Далее эти пакеты отправляются на целевой узел через Интернет, после чего поток информации заново собирается.
Каждая «порция» данных имеет ограниченный срок жизни и переходит от узла к узлу, достигая конечной цели. По умолчанию утилита traceroute использует пакеты формата UDP, но данный параметр поддается коррективам. Вскоре вы сами в этом убедитесь.
команда traceroute не найдена
Обычно по умолчание утилита traceroute не входит в комплект дистрибутивов Линукс и поэтому при использовании трассировки можно получить ошибку «команда не найдена», в английском варианте «command not found».
Установка в Убунту, Debian:
В Centos 7
В Centos 8
How to use the Traceroute command?
Use the traceroute command by writing the command “traceroute + domain.com / IP address” or, in the Terminal on Linux and macOS or “tracert + domain.com / IP address” in the Command Prompt on Windows.
Traceroute (Linux and macOS)
traceroute domian.com or traceroute 12.23.34.45
Tracert (Windows)
tracert domian.com or tracert 12.23.34.45
On macOS, you can also use the Traceroute utility. Press the command button + space. Then write Network Utility. Inside it, navigate to Traceroute. Write the hostname or IP address and press enter. It will show you the result.
*You can change the domain.com with another domain you want to probe, and the same goes for the IP address.
Some differences between the Traceroute command, and the Tracert exist. Check the options below.
NOTES top
To speed up work, normally several probes are sent simultaneously. On the other hand, it creates a "storm of packages", especially in the reply direction. Routers can throttle the rate of icmp responses, and some of replies can be lost. To avoid this, decrease the number of simultaneous probes, or even set it to 1 (like in initial traceroute implementation), i.e. -N 1 The final (target) host can drop some of the simultaneous probes, and might even answer only the latest ones. It can lead to extra "looks like expired" hops near the final hop. We use a smart algorithm to auto-detect such a situation, but if it cannot help in your case, just use -N 1 too. For even greater stability you can slow down the program's work by -z option, for example use -z 0.5 for half-second pause between probes. To avoid an extra waiting, we use adaptive algorithm for timeouts (see -w option for more info). It can lead to premature expiry (especially when response times differ at times) and printing "*" instead of a time. In such a case, switch this algorithm off, by specifying -w with the desired timeout only (for example, -w 5). If some hops report nothing for every method, the last chance to obtain something is to use ping -R command (IPv4, and for nearest 8 hops only).
What is the Traceroute command?
The Traceroute command (tracert on Windows) is a small network diagnostic software that you have built-in on your device and servers for tracing the route, hop by hop to a target.
Many network administrators use the Traceroute command daily. It is a convenient tool that you can use under different operation systems – Windows (Tracert), macOS, Linux (Traceroute), and even on mobile (Android and iOS).
To access the traceroute, you will need to use the Terminal (Linux and macOS) or the Command Prompt (Windows).
You can use the Traceroute and see the full route that the packets take to their destination (domain or IP address). Apart from that, you will see the hostnames and IPs of the routers on the way and the latency, the time it takes for each device to receive and resend the data.
You can see which gateway is discarding your data, and later you can fix it.
Командная строка. соединение с удаленным веб-сервером.
Самым основным способом, как можно соединиться и управлять удаленным веб-сервером является командная строка (консоль). О том, что это такое я писал здесь.
Конечно, есть некоторые графические интерфейсы, которые позволяют управлять веб-сервером, такие как (ISPManager или C-panel), но количество действий и настроек системы, которые вы можете произвести с помощью этих интерфейсов очень ограниченно.
По настоящему и полноценно управлять удаленным веб-сервером можно только через командную строку
Именно поэтому очень важно освоить работу с этим инструментом как можно скорее. . Задача этой статьи показать вам те способы, как вы можете соединиться с командной строкой на удаленном веб-сервере
Задача этой статьи показать вам те способы, как вы можете соединиться с командной строкой на удаленном веб-сервере.
Для того, чтобы работать с командной строкой на удаленном компьютере, существует специальный протокол передачи данных, который называется SSH (Secure Shell — «безопасная оболочка»).
Соединившись по этому протоколу с удаленным компьютером вы сможете управлять им через командную строку.
Это соединение можно выполнить с помощью 2 основных способов.
Способ 1. Использовать специальную программу, которая называется SSH-клиент.
Для разных операционных систем написаны специальные программы, которые называются SSH-клиенты. С их помощью можно соединиться с удаленным сервером (с его командной строкой) по протоколу SSH.
Вот некоторые из таких программ:
Для Windows:
Putty, WinSCP и др.
Для Mac OS:
vSSH, ZOC и др.
Найти эти программы можно без труда с помощью поиска в Интернете.
Способ 2. Воспользоваться командной строкой на вашем компьютере.
Этот способ хорош тем, что не требует от вас какого-либо дополнительного программного обеспечения. Соединиться с удаленным сервером можно напрямую от одной командной строки к другой.
Я могу расписать как я это делаю на Mac OS, в остальных системах, наверняка есть способ сделать что-то подобное.
Итак, запускаем терминал и пишем там команду:
ssh имя_пользователя@имя_хоста
Например,
ssh root@95.132.34.151
Вас попросят ввести пароль для пользователя на сервере и если все правильно, вы соединитесь с удаленной командной строкой и сможете управлять сервером.
Очень удобно, быстро и не требует дополнительного ПО.
Выбирайте тот способ, который для вас более удобен и управляйте удаленным веб-сервером.
Больше уроков по работе с командной строкой здесь.
Why use the Traceroute or the Tracert command?
The benefits of using the traceroute command or its alternative for Windows called tracert command are:
- Complete route list. You will see all the routers on the way, with their IP addresses and the time it took. You can better understand the network.
- Route timing. See how much time does it take to finish the query. Is it ok for you? What can you do to speed it up? You can have a starting point for improvements.
- It is built-in. You don’t need to install additional software, and its use is free.
- Check if you can reach a target. See if there is a connection between your device and the hostname or IP address you put in the command.
- See problematic slow router. You can see how much time it took in each hop. So you can see a spot that significantly slows your network. You can fix the problem or add more presence in the area.
Traceroute options for Windows
You can use the Tracert command with various options to perform more precise tests. The following options work on Windows Vista, Windows 7, Windows 8, and of course, Windows 10.
Option |
Description |
-d |
Do not resolve addresses to hostnames. |
-h aximum_hops |
Maximum number of hops to search for target. You can put higher than 30, if you want to query a very remote target. |
-j host-list |
Loose source route along host-list (IPv4-only). Show only IPv4 addresses. |
-w timeout | Wait timeout milliseconds for each reply. Inscrease it, to see more about slower routers. |
-R |
Trace round-trip path (IPv6-only). |
-S srcaddr |
Source address to use (IPv6-only). |
-4 |
Force using IPv4. |
-6 |
Force using IPv6. |
Example
Let’s start with a simple example – let’s execute the traceroute command for the baeldung.com domain:
The output should look like the following:
The first line informs us of what destination address will be used for this test.
Secondly, we’re informed of two things: The maximum number of hops the packet can take to reach the destination and the size of the packet. In our case, we have a maximum number of 30 hops and a packet with a size of 60 bytes. By default, traceroute uses three probe packets per hop.
The rest of the output shows all the routers that our packets went through. In each of the lines, we can find information about the name and IP address of the host. The next three values represent the round-trip times for a given router.
In our case, to connect to baeldung.com, the request needs to go through seven different routers. In the output, we can see that the first one is a router in the local network (192.168.100.1) and the last one (104.18.62.78) is the destination host for the baeldung.com domain.
Note that, the results may be different depending on our location and, even without changing the location, the results may change. Router protocols may choose a different packet path based on, for example, router availability and usage metrics.
traceroute command example
To trace IP router it, enter:
Sample output:
1 sl1-dallas.simplyguide.org (74.86.48.97) 0.539 ms 0.740 ms 0.727 ms 2 po102.dar01.dal01.dallas-datacenter.com (66.228.118.177) 0.713 ms 0.705 ms 0.900 ms 3 po1.cer02.dal01.dallas-datacenter.com (66.228.118.204) 1.125 ms 1.115 ms 1.102 ms 4 xe-7-4.r02.dllstx09.us.bb.gin.ntt.net (157.238.224.69) 168.721 ms 168.716 ms 168.704 ms 5 4.68.63.221 (4.68.63.221) 1.748 ms te-10-1-0.edge2.Dallas3.level3.net (4.68.63.225) 1.722 ms 1.940 ms 6 ge-1-3-0-79.bbr2.Dallas1.Level3.net (4.68.19.66) 1.928 ms ge-1-3-0-79.bbr1.Dallas1.Level3.net (4.68.19.65) 1.055 ms ge-6-1-0-99.bbr1.Dallas1.Level3.net (4.68.19.193) 1.053 ms 7 as-1-0.bbr1.Atlanta1.Level3.net (209.247.9.101) 21.007 ms ae-0-0.bbr2.Atlanta1.Level3.net (64.159.1.46) 21.242 ms as-1-0.bbr1.Atlanta1.Level3.net (209.247.9.101) 21.235 ms 8 ae-21-52.car1.Atlanta1.Level3.net (4.68.103.34) 21.696 ms ae-11-51.car1.Atlanta1.Level3.net (4.68.103.2) 21.691 ms ae-21-52.car1.Atlanta1.Level3.net (4.68.103.34) 21.907 ms 9 GOOGLE-INC.car1.Atlanta1.Level3.net (4.78.209.194) 21.897 ms 22.126 ms 22.097 ms 10 209.85.254.243 (209.85.254.243) 22.576 ms 188.966 ms 209.85.254.241 (209.85.254.241) 22.549 ms 11 209.85.253.145 (209.85.253.145) 22.180 ms 209.85.253.133 (209.85.253.133) 30.700 ms 209.85.253.137 (209.85.253.137) 30.647 ms 12 yx-in-f100.google.com (74.125.45.100) 22.369 ms 22.295 ms 22.278 ms
Traceroute IPv4 and IPv6
By default, tracert and traceroute will test the path only for IPv4 addresses. But that doesn’t mean you can’t test IPv6. All modern OSs come with full support for IPv6 addresses, including all commands, such as ping, traceroute, netstat, etc., to support IPv6.
But IPv4 is the preferred addressing method, so you might not have IPv6 routes in your router ready to send the ICMP packet towards the IPv4 destination. If you do have IPv6 routes support in your OS and your router, you can perform a test.
To test a route for an IPv6 address, use the “tracert6” or “traceroute6” for Linux OS. The tracert6 command sends a sequence of User Datagram Protocol (UDP) to the destination host. While in the case of Windows, you can traceroute to IPv6 addresses using “tracert -6”.
- For macOS and Linux: traceroute6 2a00:1450:400a:804::2004
- For Windows: tracert -6 2a00:1450:400a:804::2004