Утилита ping
— инструмент командной строки Linux, используемый для проверки доступности хоста в сети. Эта команда отправляет пакеты эхо-запроса Internet Control Message Protocol (ICMP) на целевой хост и ожидает получения ответных пакетов. После чего инструмент ping
выводит на экран статистику о количестве отправленных, полученных и потерянных пакетов.
В этой статье мы покажем примеры использования утилиты ping
в ОС Linux.
Содержание:
- Проверка Интернет-соединения и доступности локального хоста
- Ограничение количества эхо-запросов
- Установка интервала отправки эхо-запросов
- Изменение размера отправляемых пакетов
- Имитация DDoS-атаки с помощью ping
- Отображение только сводной статистики
- Установка времени ожидания на получение пакета
- Какими могут быть ответы на эхо-запросы ping
- Выводы
Проверка Интернет-соединения и доступности локального хоста
Самый простой метод проверить наличие Интернет-соединения на компьютере — выполнить команду ping
в терминале. В качестве ее аргумента можно задать доменное имя или IP-адрес веб-сайта, который постоянно доступен. Например:
Утилита будет продолжать отправлять и получать пакеты ICMP, пока Вы не прервете ее выполнение, нажав сочетание клавиш Ctrl + c. Давайте детальнее разберем вывод команды ping
:
- Заголовок — строка, указывающая хост, на который отправляются запросы (
blog.sedicomm.com
в данном случае) и соответствующий IP-адрес (172.66.43.169
). Также показывается размер отправляемых пакетов (56 байт в этом примере). - Результаты
ping
для каждого полученного пакета:- размер (64 байта);
- IP-адрес целевого хоста (
172.66.43.169
); icmp_seq
— порядковый номер;ttl
— время жизни (Time to live), оно уменьшается с каждым переходом;time
— время, которое требуется клиенту для отправки запроса и получения ответа от сервера, измеряемое в миллисекундах.
- Сводная статистика:
packets transmitted
— количество отправленных запросов ICMP;packets received
— количество полученных ответов ICMP;% packet loss
— процент потерянных пакетов во время передачи;time
— общее время выполнения сеансаping
;rtt min/avg/max/mdev
— минимальное, среднее, максимальное и стандартное отклонения времени прохождения в обе стороны для всех пакетов.
Также Вы можете узнать, доступен ли определенный хост в локальной сети. Для этого укажите в качестве аргумента ping
имя или IP-адрес нужного узла. Например:
Ограничение количества эхо-запросов
Как мы сказали ранее, по умолчанию утилита ping
работает до тех пор, пока пользователь самостоятельно ее не остановит. Тем не менее, у Вас есть возможность указать команде отправить на хост определенное количество пакетов, после чего утилита завершит свое выполнение. Чтобы это сделать, примените опцию -c
, в качестве аргумента которой напишите нужное число пакетов. Например:
Читайте также: Как заблокировать запросы ICMP Ping для Linux-систем.
На скриншоте видно, что утилита отправила на хост только 5 пакетов ICMP, как мы и указали.
Установка интервала отправки эхо-запросов
Команда ping
по умолчанию отправляет пакеты на хост каждую секунду. Однако, для решения конкретной задачи Вам может понадобиться изменить это время. Чтобы задать значение интервала отправки эхо-запросов, используйте параметр -i
и укажите количество секунд. К примеру:
Изменение размера отправляемых пакетов
Стандартно инструмент ping
отправляет пакет с 56 (84) байтами данных.
Важно: 56 — размер пакета в байтах, а 84 — общий размер эхо-запроса в байтах, дополнительно включающий IP-заголовок (20 байт) и ICMP-заголовок (8 байт).
Вы можете изменить размер пакета. Для этого используйте параметр -s
с размером пакета в байтах. Например:
Имитация DDoS-атаки с помощью ping
Опция -f
команды ping
может использоваться для выполнения flood ping, также известного как атака распределенного отказа в обслуживании (DDoS). Эта опция указывает утилите отправлять большое количество пакетов для перегрузки сетевых ресурсов целевого узла. Тем самым она помогает системным администраторам сымитировать и проанализировать работу сервера / хоста / сайта во время всплеска (резкого увеличения) трафика или DDoS-атаки.
Важно: применять эту опцию может только пользователь с привилегиями root
. Например:
Читайте также: Как установить статический IP-адрес и настроить сеть в Linux.
На скриншоте выше видно, что за 47072 миллисекунды (или 47 секунд) утилита ping
отправила на хост 4741 пакет.
Отображение только сводной статистики
Если Вы не хотите, чтобы команда ping
отображала на экране информацию о каждом пакете эхо-запроса, используйте опцию -q
. Тогда инструмент выведет в терминал только сводною статистику. Для примера:
Установка времени ожидания на получение пакета
Параметр -W
позволяет указать время ожидания для получения ответа на эхо-запрос. Если в течение указанного интервала не получен ответ на один из эхо-запросов, то команда ping
будет ждать следующий пакет.
Например, команда ping -W 10 blog.sedicomm.com
будет ожидать ответ на каждый пакет в течение 10 секунд:
Какими могут быть ответы на эхо-запросы ping
При получении эхо-запроса целевое устройство может ответить несколькими способами, в зависимости от своей настройки, состояния и условий сети. Вот самые распространенные ответы на эхо-запрос:
- Echo Reply (ICMP Type 0) — указывает на то, что целевое устройство успешно получило пакет и ответило на него;
- Destination Unreachable (ICMP Type 3) — означает, что хост или маршрутизатор не может доставить пакет до пункта назначения;
- Time Exceeded (ICMP Type 11) — указывает на то, что значение времени жизни (TTL) пакета истекло до того, как он достиг целевого узла.
Выводы
Утилита ping
— полезный инструмент командной строки Linux для проверки доступности хоста в сети. Мы рассказали, как она работает, и продемонстрировали Вам практические примеры ее использования. Надеемся, что эта статья была полезной для Вас!
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
2 комментария. Оставить новый
Здравствуйте, как работает Ping при обращении к хосту в другой подсети?
Также, как он работает если вы пингуете гугл со своей подсети, если будут прописаны маршруты между вашими подсетями (лучше чтобы это было на маршрутизаторах, а не хостах)