Как диагностировать проблемы с сетью в Linux с помощью Traceroute

Admin

Traceroute Linux Рекомендуемые

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

Примечание: Хотя в этой статье рассматривается трассировка в Linux, вы также можете использовать эту утилиту в macOS и Окна.

Содержание

  • Как работает трассировка?
  • Какие проблемы с сетью может решить Traceroute?
  • Использование Traceroute в Linux

Как работает трассировка?

Traceroute работает, отправляя UDP-пакеты с короткими длинами TTL на каждый интернет-шлюз на пути к удаленному хосту. Эти короткие длины TTL заставляют эти шлюзы сообщать ответ ICMP «TIME_EXCEEDED» вместе с IP-адресом своего интерфейса.

Эти два фактора в совокупности позволяют трассировке создать подробный список компьютеров, через которые пройдет ваш пакет при подключении к внешнему серверу. Например, при запуске трассировки до «google.com» в моей сети будет отображено от 9 до 10 шлюзов, прежде чем она достигнет серверов Google.

Терминал, показывающий базовый маршрут трассировки для google.com.

Какие проблемы с сетью может решить Traceroute?

Traceroute — это всего лишь инструмент проверки сети, который не оптимизирует и не устраняет какие-либо нерешенные проблемы в вашей сети. Traceroute может лишь описывать поведение сетей и пакетов, которые по ним передаются.

Несмотря на это, это по-прежнему важный инструмент для диагностики потенциальных проблем в сети. Хорошим примером является ситуация, когда локальному шлюзу не удается переслать пакет на следующий узел. Traceroute может решить эту проблему, выделив любой маршрутизатор внутри вашей базовой сети, который не отправляет ответ «TIME_EXCEEDED».

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

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

Хорошо знать: Узнайте больше о сетевом зондировании от использование nmap без sudo в Linux.

Использование Traceroute в Linux

Откройте новый терминал и введите traceroute за которым следует адрес машины, к которой вы хотите подключить вашу машину. Это может быть доменное имя или IP-адрес. Например:

traceroute ubuntu.myvpsserver.top

Нажимать Входить чтобы начать отображать путь к вашему удаленному хосту.

Терминал, показывающий базовый маршрут трассировки к небольшому VPS.

Кончик: Узнайте, как проверить локальный интернет-шлюз, выполнив определение IP-адреса вашего маршрутизатора.

Отправка пакетов с пользовательским TTL в Traceroute

Хотя для базового использования достаточно использовать только трассировку, вы также можете настроить работу программы с помощью флагов. Это может быть полезно, особенно если вы выполняете сортировку своей сети.

Одна из наиболее распространенных настроек трассировки — изменение количества пакетов, отправляемых на шлюз. Для этого используйте -q флаг, за которым следует количество пакетов, которые вы хотите отправить за запрос:

traceroute -q1 ubuntu.myvpsserver.top

Вы также можете использовать -N флаг, за которым следует «1», чтобы явно отключить одновременные запросы пакетов. Это полезно, если у вас есть шлюзы, которые ограничивают скорость передачи UDP-пакетов с коротким TTL.

Терминал, показывающий трассировку с отключенной одновременной передачей пакетов.

Наконец, вы также можете изменить значение TTL по умолчанию для трассировки. Для этого добавьте -f флаг, за которым следует TTL, который вы хотите для своего первого пробного пакета.

Терминал, показывающий трассировку, в которой программа пропускает первые два шлюза.

Изменение протокола Traceroute в Linux

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

Чтобы исправить это, вы можете использовать -T флаг для запуска трассировки с использованием простых пакетов TCP SYN.

Терминал, показывающий маршрут трассировки, где программа использует пакет TCP SYN вместо UDP.

С другой стороны, вы также можете заставить трассировку использовать пакет ICMP ECHO, если шлюз назначения ограничивает только UDP:

sudo traceroute -I myvpsserver.top

Изменение интерфейса и порта в Traceroute

Traceroute также поддерживает пользовательские сетевые интерфейсы. В этом случае трассировка будет использовать другую сетевую карту на вашем компьютере для проверки пути пакета.

Для этого запустите программу с командой -i флаг, за которым следует имя устройства вашего интерфейса.

traceroute -i enp1s0 myvpsserver.top

Примечание: Вы можете найти доступные сетевые интерфейсы для вашего компьютера, запустив ifconfig -s | awk '{print $1}'.

Помимо этого, вы можете использовать -p флаг, указывающий начальный номер порта, который трассировка будет использовать для проверки UDP:

traceroute -p34543 myvpsserver.top

Наконец, -p Флаг также меняет свое поведение в зависимости от используемого вами протокола. Сопряжение с -I установит -p значение в качестве начального порядкового номера ICMP вместо порта назначения.

Терминал, показывающий трассировку с использованием ICMP ECHO с пользовательским порядковым номером ICMP.

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

Между тем, вы также можете узнать больше о более высоких уровнях OSI, таких как DNS, использование инструмента копания в Linux.

Все изменения и скриншоты Рамсеса Реда.

Подписывайтесь на нашу новостную рассылку!

Наши последние руководства будут доставлены прямо на ваш почтовый ящик.

Arch Linux лучше Ubuntu?
Arch Linux лучше Ubuntu?

Arch Linux и Ubuntu - два основных игрока в мире Linux. У обоих есть огромная фан-база, и многие ...

4 лучших менеджера загрузки для пользователей Linux
4 лучших менеджера загрузки для пользователей Linux

Пытаетесь организовать загрузку файлов или вдруг потеряете соединение при загрузке на 99%? Если н...

Как установить Kodi в Linux
Как установить Kodi в Linux

Когда дело доходит до потоковой передачи мультимедиа, нет лучшего плеера, чем Kodi. Он может тран...