Введение
Команда ping
— одна из наиболее часто используемых утилит для устранения неполадок, тестирования и диагностики проблем с сетевым подключением.
Ping работает, отправляя один или несколько пакетов эхо-запроса протокола управляющих сообщений Интернета (ICMP) на указанный IP-адрес назначения в сети и ожидая ответа. Когда пункт назначения получает пакет, он отвечает эхо-ответом ICMP.
С помощью команды ping
вы можете определить, активен или неактивен удаленный целевой IP-адрес. Вы также можете найти задержку при обмене данными с пунктом назначения и проверить наличие потери пакетов.
Утилита ping
является частью пакета iputils
(или iputils-ping
), который предустановлен почти во всех дистрибутивах Linux. ping
также доступен в Windows, macOS и FreeBSD.
Как использовать команду Ping
Синтаксис команды ping следующий:
ping [OPTIONS] DESTINATION
Чтобы лучше проиллюстрировать, как работает команда ping, давайте пропингуем google.com
:
ping google.com
Вывод будет выглядеть следующим образом:
PING google.com (216.58.206.46) 56(84) bytes of data.
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=1 ttl=52 time=23.5 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=2 ttl=52 time=23.3 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=3 ttl=52 time=23.0 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=4 ttl=52 time=23.4 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=5 ttl=52 time=23.5 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=6 ttl=52 time=23.8 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=7 ttl=52 time=24.0 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=8 ttl=52 time=23.5 ms
^C
--- google.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7009ms
rtt min/avg/max/mdev = 23.007/23.489/24.000/0.285 ms
Команда ping
преобразует доменное имя в IP-адрес и начинает отправлять пакеты ICMP на целевой IP-адрес. Если целевой IP-адрес доступен, он ответит, и команда ping напечатает строку, содержащую следующие поля:
- Количество байтов данных. Значение по умолчанию — 56, что соответствует 64 байтам данных ICMP —
64 bytes
. - IP-адрес получателя —
from muc11s01-in-f14.1e100.net (172.217.22.206)
- Порядковый номер ICMP для каждого пакета.
icmp_seq=1
- Время жить. -
ttl=53
- Как работает TTL? - Время проверки связи, измеряемое в миллисекундах, которое представляет собой время прохождения пакета в обе стороны до хоста и время возврата ответа отправителю. -
time=41.4 ms
По умолчанию интервал между отправкой нового пакета составляет одну секунду.
Команда ping
будет продолжать отправлять пакеты ICMP на IP-адрес назначения, пока не получит прерывание. Чтобы остановить команду, достаточно нажать комбинацию Ctrl+C
Когда команда останавливается, она отображает статистику, включающую процент потерянных пакетов. Потеря пакетов означает, что данные были выпущены где-то в сети, что указывает на проблему в сети. В случае потери пакета вы можете использовать команду traceroute
, чтобы определить, где произошла потеря пакета.
Если ping
не возвращает ответ, сетевое соединение не установлено. Когда это происходит, это не всегда означает, что IP-адрес назначения не работает. Некоторые хосты могут иметь брандмауэр, который блокирует трафик ICMP или не отвечает на запросы ping.
В случае успеха команда ping
заканчивается кодом 0
. В противном случае он выйдет с кодом 1
или 2
. Это может быть полезно при использовании утилиты ping
в сценарии оболочки.
В следующих разделах мы рассмотрим наиболее часто используемые параметры команды ping
.
Укажите количество пакетов
Как уже упоминалось, по умолчанию ping
будет продолжать отправлять ICMP-пакеты, пока не получит сигнал прерывания. Чтобы указать количество пакетов эхо-запроса для отправки, после которых пинг завершится, используйте параметр -c
, за которым следует количество пакетов:
ping -c 1 DESTINATION
Например, чтобы noviello.it
только один раз, вы должны использовать:
ping -c 1 noviello.it
Указывает исходный интерфейс
По умолчанию команда ping
отправляет пакеты ICMP по маршруту по умолчанию. Если на вашем компьютере несколько интерфейсов, вы можете указать исходный интерфейс с опцией -I
:
ping -I INTERFACE_NAME DESTINATION
Следующая команда noviello.it
, используя em2
в качестве исходного интерфейса:
ping -I em2 noviello.it
Указывает Интернет-протокол
Когда вы выполняете команду ping
, она будет использовать IPv4 или IPv6, в зависимости от настроек DNS машины.
Чтобы заставить ping
использовать IPv4, передайте параметр -4
или используйте псевдоним ping4
:
ping -4 DESTINATION
Для IPv6 передайте параметр -6
или используйте ping6
:
ping -6 DESTINATION
Вывод
ping
— это сетевая утилита командной строки, которая позволяет вам проверить подключение на уровне IP определенного хоста в вашей сети.
Чтобы просмотреть все доступные параметры команды ping
, введите:
man ping