Linux вывод команды ping

Команда 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 — более подробный вывод.
Читайте также:  Сброс пароля linux centos

Теперь, когда мы рассмотрели основные параметры команды 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:

Читайте также:  Linux сделать загрузочный iso

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

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Команда Linux ping

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

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

Команда ping отправляет один или несколько пакетов эхо-запроса ICMP (Internet Control Message Protocol) на указанный IP-адрес назначения в сети и ожидает ответ. Пункт назначения после получения пакета отвечает эхо-ответом ICMP.

Возможности

С помощью этой утилиты можно определить:

  • активен или неактивен удаленный IP-адрес;
  • время задержки туда-обратно при связи с пунктом назначения;
  • есть ли потеря пакетов.

Синтаксис

Опции

DNS-имя или IP-адрес -A Использовать адаптивный пинг -c Остановить после ответов -D Выводить временных меток -d Использовать параметр сокета SO_DEBUG -f Флуд ping -I Имя интерфейса, либо адрес -i N секунд между отправкой каждого пакета -L Подавлять закольцовывание многоадресных пакетов -l Отправить количество пакетов во время ожидания ответов -n Не получать DNS-имена -s Использовать как количество байтов данных для отправки -t Определить время жизни -v Подробный вывод -4 Использовать IPv4 -6 Использовать IPv6

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

Использование без опций

В качестве простейшего примера даём ping для google.com :

oleg@mobile:~:$ ping google.com PING google.com (216.58.214.142) 56(84) bytes of data. 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=1 ttl=119 time=15.9 ms 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=2 ttl=119 time=17.5 ms 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=3 ttl=119 time=12.1 ms 64 bytes from sof02s42-in-f14.1e100.net (216.58.214.142): icmp_seq=4 ttl=119 time=10.5 ms 64 bytes from sof02s42-in-f14.1e100.net (216.58.214.142): icmp_seq=5 ttl=119 time=18.0 ms ^C --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 10.509/14.788/17.966/2.987 ms oleg@mobile:~:$

Утилита преобразовала доменное имя ( google.com ) в IP-адрес ( 216.58.214.142 ) и начала отправлять пакеты ICMP на целевой IP-адрес. Доступный IP-адрес назначения ответил и утилита напечатала строку, содержащую следующие поля:

Читайте также:  Узнать какие ядра установлены linux

Количество байтов данных Значение по умолчанию — 56, что соответствует 64 байтам данных ICMP 64 bytes IP-адрес получателя from fra16s06-in-f142.1e100.net (216.58.214.142) Порядковый номер ICMP для каждого пакета icmp_seq=1 Время жизни ttl=119 Время проверки связи туда-обратно, ms time=15.9 ms

По умолчанию интервал между отправкой нового пакета составляет одну секунду.

Если ответ не возвращается, это означает, что сетевое соединение не установлено. Когда это происходит, это не всегда означает, что IP-адрес назначения не активен. Некоторые хосты могут иметь брандмауэр, который блокирует трафик ICMP или не отвечает на запросы ping .

Как остановить команду ping в Linux

Команда ping будет продолжать отправлять пакеты ICMP на IP-адрес назначения, пока не получит прерывание. Для того чтобы остановить команду, просто нажмите комбинацию клавиш Ctrl+C.

Потери пакетов

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

Ограничение количества пакетов

Команда ping по умолчанию отправляет ICMP-пакеты до получения сигнала прерывания. Для ограничения количества пакетов отправляемых эхо-запросов используется опция -c , за которой следует количество пакетов:

oleg@mobile:~:$ ping -c 3 google.com PING google.com (216.58.214.142) 56(84) bytes of data. 64 bytes from sof02s42-in-f14.1e100.net (216.58.214.142): icmp_seq=1 ttl=119 time=15.3 ms 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=2 ttl=119 time=13.0 ms 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=3 ttl=119 time=16.8 ms --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 12.973/15.029/16.820/1.581 ms oleg@mobile:~:$ 

Теперь прерывание произошло автоматически.

Указание Интернет-протокола

Например, для принудительного использования протокола IPv4, передайте команде опцию -4 :

oleg@mobile:~:$ ping -4 -c 3 google.com PING google.com (216.58.214.142) 56(84) bytes of data. 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=1 ttl=119 time=13.5 ms 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=2 ttl=119 time=12.6 ms 64 bytes from fra16s06-in-f142.1e100.net (216.58.214.142): icmp_seq=3 ttl=119 time=14.9 ms --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 12.610/13.666/14.876/0.931 ms oleg@mobile:~:$ 

Заключение

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

Источник

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