Как: как использовать команду «traceroute» в linux — 2021

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

Join Patreon ➔

 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. Итак, что вам необходимо сделать:

  1. Вызываем командную строку. Для этого:
    • Нажимаем кнопку пуск на экране либо клавишу win на клавиатуре (клавиша win на стандартной клавиатуре находится между Alt и Control, на ней изображен всемирно известный логотип всеми любимой операционной системы Windows);
    • В появившемся меню (стартовом меню) выбираем пункт «выполнить». Команда «выполнить» позволяет задействовать служебные программы системы Windows, спрятанные подальше от рук любопытных пользователей, так как неумелое пользование некоторыми программами может нанести вред работе операционной системе и хранящимся на компьютере данным. Своего рода «защита от дурака». Но мы уж точно не дураки, поэтому продолжаем;
    • В появившейся после выбора «выполнить» строке вводим вручную латинским шрифтом cmd и нажимаем Ok. Командная строка вызвана.

Справка: быстро вызвать строку «выполнить» можно нажав на клавиатуре комбинацию win+r. После чего можно ввести cmd.

  1. В командную строку вводим команду tracert имя или IP сайта (с подсоединением к которому возникли проблемы). Например, tracert ru.
  2. Ожидаем результат. В результате мы увидим несколько строк (до 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:

  1. Тестирование сети
  2. Управление сетью
  3. Измерение сети.

Заключение

Утилита 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