рекомендации

пятница, 9 апреля 2021 г.

12 практических примеров использования команды Ping в Linux

Ping - это простая, широко используемая кроссплатформенная сетевая утилита для проверки доступности хоста в сети по протоколу IP. Она работает, отправляя серию сообщений ECHO_REQUEST протокола ICMP на целевой хост и ожидая эхо-ответа ICMP (или ECHO_RESPONSE).

Вы можете запустить тест ping, чтобы понять, может ли ваш компьютер связываться с другим компьютером (целевым хостом), она также помогает определить:
  • доступен ли целевой хост (активен) или нет;
  • количество времени, которое требуется пакетам, чтобы добраться до целевого хоста и вернуться на ваш компьютер (время приема-передачи (rtt) при обмене данными с целевым хостом);
  • потеря пакетов, выраженная в процентах.
Ее вывод представляет собой список ответов от целевого хоста, а также время, необходимое для того, чтобы последний пакет достиг целевого хоста и вернулся на ваш компьютер. Она также показывает статистическую сводку теста, обычно включая количество переданных и полученных пакетов, процент потери пакетов, минимум, максимум, среднее время приема-передачи и стандартное отклонение среднего (mdev). В случае сбоя теста ping вы увидите сообщения об ошибках в качестве вывода.

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

1. Вы можете запустить простой тест ping, чтобы узнать, доступен ли целевой хост www.google.com или нет. Вы также можете использовать IP-адрес вместо имени домена, как показано ниже.
$ ping www.google.com
OR
$ ping 216.58.212.78
Пример вывода:
PING www.google.com (172.217.166.164) 56(84) bytes of data.
64 bytes from bom07s20-in-f4.1e100.net (172.217.166.164): icmp_seq=1 ttl=57 time=2.40 ms
64 bytes from bom07s20-in-f4.1e100.net (172.217.166.164): icmp_seq=2 ttl=57 time=2.48 ms
64 bytes from bom07s20-in-f4.1e100.net (172.217.166.164): icmp_seq=3 ttl=57 time=2.43 ms
64 bytes from bom07s20-in-f4.1e100.net (172.217.166.164): icmp_seq=4 ttl=57 time=2.35 ms
^C
--- www.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.353/2.420/2.484/0.058 ms
По результатам вышеуказанной команды эхо-запрос был успешным, и пакеты не были потеряны. Одна важная вещь, на которую следует обратить внимание, при выводе теста ping - это время окончания каждого ответа ping. Предполагая, что вы проводите ping-тестирование своих серверов, значение здесь имеет большое значение, в зависимости от типа приложения, которое вы запускаете на сервере.

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

2. Вы можете указать количество ECHO_REQUEST, которые должны быть отправлены, после чего пинг завершится, используя флаг -c, как показано ниже (в этом случае тест ping остановится после отправки 5 пакетов).
$ ping -c 5 www.google.com

PING www.google.com (172.217.163.36) 56(84) bytes of data.
64 bytes from maa05s01-in-f4.1e100.net (172.217.163.36): icmp_seq=1 ttl=56 time=29.7 ms
64 bytes from maa05s01-in-f4.1e100.net (172.217.163.36): icmp_seq=2 ttl=56 time=29.7 ms
64 bytes from maa05s01-in-f4.1e100.net (172.217.163.36): icmp_seq=3 ttl=56 time=29.4 ms
64 bytes from maa05s01-in-f4.1e100.net (172.217.163.36): icmp_seq=4 ttl=56 time=30.2 ms
64 bytes from maa05s01-in-f4.1e100.net (172.217.163.36): icmp_seq=5 ttl=56 time=29.6 ms

--- www.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 29.499/29.781/30.285/0.307 ms
3. Флаг -i позволяет вам установить интервал в секундах между отправкой каждого пакета, значение по умолчанию - одна секунда.
$ ping -i 3 -c 5 www.google.com
4. Чтобы определить реакцию вашей сети в условиях высокой нагрузки, вы можете запустить «флуд-эхо», которое отправляет запросы как можно быстрее, используя ключ -f. Только root может использовать эту опцию, в противном случае используйте команду sudo для получения привилегий root.
$ sudo ping -f www.google.com
OR
$ sudo ping -f -i 3 www.google.com	#specify interval between requests 

PING www.google.com (172.217.163.36) 56(84) bytes of data.
.......................................................................................................................................................................................^C
--- www.google.com ping statistics ---
2331 packets transmitted, 2084 received, 10% packet loss, time 34095ms
rtt min/avg/max/mdev = 29.096/29.530/61.474/1.417 ms, pipe 4, ipg/ewma 14.633/29.341 ms
5. Вы можете включить пинг широковещательной рассылки, используя -b, как показано ниже.
$ ping -b 192.168.43.255
6. Чтобы ограничить количество сетевых переходов (TTL - Time-to-live), которые проходят пакеты, используйте флаг -t. Вы можете установить любое значение от 1 до 255; разные операционные системы устанавливают разные значения по умолчанию.

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

В этом примере TTL был превышен, и тест ping не прошел, как показано на снимке экрана.
$ ping -t 10 www.google.com


7. Размер пакета по умолчанию должен быть достаточным для проверки связи, однако вы можете изменить его в соответствии с конкретными потребностями тестирования. Вы можете указать размер полезной нагрузки в байтах с помощью опции -s, что приведет к общему размеру пакета, равному предоставленному значению, плюс 8 дополнительных байтов для заголовка ICMP.
$ ping -s 1000 www.google.com
8. Если задана предварительная загрузка, ping отправляет заданное количество пакетов, не ожидая ответа. Обратите внимание, что только root может выбрать предварительную загрузку более 3 пакетов, в противном случае используйте команду sudo для получения привилегий root.
$ sudo ping -l 5 www.google.com 
9. Также можно установить время ожидания ответа в секундах, используя параметр -W, как показано ниже.
$ ping -W 10 www.google.com
10. Чтобы установить таймаут в секундах перед завершением проверки связи, независимо от того, сколько пакетов было отправлено или получено, используйте флаг -w.
$ ping -w 10 www.google.com
11. Параметр -d позволяет вам включить детализацию отладки IP-пакета, как показано ниже.
$ ping -d www.google.com
12. Вы можете включить подробный вывод с помощью флага -v следующим образом.
$ ping -v www.google.com
Примечание. Ping не обязательно может использоваться для проверки сетевого подключения, он просто сообщает вам, активен или неактивен IP-адрес. Обычно он используется вместе с программой traceroute, но есть также MTR - современный инструмент сетевой диагностики, сочетающий в себе функции ping и traceroute и предлагающий множество дополнительных функций.

Резюме

Ping - очень распространенный метод устранения неполадок с доступом к хостам в сети. В этой статье мы объяснили 12 практических примеров команды ping для проверки доступности сетевого устройства. Поделитесь своими мыслями с нами через форму комментариев ниже.

Комментариев нет:

Отправить комментарий