Ping
Ping - это простая, широко используемая кроссплатформенная сетевая утилита для проверки доступности хоста в сети Internet Protocol (IP). Она работает путем отправки серии сообщений запроса эха протокола управления интернетом (ICMP) на целевой хост и ожидания ответа (или эхо-ответа ICMP).
Вы можете запустить тест ping, чтобы установить, может ли ваш компьютер связываться с другим компьютером (целевым хостом); это поможет вам определить:
- Доступен ли целевой хост (активен) или нет.
- Измерить время, за которое пакеты доходят до целевого хоста и возвращаются обратно на ваш компьютер (время задержки (rtt) в общении с целевым хостом) и
- Потери пакетов выражаются в процентах.
Результатом является список ответов от целевого хоста вместе с временем, затраченным на последний пакет, чтобы дойти до целевого хоста и вернуться на ваш компьютер.
Также показывается статистическое резюме теста, обычно включающее количество переданных и полученных пакетов, процент потери пакетов; минимальное, максимальное и среднее время задержки и стандартное отклонение среднего (mdev). В случае неудачного теста ping вы увидите сообщения об ошибках в качестве выходных данных.
Примеры команд ping в Linux
В этой статье показано несколько практических примеров команд ping для проверки доступности хоста в сети.
Ping Domain или IP-адрес
Вы можете запустить простой тест ping, чтобы увидеть, доступен ли целевой хост 3err0.ru или нет. Вы также можете использовать IP-адрес вместо имени домена, как показано.
>ping 3err0.ru
или
ping 109.248.207.129
Пример вывода:
ping 3err0.ru
Обмен пакетами с 3err0.ru [109.248.207.129] с 32 байтами данных:
Ответ от 109.248.207.129: число байт=32 время=39мс TTL=58
Ответ от 109.248.207.129: число байт=32 время=33мс TTL=58
Ответ от 109.248.207.129: число байт=32 время=37мс TTL=58
Ответ от 109.248.207.129: число байт=32 время=32мс TTL=58
Статистика Ping для 109.248.207.129:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 32мсек, Максимальное = 39 мсек, Среднее = 35 мсек
Из результатов вышеуказанной команды следует, что ping-тест прошел успешно и не было потеряно ни одного пакета. Важно обратить внимание на время в конце каждого ответа в выводе ping-теста.
Предположим, вы проводите тестирование ping на своих серверах, тогда значение времени здесь имеет большое значение, в зависимости от типа приложения, которое вы запускаете на сервере.
Например, если у вас есть веб-приложение, где один запрос пользователя приводит к выполнению множества запросов к базе данных для генерации результатов на пользовательском интерфейсе, то меньшее время ping для этого конкретного сервера означает, что больше данных передается без задержки, и наоборот.
Echo Request
Это параметр для команды ping, который используется для отправки серии запросов ICMP ECHO_REQUEST на целевой хост и ожидания ответа ICMP ECHO_REPLY (или ECHO_RESPONSE).
В Linux можно указать количество ECHO_REQUEST, которые должны быть отправлены, после чего ping завершится, используя флаг -c, как показано (в этом случае ping-тест остановится после отправки 5 пакетов).
В Windows аналогичная функциональность реализуется с помощью параметра -n, например, чтобы отправить 5 пакетов, нужно использовать команду ping с параметром "-n 5".
Пример вывода:
ping -c 5 3err0.ru
PING 3err0.ru (109.248.207.129) 56(84) bytes of data.
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=1 ttl=61 time=97.1 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=2 ttl=61 time=97.1 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=3 ttl=61 time=96.7 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=4 ttl=61 time=96.8 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=5 ttl=61 time=96.9 ms
--- 3err0.ru ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 9ms
rtt min/avg/max/mdev = 96.708/96.920/97.089/0.421 ms
Установка интервала времени и таймаута
Флаг -i позволяет установить интервал времени в секундах между отправкой каждого пакета при использовании команды ping, по умолчанию этот интервал равен одной секунде.
В Windows аналогичный параметр для установки интервала между отправкой пакетов называется -w, и он устанавливает время ожидания ответа на каждый пакет, в миллисекундах. Например, чтобы установить интервал в 2 секунды в Windows, нужно использовать команду ping с параметром "-w 2000".
ping -i 3 -c 5 3err0.ru
PING 3err0.ru (109.248.207.129) 56(84) bytes of data.
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=1 ttl=61 time=96.9 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=2 ttl=61 time=97.1 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=3 ttl=61 time=96.7 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=4 ttl=61 time=96.7 ms
64 bytes from 109.248.207.129.yadc.ru (109.248.207.129): icmp_seq=5 ttl=61 time=97.2 ms
Атака DoS с помощью флуд-пинга, также известная как "Ping of Death"
Для тестирования отклика сети в условиях высокой нагрузки можно использовать так называемую "флуд-пинг" (ping flooding), при которой запросы отправляются максимально быстро с помощью ключа -f. Однако этот метод может быть использован для запуска атаки типа DoS (отказ в обслуживании) и поэтому доступен только для пользователя root. Если вы не являетесь root, используйте команду sudo для получения прав root.
sudo ping -f 3err0.ru
или с указанием интервала времени
sudo ping -f -i 3 3err0.ru
Пингование широковещательного адреса в локальной сети (LAN)
Вы можете включить широковещательный пинг, используя опцию -b, которая получит ответ от всех IP-адресов, подключенных к вашей локальной сети (LAN).
ping -b 192.168.0.0
Установка значения TTL
Чтобы ограничить количество сетевых прыжков (TTL - время жизни) для пакетов, используйте опцию -t. Вы можете установить любое значение между 1 и 255; различные операционные системы устанавливают различные значения по умолчанию.
Каждый маршрутизатор, который получает пакет, вычитает из счетчика, по крайней мере, единицу, и, если счетчик по-прежнему больше нуля, маршрутизатор пересылает пакет на следующий узел. В противном случае он отбрасывает его и отправляет ICMP-ответ обратно на ваш компьютер.
В Windows параметр для установки значения TTL в пинге также называется "-t".
ping -t 10 3err0.ru
Установка размера пакета
Размер пакета по умолчанию должен быть достаточным для тестирования ping, однако, вы можете изменить его, чтобы соответствовать вашим конкретным потребностям тестирования. Вы можете указать размер полезной нагрузки в количестве байт, используя опцию -s, что приведет к общему размеру пакета, равному указанному значению плюс 8 дополнительных байт для заголовка ICMP.
Для Windows параметр -l используется для установки размера пакета в байтах.
ping -s 1000 3err0.ru
Установка Ping Preload
Если установлен параметр preload, ping отправляет столько пакетов, не дожидаясь ответа. Обратите внимание, что только root может выбрать preload больше 3, в противном случае используйте команду sudo, чтобы получить права root.
На Windows этот параметр не поддерживается.
sudo ping -l 5 3err0.ru
Установка времени ожидания
Также можно установить время ожидания ответа в секундах с помощью опции -w (для Windows) или -W (для Linux), как показано в примере.
ping -W 10 3err0.ru
Отладка ICMP-пакетов
Опция -d позволяет включить отладку деталей IP-пакетов, как показано.
ping -d 3err0.ru
Подробный вывод
Вы можете включить подробный вывод, используя флаг -v, как показано ниже.
ping -v 3err0.ru
Проверка доступности порта
Вы можете проверить доступность определенного порта на хосте, используя опцию -p в команде ping. Например, для проверки доступности порта 80 на хосте www.google.com, вы можете использовать следующую команду:
ping -p 80 3err0.ru
Изменение источника IP-адреса
Вы можете изменить источник IP-адреса, используемый при отправке запросов ping, с помощью опции -I.
ping -I 192.168.1.10 3err0.ru
Использование IPv6
Вы также можете использовать команду ping для проверки доступности хоста по IPv6-адресу. Для этого используйте опцию -6. Например, чтобы проверить доступность хоста по IPv6-адресу fe80::1, вы можете использовать следующую команду:
ping -6 fe80::1
No Comments