Ping Command in Linux
Ping Command in Linux
Команда ping является одной из наиболее часто используемых утилит для устранения неполадок, тестирования и диагностики проблем с сетевым подключением.

Ping работает, отправляя один или несколько пакетов эхо-запросов ICMP (Internet Control Message Protocol) на указанный IP-адрес назначения в сети и ожидает ответа. Когда получатель получит пакет, он ответит эхо-ответом ICMP.
С помощью ping
команды вы можете определить, является ли удаленный IP-адрес назначения активным или неактивным. Вы также можете найти двустороннюю задержку при связи с пунктом назначения и проверить, есть ли потеря пакета.
Утилита ping является частью iputils
(или iputils-ping
) упаковки, которая предварительно установлена на почти всех дистрибутивов Linux. ping
также доступен в Windows, MacOS и FreeBSD.
Как использовать команду Ping
Синтаксис команды ping следующий:
ping [OPTIONS] DESTINATION
Чтобы лучше проиллюстрировать, как работает команда ping, давайте пинг baks.dev
:
ping
baks.dev
Вывод будет выглядеть примерно так:
PING baks.dev (172.217.22.206) 56(84) bytes of data.
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=1 ttl=53 time=40.2 ms
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=2 ttl=53 time=41.8 ms
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=3 ttl=53 time=47.4 ms
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=4 ttl=53 time=41.4 ms
^C
--- baks.dev ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 7ms
rtt min/avg/max/mdev = 40.163/42.700/47.408/2.790 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, пока не получит сигнал прерывания. Чтобы указать количество отправляемых пакетов эхо-запросов, после которых ping будет завершен, используйте -c
параметр с указанием количества пакетов:
ping -c 1 DESTINATION
Например, чтобы пинговать baks.dev
только один раз, вы должны использовать:
ping -c 1 baks.dev
Укажите интерфейс источника
Поведение команды по умолчанию ping
- отправка пакетов ICMP по маршруту по умолчанию. Если у вас есть несколько интерфейсов на вашем компьютере, вы можете указать исходный интерфейс с -I
опцией:
ping -I INTERFACE_NAME DESTINATION
Следующая команда будет пинговать, baks.dev
используя em2
в качестве исходного интерфейса:
ping -I em2 baks.dev
Укажите интернет-протокол
При запуске ping
команды она будет использовать IPv4 или IPv6, в зависимости от настроек DNS вашего компьютера.
Чтобы принудительно ping
использовать IPv4, передайте -4
опцию или используйте ее псевдоним ping4
:
ping -4 DESTINATION
Для IPv6, передайте -6
опцию или используйте ping6
:
ping -6 DESTINATION
Вывод
ping
это сетевая утилита командной строки, которая позволяет вам проверять подключение на уровне IP данного хоста в сети.
Чтобы просмотреть все доступные параметры ping
команды, введите man ping
свой терминал.
Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.