В этой статье мы расскажем, что такое утилита Ping, как пинговать сайт и какие параметры могут быть вам полезными при работе с этой командой.
- Команда Ping
- Синтаксис команды Ping в Linux
- Синтаксис команды Ping в Windows
- Как проверить пинг через командную строку
- Изменение интервала между отправкой пакетов в команде Ping
- Непрерывная отправка пакетов
- Изменение размера пакета
- Установка времени ожидания на получение пакета
- Тестирование нагрузки
- Вывод статистики ping
- Какими могут быть ответы на эхо-запросы ping
Команда Ping
Ping – это утилита командной строки, которая используется для проверки доступности узла в сети и измерения времени, необходимого для передачи данных к этому узлу и обратно. Она считается одной из наиболее распространённых и удобных средств диагностики сети.
Как работает и что делает команда Ping:
- Пользователь вводит команду Ping в командной строке, указывая IP-адрес или доменное имя узла, к которому он хочет выполнить проверку доступности.
- Ping создаёт специальный сетевой пакет под названием ICMP (Internet Control Message Protocol), который содержит небольшое количество информации (например, временную метку отправки).
- Сформированный ICMP-пакет отправляется на указанный узел через сеть. В пакете нет данных, но у него есть заголовок, который содержит информацию о типе и коде сообщения, а также идентификатор и последовательный номер.
- После отправки пакета утилита Ping ожидает ответа от узла. Если узел доступен и правильно настроен, он отправит обратно ICMP-сообщение для подтверждения (эхо-ответ).
- При получении эхо-ответа утилита Ping фиксирует время, которое прошло с момента отправки запроса до получения ответа. Это время называется пингом и измеряется в миллисекундах. Пинг также может использоваться для оценки задержки в сети.
- После завершения процесса Ping отображает результаты проверки доступности узла, включая количество отправленных и полученных пакетов, а также среднее время отклика.
Какие функции выполняет команда Ping:
- проверка доступности,
- измерение времени задержки,
- поиск потерянных пакетов,
- трассировка маршрута,
- диагностика сетевых проблем,
- автоматизация мониторинга.
Синтаксис команды Ping в Linux
Где:
- ping – это ключевое слово, которое указывает операционной системе на необходимость запуска утилиты Ping.
- [параметры] – это дополнительные опции, которые можно использовать для настройки утилиты Ping. Например, параметры могут определять количество запросов, размер пакета, интервал между запросами и другие характеристики.
- [адрес-назначения] – это IP-адрес или доменное имя узла, к которому вы хотите выполнить проверку доступности в сети. Если адрес не указан, Ping будет отправлять запросы локально, к собственному устройству – localhost.
Параметры Ping для Linux (Ubuntu)
Важно! В зависимости от дистрибутива Linux параметры могут меняться. Чтобы просмотреть доступные параметры и их описания, можно выполнить команду:
Ниже приведены параметры, которые доступны на Ubuntu 22.04 LTS:
Параметр |
Описание |
---|---|
-a |
Включает звуковой сигнал при получении эхо-ответа от хоста. |
-A |
Включает адаптивный режим, в котором интервал между отправками пакетов корректируется в зависимости от времени их передачи и приёма, при этом не опускаясь ниже 200 миллисекунд. |
-B |
Осуществляет привязку к исходному адресу. |
-c <число> |
Определяет количество отправляемых ICMP эхо-запросов. |
-D |
Добавляет метку времени до каждого эхо-ответа, позволяя отслеживать точное время получения каждого ответа. |
-d |
Устанавливает флаг SO_DEBUG на сокете, который используется для ICMP-запросов, что позволяет получать информацию о состоянии сетевого соединения для целей отладки. |
-f |
Режим непрерывной передачи, при котором пакеты отправляются без каких-либо задержек. Этот режим может быть применён для осуществления DoS-атак на конкретные узлы сети. Количество отображаемых утилитой точек указывает на число потерянных пакетов. |
-h |
Выводит справочную информацию и завершает работу. |
-I <интерфейс> |
Устанавливает сетевой интерфейс для отправки ICMP-запросов. |
-i <интервал> |
Устанавливает интервал между отправкой запросов. |
-L |
Препятствует изменению маршрута пакетов (например, маршрутизации через разные интерфейсы) после начала отправки пакетов. |
-l <число> |
Устанавливает количество отправляемых пакетов до получения первого отклика. |
-m <маркировка> |
Устанавливает метку для каждого отправляемого пакета. |
-M <pmtud opt> |
Указывает режим Path MTU Discovery. Поддерживаемые значения: «do» (вынуждает фрагментацию), «dont» (запрещает фрагментацию), «want» (обычный режим). |
-n |
Позволяет пропустить процесс разрешения DNS-имён в IP-адреса, выводя только числовые адреса. |
-O |
Включает трассировку маршрута, позволяя увидеть изменения в маршрутизации ICMP-пакетов во время работы команды. |
-p <шаблон> |
Определяет шаблон данных для отправки. |
-q |
Тихий режим: выводит только итоговую статистику, а не информацию о каждом пакете. |
-Q <класс> |
Устанавливает класс трафика для отправляемых пакетов. |
-s <размер> |
Устанавливает размер пакета в байтах. |
-S <размер> |
Устанавливает размер буфера отправки сокета. |
-t <TTL> |
Устанавливает TTL (время жизни пакета). |
-U |
Показывает время безответной работы. |
-v |
Включает вербозный режим: выводит подробную информацию о каждом отправленном пакете. |
-V |
Выводит версию Ping и завершает работу. |
-w <время_ожидания> |
Определяет время ожидания до завершения выполнения команды. |
-W <время_ожидания> |
Устанавливает максимальное время ожидания ответа в секундах. |
-4 |
Принудительно использует протокол IPv4 для отправки запросов. |
-b |
Разрешает пинг на широковещательный адрес. |
-R |
Включает запись маршрута в пакеты. |
-T <временная_метка> |
Устанавливает тип метки времени в пакетах. Доступные опции: «tsonly» (только метки времени), «tsandaddr» (метки времени и адреса) и «tsprespec» (заранее заданные метки времени). |
-6 |
Принудительно использует протокол IPv6. |
-F <метка_потока> |
Устанавливает метку потока для отправляемых пакетов. Метка потока используется в IPv6 для обозначения пакетов принадлежащих конкретному потоку данных |
-N <nodeinfo opt> |
Выбирает тип информации об узле для IPv6 пакетов. Доступные значения: «nodeaddr» (запрашивает адреса узла), «name» (запрашивает имя узла). |
Синтаксис команды Ping в Windows
Чтобы получить справку о командах Ping в командной строке (cmd), выполните следующую команду:
Это позволит вывести список доступных параметров и их описания для команды Ping.
Параметры Ping для Windows
Параметр |
Описание |
|
---|---|---|
-t |
Постоянно проверяет связь с указанным узлом, продолжая отправлять запросы, пока пользователь не прервёт процесс. Для отображения статистики и продолжения проверки нажмите клавиши CTRL+BREAK; для завершения нажмите CTRL+C. |
|
-a |
Позволяет отображать адреса в имена узлов в результатах проверки связи. |
|
-n <число> |
Устанавливает количество запросов проверки связи, отправляемых на узел. |
|
-l <размер> |
Определяет размер буфера данных для отправки. |
|
-f |
Включает флаг, который предотвращает фрагментацию пакетов (для IPv4). |
|
-i <TTL> |
Устанавливает максимальное количество прыжков (TTL) для пакетов. |
|
-v <TOS> |
Устанавливает тип обслуживания (TOS) для пакетов (только IPv4). |
|
-r <число> |
Определяет количество записей маршрутизации для отслеживания (только IPv4). |
|
-s <число> |
Устанавливает временную метку для определенного количества прыжков (только IPv4). |
|
-j <список_узлов> |
Позволяет выбрать свободный маршрут через указанный список узлов (только IPv4). |
|
-k <список_узлов> |
Указывает конкретный маршрут через указанный список узлов (только IPv4). |
|
-w <время_ожидания> |
Устанавливает время ожидания ответа от каждого пакета в миллисекундах. |
|
-R |
Использует заголовок маршрута для проверки и обратного маршрута (только IPv6). |
|
-S <адрес_источника> |
Устанавливает адрес источника для отправляемых пакетов. |
|
-c секция |
Устанавливает идентификатор секции маршрутизации. |
|
-p |
Позволяет проверить связь с сетевым адресом поставщика виртуализации Hyper-V. |
|
-4 |
Принудительно использует протокол IPv4 для проверки связи. |
|
-6 |
Принудительно использует протокол IPv6 для проверки связи. |
Как проверить пинг через командную строку
- Чтобы проверить доступность сервера, откройте терминал или командную строку.
- Если у вас Windows, то зажмите сочетание клавиш Win + R, введите «cmd» и нажмите Enter. Если вы пользователь Linux, откройте терминал или воспользуйтесь горячими клавишами Ctrl+Alt+T.
- Открыв командную строку, введите «ping» и адрес или доменное имя целевого сервера. Например:
- После ввода команды нажмите Enter. Начнётся отправка эхо-запросов к указанному серверу. По мере получения ответов вы увидите информацию о времени отклика и потерянных пакетах. Процесс продолжится до тех пор, пока вы не прервёте его вручную (обычно с помощью Ctrl+C).
В ответе вы увидите набор строк с информацией о времени отклика от целевого устройства или сайта, количество отправленных и полученных пакетов, а также процент потерь пакетов. Если все пакеты успешно доставлены и получены обратно, это означает, что связь с целевым устройством или сайтом установлена.
Изменение интервала между отправкой пакетов в команде Ping
Общий синтаксис:
Интервал между отправкой пакетов в команде Ping определяет время задержки между каждой последовательной отправкой эхо-запроса к целевому узлу в сети. Устанавливая этот интервал, пользователь может контролировать частоту отправки пакетов и, таким образом, регулировать нагрузку на сеть и скорость выполнения проверки связи.
Настройка интервала между отправкой пакетов может быть полезной в различных сценариях сетевой диагностики и тестирования. Например, при тестировании надёжности и производительности сети можно увеличить интервал для симуляции условий реальной работы сети с более низкой интенсивностью трафика. Также уменьшение интервала может помочь выявить возможные проблемы с задержкой или потерей пакетов в сети.
По умолчанию команда Ping отправляет пакеты к целевому хосту каждую секунду. Однако при необходимости вы можете изменить это время. Чтобы настроить интервал между отправкой эхо-запросов, используйте параметр «-i» и укажите количество секунд, которое вы хотите задать.
Например:
Теперь эхо-запросы будут отправляться каждые 10 секунд к целевому хосту sweb.ru.
Важно! Чтобы задать интервал отправки меньше 0.2 секунды, необходимо иметь привилегии суперпользователя – sudo.
Непрерывная отправка пакетов
Общий синтаксис:
Непрерывная отправка пакетов в команде Ping подразумевает постоянную передачу эхо-запросов к целевому узлу без остановки. Для этого используется параметр -t, который указывает утилите Ping отправлять эхо-запросы бесконечно до тех пор, пока процесс не будет прерван пользователем. Он позволяет непрерывно мониторить состояние связи с целевым узлом в реальном времени.
Непрерывная отправка пакетов особенно полезна для длительных тестов сетевой связи, мониторинга стабильности соединения или отслеживания изменений в производительности сети в течение продолжительного времени. Этот режим также позволяет оперативно обнаруживать и реагировать на возможные сбои или проблемы сети.
Для запуска непрерывной отправки пакетов достаточно выполнить команду Ping с опцией -t и указать IP-адрес или доменное имя целевого узла. Например:
Команда запустит бесконечный пинг к узлу sweb.ru до тех пор, пока пользователь не прервёт выполнение команды.
Чтобы завершить его, зажмите сочетание клавиш Ctrl+C. После этого перед вами появится статистика отправленных пакетов.
Изменение размера пакета
Общий синтаксис:
Изменение размера пакета в команде Ping позволяет пользователю настраивать объём данных, отправляемых в каждом эхо-запросе к целевому узлу. Для этого используется опция -s.
Например, если вам нужно отправить пакет размером 100 байт, команда будет выглядит следующим образом:
Увеличение размера пакета позволяет проверить работу сети с большими объемами данных и выявить возможные проблемы с фрагментацией или потерей пакетов при передаче больших файлов. А уменьшение размера пакета может помочь определить проблемы сетевой пропускной способности или маршрутизации пакетов в сети с ограниченной пропускной способностью.
Настройка размера пакета позволяет пользователю гибко адаптировать процесс проверки связи под конкретные требования и условия сетевого окружения, обеспечивая более точные и информативные результаты тестирования.
Установка времени ожидания на получение пакета
Общий синтаксис:
Установка времени ожидания на получение пакета в команде Ping осуществляется с помощью параметра -W. Этот параметр позволяет указать максимальное время ожидания ответа на эхо-запрос от целевого узла.
Например:
Теперь команда Ping будет ожидать ответа на каждый эхо-запрос в течение 10 секунд. Если в течение этого времени ответ от целевого узла не будет получен, то Ping продолжит отправлять следующие эхо-запросы.
Установка времени ожидания позволяет контролировать время, в течение которого команда Ping будет ждать ответа от целевого узла, что может быть полезно при проверке связи с узлами с различной производительностью или при обнаружении сетевых проблем.
Ограничение количества эхо-запросов
Общий синтаксис:
Ограничение количества эхо-запросов в утилите Ping позволяет пользователю указать конкретное количество пакетов, которые должны быть отправлены к целевому узлу, прежде чем утилита завершит свою работу. Для этого используется опция -c, за которой следует число пакетов, которые вы хотите отправить.
Например, команда
означает отправку только 10 эхо-запросов к указанному хосту. После отправки указанного количества пакетов утилита Ping завершит свою работу и выведет сводную статистику о произвёденных запросах.
Это полезная опция для быстрой проверки связи с целевым узлом или сайтом, когда вам необходимо ограничить количество отправляемых пакетов.
Тестирование нагрузки
Важно! Чтобы протестировать нагрузку, у вас должны быть привилегии суперпользователя – sudo.
Общий синтаксис:
Тестирование нагрузки с Ping позволяет проверить устойчивость сетевого оборудования и сети в целом путём создания высокой нагрузки на сеть.
Например, выполнение команды «ping -f sweb.ru» приведёт к отправке сотен тысяч запросов в секунду к указанному хосту, в зависимости от производительности сетевого оборудования и пропускной способности канала связи. Такой поток запросов будет значительной нагрузкой на сеть и сетевое оборудование, что позволяет оценить его производительность и устойчивость к высоким нагрузкам.
Тестирование нагрузки с помощью команды Ping – это полезный метод для выявления уязвимых мест в сети (перегруженные маршрутизаторы или сетевые адаптеры), а также для оценки эффективности механизмов обработки трафика и балансировки нагрузки в сети.
Вывод статистики ping
Общий синтаксис:
Вывод статистики в команде Ping позволяет получить краткую сводку результатов после завершения отправки эхо-запросов. Для этого используется опция -q, которая подавляет вывод информации о каждом отправленном и полученном пакете, оставляя только общую статистику.
Например, выполнение команды «ping -c 5 -q sweb.ru» означает отправку 5 эхо-запросов к указанному хосту «sweb.ru» и выводит только сводную статистику о выполненных запросах после их завершения. Сюда относятся количество отправленных и полученных пакетов, процент потерь и среднее время отклика.
Использование вывода статистики вместо детальной информации о каждом пакете полезно, когда требуется быстро оценить качество связи с целевым хостом, не вдаваясь в подробности каждого эхо-запроса.
Какими могут быть ответы на эхо-запросы ping
При получении эхо-запроса команда Ping может получить различные ответы от целевого устройства, которые отражают его состояние и результаты обработки запроса.
Наиболее распространённые ответы на эхо-запросы:
- Echo Reply (ICMP Type 0) указывает на успешное получение пакета и ответ от целевого устройства. Он подтверждает, что связь с узлом установлена, и устройство работает нормально.
- Destination Unreachable (ICMP Type 3) означает, что целевое устройство или промежуточный маршрутизатор не может доставить пакет до указанного пункта назначения. Этот вывод может быть вызван различными причинами – например, отсутствием маршрута к целевому узлу или блокировкой маршрутизатором.
- Time Exceeded (ICMP Type 11) указывает на то, что время жизни (TTL) пакета истекло до того, как он достиг целевого узла. Обычно это происходит, когда пакет проходит через сетевые узлы и превышает максимальное количество прыжков (TTL), установленное в пакете.