- 10+ traceroute command in Linux [Cheat Sheet]
- How to install traceroute
- Install traceroute on CentOS, RHEL, Fedora
- Install traceroute on Ubuntu and Debian
- Syntax to use traceroute command
- Different examples to use traceroute command
- 1. Trace the route to a network host
- 2. Trace the route using IPv4
- 3. Trace the route using IPv6
- 4. Use ICMP ECHO
- 5. Specify the maximum number of hops
- 6. Specify the interface
- 7. Do not fragment packets
- 8. Set the wait time
- 9. Set the number of probe packets per hop
- 10. Do not resolve IP addresses to their domain names
- 11. Specify the destination port
- 12. Set the full packet length
- Conclusion
- Трассировка маршрута до сервера linux
- Трассировка в Linux
- Для CentOS и RedHat
- Для Debian и Ubuntu
- Популярные Похожие записи:
- Команда traceroute Linux
- Как работает traceroute?
- Утилита Traceroute
- Примеры трассировки сети в Linux
- Выводы
10+ traceroute command in Linux [Cheat Sheet]
traceroute is a command-line tool that displays the routes taken by network packets to reach the given host. It also helps to find slow traffic between source and destination. traceroute can come in handy when troubleshooting connectivity issues.
How to install traceroute
traceroute command is not available by default on most Linux distributions. You can use the following commands to install traceroute on your system.
Install traceroute on CentOS, RHEL, Fedora
$ sudo dnf install traceroute
Install traceroute on Ubuntu and Debian
$ sudo apt install traceroute
Syntax to use traceroute command
The syntax for the traceroute command is as follows:
host indicates the name or IP address of the destination host.
Different examples to use traceroute command
1. Trace the route to a network host
You can specify the domain name or IP address to trace the route to a network host.
The following example prints the route taken by packets to reach the host golinuxcloud.com .
$ traceroute golinuxcloud.com
Sample Output:
The traceroute command displays the IP addresses through which the packets pass and the time taken by packets to reach the destination.
There are three instances of time in milliseconds as traceroute sends three packets in each hop.
If the destination is not reached, it prints asterisks like in hop 9. It can be caused due to a firewall blocking the network.
2. Trace the route using IPv4
The -4 option enables only IPv4 tracerouting to a network host.
$ traceroute -4 golinuxcloud.com
Sample Output:
3. Trace the route using IPv6
The -6 option allows you to use IPv6 protocol to trace the route to a network host.
$ traceroute -6 gtraolinuxcloud.com
Sample Output:
~]# traceroute -6 2a00:8a00:4000:293::1e0 traceroute to 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0), 30 hops max, 80 byte packets 1 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0) 0.074 ms 0.019 ms 0.016 ms
Or alternatively we can also use traceroute6 as shown below:
~]# traceroute6 2a00:8a00:4000:293::1e0 traceroute to 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0), 30 hops max, 80 byte packets 1 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0) 0.063 ms 0.017 ms 0.016 ms
4. Use ICMP ECHO
By default, the traceroute command uses the UDP ports for tracerouting. To use ICMP ECHO instead of UDP, run the command with -I option.
$ traceroute -I golinuxcloud.com
Sample Output:
5. Specify the maximum number of hops
The default maximum hops number is 30. You can change its value using the -m option.
$ traceroute -m hop_num golinuxcloud.com
Sample Output:
6. Specify the interface
With -i flag, you can specify the interface you want to use to send packets to a host.
$ traceroute -i interface google.com
Sample Output:
7. Do not fragment packets
The -F option tells traceroute not to fragment probe packets.
$ traceroute -F golinuxcloud.com
Sample Output:
8. Set the wait time
You can use the -w option to define time in seconds to wait for a response to the next hop. The default value is 5.0 seconds. The float point value is also allowed.
$ traceroute -w time golinuxcloud.com
Sample Output:
9. Set the number of probe packets per hop
The -q option lets you specify the number of probe packets for a hop. The default is 3.
$ traceroute -q num golinuxcloud.com
Sample Output:
The following example sends two packets in each hop to a host.
10. Do not resolve IP addresses to their domain names
The -n option forces the traceroute command not to map IP addresses to their domain names when displaying them.
$ traceroute -n golinuxcloud.com
Sample Output:
11. Specify the destination port
The -p option is used to specify the destination port number for UDP tracing. The default port value is 33434.
$ traceroute -p port_num golinuxcloud.com
Sample Output:
12. Set the full packet length
The default value of the full packet length is equal to the length of an IP header plus 40. You can change it by passing a new length to the traceroute command.
$ traceroute golinuxcloud.com packetlen
Sample Output:
Conclusion
Now you should have understood how to use traceroute command to track the packet’s route to a network host. We have discussed the most common options used in traceroute commands. We hope you find this tutorial helpful.
If you have any confusion, let us know in the comment section.
Трассировка маршрута до сервера linux
Командой tracert мы инициируем отправку пакетов данных тому получателю, который указали – это может быть адрес сайта, имя компьютера в сети или IP-адрес. При этом пакеты проходят через все промежуточные системы (обычно это специальные сетевые устройства – машрутизаторы) между нашим компьютером и получателем. Таким образом, мы устанавливаем маршрут до пункта назначения и, что гораздо более важно – определяем время отклика (значение в миллисекундах) каждого промежуточного узла.
Таким образом можно установить, в каком месте цепочки находится проблема. Если пакеты не доходят до самого пункта назначения – значит, проблема в нем. Если цепочка обрывается на середине – проблема в каком-то из промежуточных маршрутизаторов. При этом с другого компьютера или по другому маршруту (если такой существует) наш отвалившийся сайт может быть доступен. Если пакеты не выходят за пределы сети нашего провайдера – стало быть, там и проблема.
Трассировка в Linux
В linux за трассировку отвечает пакет traceroute. Первое что сделаем это поставим пакет. Для этого достаточно полнить простенькую команду.
Для CentOS и RedHat
Для Debian и Ubuntu
Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-01
Сделаем трассировку до Яндекса. traceroute ya.ru. Видим пошло построение маршрута.
Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-02
Как видите команда очень похожа на команду из операционной системы Windows. Данная команда очень сильно вам поможет в решении сетевых проблем, так что трассировка вам в помощь.
Популярные Похожие записи:
- Установка NuGet в Windows
- Установка DIG в Windows, за минуту
- Большая потеря пакетов на виртуальной машине ESXI
- Настройка сети в CentOS 8, за минуту
- Ошибка активации 0xC004F034 на KMS сервере
- Ошибка Log Disk Exhaustion on vCenter 7, 100% решение
Команда traceroute Linux
Не всегда сеть работает так, как от нее требуется, иногда определенный компьютер в вашей локальной сети компании, или удаленный может не отвечать. Казалось бы, все работает, все подключено, но похоже на каком-то из узлов, на пути от вашего компьютера, до нужного случается ошибка.
Утилита ping позволяет только определить наличие проблемы, что узел не отвечает, но как узнать где обрывается соединение? Для этого применяется утилита traceroure. В этой небольшой инструкции мы рассмотрим как пользоваться traceroute linux, как понимать ее вывод и определить где же все-таки проблема. Но сначала рассмотрим, как работает traceroute.
Как работает traceroute?
Вы, наверное, уже знаете, что вся информация в сети передается в виде пакетов. Поток данных разбивается специальным программным обеспечением на небольшие пакеты и передается через сеть интернет на целевой узел, а там собирается обратно.
Каждый пакет проходит на своем пути определенное количество узлов, пока достигнет своей цели. Причем, каждый пакет имеет свое время жизни. Это количество узлов, которые может пройти пакет перед тем, как он будет уничтожен. Этот параметр записывается в заголовке TTL, каждый маршрутизатор, через который будет проходить пакет уменьшает его на единицу. При TTL=0 пакет уничтожается, а отправителю отсылается сообщение Time Exceeded.
Команда traceroute linux использует UDP пакеты. Она отправляет пакет с TTL=1 и смотрит адрес ответившего узла, дальше TTL=2, TTL=3 и так пока не достигнет цели. Каждый раз отправляется по три пакета и для каждого из них измеряется время прохождения. Пакет отправляется на случайный порт, который, скорее всего, не занят. Когда утилита traceroute получает сообщение от целевого узла о том, что порт недоступен трассировка считается завершенной.
Утилита Traceroute
Перед тем как перейти к примерам работы с утилитой давайте рассмотрим ее синтаксис и основные опции. Синтаксис вызова очень прост:
$ traceroute опции адрес_узла
В качестве адреса может использоваться ip адрес или доменное имя. Рассмотрим основные опции:
- -4 или -6 — использовать ipv4 или ipv6 протокол;
- -I — использовать ICMP пакеты вместо UDP;
- -T — использовать TCP пакеты вместо UDP;
- -F — не фрагментировать пакеты;
- -f — указать TTL с которого нужно начать;
- -g — передавать пакет через указанный шлюз;
- -i — передавать пакет через указанный интерфейс;
- -m — максимальное количество узлов, через которые пройдет пакет;
- -q — количество пакетов, отправляемых за раз, по умолчанию три;
- -n — не узнавать доменные имена;
- -p — указать порт вместо порта по умолчанию;
- -w — установить время ожидания ответа от узла, по умолчанию полсекунды;
- -r — использовать другой роутер вместо того, что указанный в таблице маршрутизации;
- -z — минимальный интервал между пакетами;
- -U — использовать UDP с увеличением номера порта;
- -UL — использовать протокол UDPLITE;
- -D — использовать протокол DCCP;
- —mtu — указать размер пакета;
- -P — протокол, доступны такие значения: raw, dccp, udplite, udp, tcpconn, tcp, icmp.
Это не все опции утилиты, но все основные, которыми вы будете пользоваться. Дальше перейдем практике того, как выполняется трассировка сети Linux.
Примеры трассировки сети в Linux
Например, выполним трассировку до сервера losst.pro:
Как видите, пакет прошел через 6 узлов перед тем, как дойти до цели. На каждый узел отправлялось по три пакета и для каждого из них было засечено время прохождения. И если на одном из узлов возникнет проблема, теперь вы будете знать на каком.
У вас, наверное, возник вопрос, почему время прохождения для некоторых узлов такое долгое? Ведь если выполнить ping, то общее время будет намного меньше. Дело в том, что время засекается для пути пакета туда и обратно. От запроса до ответа. Это раз, но еще нужно учитывать что маршрутизаторы дают высший приоритет для приходящих пакетов, когда для сервисных задержки могут быть более длинными.
Еще, вместо одного узла вы можете видеть звездочки traceroute. Это еще не значит, что он не работает. Это означает что всего лишь он не захотел нам отвечать. Давайте проверим еще что-нибудь, например, публичный DNS google:
Здесь уже больше узлов, и такая же ситуация со звездочками. Если бы на пути к серверу возникла ошибка, мы бы это увидели. Например, узел 195.153.14.1 нам не ответил и мы смогли отследить запрос только до 212.162.26.169.
sudo traceroute 195.153.14.1
Иногда трассировка с помощью UDP не работает, это может произойти потому, что фаервол блокирует все лишние пакеты. Мы можем воспользоваться ICMP с помощью опции -I.
sudo traceroute history.pl
sudo traceroute -I history.pl
Но трассировка может использоваться не только для обнаружения обрыва в цепочке маршрутизаторов. У нее еще есть достаточно интересное применение по исследованию сети. Например, вы можете попытаться определить использование подсетей провайдером. Отправим три запроса на разные адреса:
sudo traceroute losst.pro
$ sudo traceroute history.pl
$ sudo traceroute habrahabr.ru
Затем сравните выводы этих команд. Вы увидите, что начальные IP адреса одинаковые. Мы можем сделать вывод, что наш роутер 192.168.1.1 подключен к локальной сети провайдера 195.5.8.0/24, которая, в свою очередь, подключена к сети 10.50.50.0/24 откуда уже получает доступ к внешней сети.
Выводы
В этой статье мы рассмотрели как работает команда traceroute linux, а также как выполняется трассировка сети linux. Эти функции больше нужны системным администраторам, но и обычным пользователям тоже иногда могут пригодиться.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.