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

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

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

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

Как работает Traceroute?

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

Эти два фактора в сов

Как работает Traceroute?

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

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

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

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

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

Терминал, показывающий базовый маршрут трассировки, где шлюзы постоянно не отвечаю<h2><span id=Какие проблемы с сетью можно решить с помощью Traceroute?рассировку для проверки проблем с задержкой между хостами. Это может быть полезно, если вы хотите узнать, нужен ли вашей локальной сети VPN для обеспечения постоянной низкой задержки при подключении к удаленному компьютеру.

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

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

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

traceroute ubuntu.myvpsserver.top

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

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

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

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

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

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

traceroute -q 1 ubuntu.myvpsserver.top

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

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

" src="https://saintist.ru/wp-content/uploads/2024/05/use-traceroute-diagnose-issues-linux-04-non-simultaneous-probe-sample.jpg" alt="Терминал, показывающий трассировку с отключенной одновременной передачей пакетов.">

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

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

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

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

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

Отправка пакетов с пользовательским TTL в Tracerouteрамма использует пакет 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 -p 34543 myvpsserver.top

<

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

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

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

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

Все изменения и скриншоты Рамсеса Реда.Изменение протокола Traceroute в Linux

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

ПОХОЖИЕ СТАТЬИ

Популярные записи