Линукс как проверить пинг

Мониторинг сети в Linux (ping, traceroute, mtr)

Существует несколько хороших утилит, позволяющих искать неисправности в сети на уровне TCP/IP. Большинство из них выдает низкоуровневую информацию, поэтому для того чтобы пользоваться ими, нужно хорошо понимать принципы работы протоколов TCP/IP и маршрутизации. В этой статье мы рассмотрим основные инструменты поиска неисправностей в сети: утилитами ping, traceroute и mtr.

Утилита ping

Проверка доступности компьютера

Утилита ping предназначена для того, чтобы при помощи отправки ICMP пакетов убедиться в работоспособности хоста. Команда ping посылает запрос (ICMP ECHO_REQUEST) конкретному компьютеру и фиксирует поступающие ответы (ICMP ECHO_RESPONSE). Её можно применять для работоспособности отдельных компьютеров и сегментов сети. В обработке ее запроса участвуют таблицы маршрутизации, физические компоненты сетей и сетевые шлюзы, поэтому для достижения успешного результата сеть должна быть в более или менее рабочем состоянии. Если команда не работает, можно быть совершенно уверенным в том, что более сложные средства тем более не функционируют. Однако это правило неприменимо в сетях, где брандмауэры блокируют эхо-запросы ICMP. Убедитесь в том, что брандмауэр не препятствует работе команды ping, прежде чем подозревать, что зондируемый компьютер игнорирует эту команду. В конце концов, отключите на короткое время брандмауэр для проверки работоспособности сети.

Если не задан аргумент «число пакетов», команда ping работает в бесконечном цикле. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию .

Например, пропингуем neoserver.ru (это имя хоста):

Информация о компьютере neoserver.ru включает его IP-адрес, порядковый номер ответного ICMP-пакета и полное время прохождения пакета. Полученные результаты свидетельствуют о том, что компьютер neoserer.ru работает и подключен к сети.

Min — минимальное время ответа хоста, кторому был отправлен запрос.

Avg среднее время ответа хоста, кторому был отправлен запрос

Max максимальное время ответа хоста, кторому был отправлен запрос.

Ещё вы увидите TTL — определяет максимальное количество хопов (то есть прыжок, участок между маршрутизаторами), которые пакет может пройти. Наличие этого параметра не позволяет пакету бесконечно ходить по сети.

В ОС Linux, как уже было сказано выше, команда ping без дополнительных параметров будет пинговать заданный хост бесконечно. Чтобы отправить, например, 10 запросов, необходимо добавить ключ :

В итоге, мы видим, что было отпралено 10 запросов и выведен результат.

Другие примеры задействования разын ключей:

Не резолвить имена адресов, выводить только ip-адреса

Завершение работы ping по заданному времени (тут 5 секунд)

Установить размер отправляемых пакетов в 1000 байт

Увеличить интервал времени пинга на 3 секунды

Утилита traceroute

Каждый пакет проходит на своем пути определенное количество узлов, пока достигнет своей цели. И, как мы уже знаем, каждый пакет имеет свое время жизни. Это количество узлов, которые может пройти пакет перед тем, как он будет уничтожен. Этот параметр записывается в заголовке TTL, каждый маршрутизатор, через который будет проходить пакет уменьшает его на единицу. При TTL=0 пакет уничтожается, а отправителю отсылается сообщение Time Exceeded.

Команда traceroute linux использует UDP пакеты. Она отправляет пакет с TTL=1 и смотрит адрес ответившего узла, дальше TTL=2, TTL=3 и так пока не достигнет цели. Каждый раз отправляется по три пакета и для каждого из них измеряется время прохождения. Пакет отправляется на случайный порт, который, скорее всего, не занят. Когда утилита traceroute получает сообщение от целевого узла о том, что порт недоступен трассировка считается завершенной.

Синтаксис утилиты не сложный:

Адресом узла может служить как IP адрес, так и доменное имя. Основные опции:

Для примера, выпоним трасировку к ресурсу yandex.ru:

В итоге, пакет прошел через 6 узлов перед тем, как дойти до указанного хоста. На каждый узел отправлялось по три пакета и для каждого из них было засечено время прохождения. И если на одном из узлов возникнет проблема, теперь вы будете знать на каком.

Читайте также:  Windows 2003 x64 key

Иногда, вместо одного узла вы можете видеть звездочки. Это значит, что шлюзы либо не высылают нам ICMP с сообщением «time exceeded», либо у их сообщений слишком маленький TTL и оно нас не достигает. В точности нельзя сказать, что происходит на самом деле, но ясно, что по какой-то причине хост не захотел нам отвечать:

Бывает, что трассировка с помощью UDP не работает, это может произойти потому, что фаервол блокирует все лишние пакеты. Можно воспользоваться ICMP с помощью опции -I:

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

Утилита MTR

MTR – это альтернатива программе traceroute. Объединяя функции ping и traceroute, mtr позволяет постоянно опрашивать удаленный сервер и отслеживать изменения задержки и производительности с течением времени.

Синтаксис утилиты также несложный:

Вывод похож на traceroute, но mtr имеет существенное преимущество – ее вывод постоянно обновляется. Это позволяет собирать средние показатели, а также отслеживать тенденции и изменения производительности сети. Как и с утилитой ping, mtr будет работать бесконечно. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию .

Источник

Команда ping в Linux

Всем знакомы ситуации, когда интернет на компьютере неожиданно разрывается, такое поведение можно наблюдать при использовании ADSL модемов, Wifi на большом расстоянии, GSM и других подобных ненадежных технологий. Быстро выяснить есть ли на компьютере интернет можно с помощью утилиты ping.

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

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

Утилита ping — это очень простой инструмент для диагностики сети. Она позволяет проверить доступен удаленный хост или нет и все. Для этого утилита проверяет, может ли хост отвечать на сетевые запросы с помощью протокола ICMP.

Надеюсь, не нужно говорить, что все данные по сети передаются в виде небольших пакетов. Программа передает небольшой пакет с данными ICMP и ожидает получить обратно пакет ответа, если получает, то считается что удаленный узел доступен. ICMP или Internet Control Message Protocol — это надстройка над протоколом IP, которая используется для передачи служебных сообщений и сообщений и ошибках.

Протокол ICMP может передавать только два типа пакетов — это сообщения с отчетами про ошибки и сообщения запросов. В свою очередь, сообщения запросов делятся на:

  • Сообщение эхо-запрос;
  • Сообщение эхо-ответ.

Попытаемся разобраться что делает команда ping. Итак, когда вы отправляете запрос ping удаленному узлу, утилита устанавливает для каждого пакета уникальный идентификатор, а также TTL и время отправки пакета. Если хост доступен, он отправляет ответ, на основе времени отправки утилита может вычислить время прохождения пакета туда и обратно. Затем отправляется следующий пакет. В конце рассчитывается общее количество отправленных и принятых пакетов, процент потерь и другие данные.

Команда Ping

Теперь нам осталось немного попрактиковаться. Но перед тем, как мы перейдем к практике давайте рассмотрим синтаксис команды и ее опции. Синтаксис довольно прост:

$ ping опции адрес_узла

Формат команды ping очень прост. В качестве адреса узла можно передавать как ip адрес, так и доменное имя. Опции настраивают поведение утилиты. Рассмотрим основные из них:

  • -4 — использовать только ipv4 (по умолчанию);
  • -6 — использовать только ipv6;
  • -A — адаптивный режим, время между отправками пакета адаптируется к времени передачи и приема пакета, но не меньше чем 200мс;
  • -b — разрешить ping широковещательного адреса;
  • — количество пакетов, которые нужно отправить;
  • -D — выводить время в виде UNIX timestamp;
  • -f — режим флуда, в этом режиме пакеты передаются без задержек, может использоваться для совершения DoS атак на отдельные узлы. Количество точек, которые выводит утилита обозначает количество потерянных пакетов;
  • -i — интервал в секундах между отправкой пакетов;
  • -I — использовать этот сетевой интерфейс для отправки пакетов;
  • -l — режим перегрузки, отправляется очень много пакетов и система не следит за ответными пакетами;
  • -n — не получать домены для ip адресов;
  • -r — игнорировать таблицы маршрутизации и отправить пакет на указанный интерфейс;
  • -s — размер одного пакета;
  • -t — установить TTL вручную;
  • -v — более подробный вывод.
Читайте также:  Не могу включить службу центра обеспечения безопасности windows

Теперь, когда мы рассмотрели основные параметры команды ping и ее синтаксис, пришло время практики, дальше поговорим о том, как сделать ping определенного узла в Linux.

Как пользоваться Ping?

Для проверки работоспособности сети часто используется программа ping любого сайта, который всегда доступен, например, google.com или еще проще и короче ya.ru. Вам будет достаточно передать утилите в параметрах этот адрес, она сама найдет ip и сделает все нужное:

Как я и писал выше, для каждого пакета выводится уникальный идентификатор icmp_seq, количество узлов до целевого узла ttl и время, потраченное на доставку пакета time. Чтобы остановить ping нажмите сочетание клавиш Ctrl+C. В конце утилита вывела общую статистику:

  • packets transmitted — отправлено пакетов;
  • received — получено пакетов;
  • packet loss — процент потерянных пакетов;
  • time — обще время работы;
    rtt min/avg/max/mdev — минимальное время/среднее время/максимальное время/квадратичное отклонение.

Если выполнение команды ping не остановить, то пакеты могут отправляться очень долгое время, это создает дополнительную нагрузку на сервер и поэтому не желательно. Вы можете сразу в вызове команды ограничить количество отправляемых пакетов с помощью опции -c:

Точно так же как мы выполняем ping для домена, можно указать ip адрес напрямую. Это позволяет проверить есть ли сеть когда неверно настроены серверы DNS. Например:

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

По умолчанию, в обычном режиме, каждый следующий пакет отправляется, когда получен ответ на предыдущий. Но вы можете сами установить интервал между отправкой пакетов -i:

ping -i 0.2 losst.ru

Здесь программа ping выполняет так званный, настраиваемый флуд, вы указываете с какой интенсивностью нужно отправлять пакеты. С помощью опции -D вы можете увидеть Unix Timestamp для каждого сообщения:

Выводы

В этой статье мы рассмотрели что такое команда ping в linux, как ее использовать основные параметры и методы применения. Этот очень простой инструмент можно применять для тестирования неполадок сети и их исправления. В этом плане утилита может стать незаменимой.

Источник

Команда Ping в Linux с примерами

Ping в основном используется для проверки доступности удаленного хоста или нет. Удаленным хостом может быть веб-сервер, ваш маршрутизатор или система в вашей локальной сети.

Как работает ping? Фактически он отправляет небольшие ICMP- пакеты на удаленный хост и ожидает ответа. Если хост включен, вы должны увидеть ответ.

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

Итак, как вы используете Ping в Linux? Каковы различные параметры команды Ping? Позвольте мне показать вам некоторые из общих способов использования команды Ping.

Вы знали? Команда Ping правильно написана как PING и обозначает Packet Internet Groper.

Использование команды ping в Linux

Вы можете использовать команду ping с IP-адресом или именем хоста/URL.

Предположим, мы пингуем Google. Он отправит ICMP-пакеты размером 56 байтов на google.com.

Вы должны вручную остановить команду ping, иначе она продолжит выполняться. Вы можете использовать Ctrl + C терминала ярлык, чтобы остановить команду ping в Linux, как мы сделали в приведенном выше примере.

Когда вы останавливаете команду ping , она представляет вам сводку передачи. Вы можете увидеть статистику, такую как количество переданных ICMP-пакетов, принятых пакетов, потерянных пакетов и т. д.

Теперь, когда вы знаете, как пинговать в Linux, давайте посмотрим на некоторые другие опции команды ping.

Читайте также:  Windows 10 пропадает английский язык

Отправить только N количество пакетов

Если вы не хотите, чтобы команда ping выполнялась вечно без остановки вручную, вы можете использовать опцию -c .

При этом вы можете указать количество пакетов, которые команда ping должна отправить перед автоматической остановкой.

Отправить пинг только на ограниченное время

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

Например, если вы хотите отправлять ping-пакеты всего за 5 секунд, вы можете использовать его следующим образом:

Изменить интервал времени между двумя пингами

По умолчанию ping отправляет пакеты с интервалом в одну секунду. Вы можете изменить этот интервал времени с помощью опции -i .

Для отправки ICMP-пакетов с интервалом в 3 секунды вы можете использовать команду Ping, например:

Вы также можете уменьшить временной интервал между пингами.

Однако, если вы попытаетесь уменьшить временной интервал ниже 0,2 секунды (200 мс), вы увидите ошибку:

Не беспокойтесь Вы все еще можете пропинговать с интервалом менее 200 мс. Но для этого нужно использовать пинг с правами root.

Изменить размер пакета

Размер пакета ICMP по умолчанию, отправляемого Ping, составляет 56 байтов. Это также можно изменить с помощью опции -s .

DoS-атака с пингом, который также называется Ping of Death.

Одна из самых простых атак DoS – Ping of Death. При такого рода атаках злоумышленник отправляет большое количество запросов ping за очень короткий промежуток времени. Если сервер не настроен должным образом, он потерпит крах при обработке запроса ping, и веб-сайт закроется.

Команда ping имеет встроенную функцию для этого. Это называется ping flooding , и этого можно достичь с помощью опции -f . Вам понадобятся права sudo для запуска этой опции с нулевым интервалом.

Когда вы запустите эту команду, вы увидите, что некоторые точки появляются и исчезают в выходных данных. Каждый ‘.’ обозначает запрос, тогда как ответом является возврат (поэтому точки исчезают).

Этот параметр проверки связи полезен при тестировании нагрузочной способности сервера.

Бонусный совет: отправьте звуковые сигналы

Вы можете отправлять звуковые сигналы с опцией -a . При этом вы услышите звуковой сигнал для каждого успешного пинга.

Обратите внимание, что не все дистрибутивы Linux настроены на создание звукового сигнала. Мы проверили это на Ubuntu 18.04, и могли слышать звуковой сигнал.

Устранение неисправностей команды Ping

До сих пор мы видели успешные примеры команды ping. Но это не произойдет все время. Давайте рассмотрим некоторые распространенные ошибки, которые вы можете увидеть, и поймите причину этих ошибок.

Нет ответа на пинг

Вы можете заметить, что некоторые хосты не отвечают на запрос ping. Кажется, что команда ping зависла, потому что нет ответа. Команда просто остается там, она даже не истекает.

Если вы прервете команду ping, вы увидите странную статистику.

Как видите, было передано 100 пакетов, но ни на один из них не было получено ответа.

Скорее всего, потому что некоторые серверы отбрасывают пакеты ICMP. Это мера безопасности, чтобы избежать ping-флудов.

Хост назначения недоступен

Эта ошибка может возникать по одной из двух причин:

  • либо в локальной системе нет маршрута к удаленному хосту;
  • или маршрутизатор конечной точки не имеет маршрута к удаленному хосту.

Если вы видите только ошибку «целевой хост недоступен», это означает, что вашей системе не удалось найти маршрут к удаленному хосту.

С другой стороны, если вы видите ошибку в части ответа «Reply from », это означает, что пакет был отправлен за пределы вашей сети, но он не смог достичь пункта назначения.

Иногда серверы также блокируют трафик ICMP, который может показать эту ошибку.

Время ожидания запроса

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

Готовы пинговать?

Мы надеемся, что эта статья помогла вам лучше понять команду ping в Linux.

Если у вас есть вопросы или предложения, пожалуйста, оставьте сообщение в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью