Команда Ping
В этой статье мы расскажем, что делает команда Ping, и разберём, где может понадобиться команда Ping.
Ping: описание команды
Серверы требуют постоянной диагностики своих систем. Одним из базовых инструментов, который помогает в администрировании сервера, является утилита Ping. Её основная задача ― определение работоспособности узла, сайта или сервера в интернете.
Как это работает? Команда Ping в cmd посылает небольшие пакеты на сервер, который нужно проверить. Через некоторое время от сервера приходит ответ ― те же пакеты, что и были отправлены. Исходя из этого ответа оценивается работоспособность сервера. Устройство работает нормально, если отправленные пакеты вернулись полностью и быстро.
Кроме проверки доступности удаленного хоста, с помощью этой команды можно:
- измерить время, за которое сервер отвечает на команду,
- выявить IP-адреса хоста в локальной и глобальной сети,
- определить качество соединения (были ли потеряны пакеты в пути),
- внедрить команду в bash-скрипт для автоматической проверки сетевого устройства.
Обратите внимание
Если вы используете прокси-сервер, команда пинг работать не будет, так как для её действия нужно прямое соединение с устройством.
У команды есть несколько параметров, которые предназначены для разных задач. Чтобы посмотреть все возможные опции, введите в командной строке:
ping /?
Учебник по командам Linux Ping
Если вы обычный пользователь терминала на любой платформе, вы должны быть знакомы с командой «ping». Ping — один из наиболее часто используемых инструментов для диагностики сети, чтобы проверить, доступна ли сеть. Кроме того, эта команда также используется для проверки состояния сервера.
Ping использует пакеты ICMP (Internet Control Message Protocol) для сбора сетевой статистики. Наиболее распространенные задачи, которые выполняет команда ping:
- Тестирование сетевого подключения, включая локальную сеть и Интернет.
- Проверка состояния сервера.
- Проверка проблем с DNS.
Когда вы используете команду «ping», ваше устройство отправляет запрос на хост-устройство и ожидает установления соединения. Выходные данные команды ping содержат информацию о пакетах и о времени, которое потребовалось каждому пакету для достижения хоста. Терминал продолжает печатать ответы до тех пор, пока связь не будет прервана. Давайте проверим, как использовать команду ping в Linux:
Как использовать команду ping:
Во-первых, проверьте основной синтаксис команды «ping»:
ping [ options ] hostname
Давайте пропингуем сервер linux-console, запустим Терминал и наберем:
$ ping linux-console.net

Приведенный выше вывод показывает различную информацию:
icmp_seq: порядковый номер пакета. Если это первый пакет, номер icmp_seq будет равен 1.
ttl: ttl означает «Время жизни», число ttl представляет собой количество прыжков (маршрутизаторов), которые требуется пакету для достижения пункта назначения, прежде чем он будет отброшен.
время: количество времени, которое требуется пакету, чтобы достичь пункта назначения и затем вернуться на хост-устройство.
Чтобы остановить процесс ping, нажмите «Ctrl C», команда сообщит количество переданных/полученных пакетов, количество потерянных пакетов и время.

Если вы не получили ответ на пинг, значит, нет сетевого подключения между вашим устройством и хост-сервером.
Как изменить временной интервал между пакетами (команда ping):
Команда Ping по умолчанию отправляет пакет через одну секунду, но продолжительность этого времени можно изменить. Чтобы изменить время, используйте «-i» после «ping»:
$ ping –i 2 linux-console.net

Чтобы уменьшить время:
$ ping –i 0.2 linux-console.net

Как проверить состояние локальной сети (команда ping):
Если у вас есть проблемы с доступом к веб-сайту, то с помощью команды ping вы также можете диагностировать свою локальную сеть. Существуют различные подходы, используйте любой из них:
Самый быстрый способ:
$ ping localhost
и некоторые пользователи предпочитают:
$ ping 127.0.0.1

Как ограничить количество пакетов (команда ping):
Команда Ping продолжает отправлять пакеты, пока не будет остановлена вручную, но количество пакетов можно ограничить с помощью «-c», а затем количество пакетов, потому что имя хоста:
$ ping –c 4 linux-console.net

Приведенный выше вывод указывал, что команда отправила только 4 пакета. Другой вариант ограничения количества пакетов — установка времени:
$ ping – w 6 linux-console.net

Приведенная выше команда перестанет пинговаться через 6 секунд.
Как залить сеть (команда ping):
Чтобы проверить производительность сети при большой нагрузке, можно также использовать команду ping для лавинной загрузки сети:
$ ping –f linux-console.net

В выводе каждая точка представляет отправленный пакет и возврат для каждого ответа.
Как получить сводку статистики (команда ping):
Если вас интересует только сводка о передаче пакетов, используйте «-q», q означает, что этот оператор означает тихий:
$ ping –c 5 –q linux-console.net

Как сделать пинг слышимым (команда ping):
Чтобы включить звук каждого пинга, используйте оператор «-a»:
$ ping –a linux-console.net

Часто используемые параметры пинга:
Некоторые другие часто используемые параметры проверки связи и их использование упомянуты ниже:
-b
Позволяет пинговать широковещательный IP
-l
Отправка пакетов без ожидания ответа (требуется разрешение sudo для отправки более 3 пакетов)
-V
Показывает текущую версию пинга
-v
Отображает дополнительные пакеты ICMP вместе с эхо-ответами
-T
Позволяет установить время жизни (ttl)
-d
Для отладки сокетов
-r
Позволяет обходить таблицу маршрутизации и отправляет напрямую на хост.
-s
Устанавливает размер пакета
Как отключить/включить ответ ping в Linux 1 мин для чтения


Добавить в избранное
Главное меню » Linux » Как отключить/включить ответ ping в Linux

Примечание: все следующие шаги будут выполняться в терминале/командной строке.
1 Отключить/включить постоянный ответ ping (через sysctl)
1.1 Добавьте следующую строку в «/etc/sysctl.conf» (чтобы включить, измените 1 на 0)
net.ipv4.icmp_echo_ignore_all = 1
Мы можем использовать следующую команду для достижения этого
sudo bash -c 'echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
1.2 Применить изменение
sudo sysctl -p
2 Временно отключить/включить ответ ping (через sysctl)
2.1 Выполните следующую команду, чтобы временно отключить ответ ping (чтобы включить, измените 1 на 0)
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
2.2 Применить изменение
sudo sysctl -p
3 Временно отключить ответ ping (через брандмауэр/iptables)
3.1 Выполните следующую команду, чтобы заблокировать/сбросить ping-трафик
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
Примечание. Хотя правила iptables будут действовать после перезагрузки в CentOS и RHEL, они не будут действовать после перезагрузки в Debian/Ubuntu/Kali Linux и т. д..
4 Временно включить ответ ping (через брандмауэр/iptables)
4.1 Выполните следующую команду, чтобы включить/разрешить ping-трафик
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Примечание. Как и в разделе 3, правила firewall/iptables будут действовать после перезагрузки в CentOS и RHEL, они не будут действовать после перезагрузки в Debian/Ubuntu/Kali Linux и т. д.
Бонус
Еще один способ легко разрешить ответ ping — просто временно отключить iptables/firewall.
sudo systemctl stop iptables
sudo systemctl stop ufw
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Команда Ping в Linux с примерами


Добавить в избранное

Ping — одна из наиболее часто используемых сетевых команд в Linux и других операционных системах.
Ping в основном используется для проверки доступности удаленного хоста или нет. Удаленным хостом может быть веб-сервер, ваш маршрутизатор или система в вашей локальной сети.
Как работает ping? Фактически он отправляет небольшие ICMP- пакеты на удаленный хост и ожидает ответа. Если хост включен, вы должны увидеть ответ.
Это как технология сонара, используемая на подводных лодках. Подводные лодки посылают импульсы звукового сигнала и ждут возвращения эха.
Итак, как вы используете Ping в Linux? Каковы различные параметры команды Ping? Позвольте мне показать вам некоторые из общих способов использования команды Ping.
Вы знали? Команда Ping правильно написана как PING и обозначает Packet Internet Groper.
Использование команды ping в Linux
Вы можете использовать команду ping с IP-адресом или именем хоста/URL.
Предположим, мы пингуем Google. Он отправит ICMP-пакеты размером 56 байтов на google.com.
ping google.com PING google.com (64.233.162.101) 56(84) bytes of data. 64 bytes from li-in-f101.1e100.net (64.233.162.101): icmp_seq=1 ttl=47 time=14.7 ms 64 bytes from li-in-f101.1e100.net (64.233.162.101): icmp_seq=2 ttl=47 time=14.7 ms 64 bytes from li-in-f101.1e100.net (64.233.162.101): icmp_seq=3 ttl=47 time=14.7 ms 64 bytes from li-in-f101.1e100.net (64.233.162.101): icmp_seq=4 ttl=47 time=14.7 ms ^C --- google.com ping statistics --- 20 packets transmitted, 20 received, 0% packet loss, time 19034ms rtt min/avg/max/mdev = 14.716/14.791/14.846/0.142 ms
Вы должны вручную остановить команду ping, иначе она продолжит выполняться. Вы можете использовать Ctrl + C терминала ярлык, чтобы остановить команду ping в Linux, как мы сделали в приведенном выше примере.
Когда вы останавливаете команду ping , она представляет вам сводку передачи. Вы можете увидеть статистику, такую как количество переданных ICMP-пакетов, принятых пакетов, потерянных пакетов и т. д.
Теперь, когда вы знаете, как пинговать в Linux, давайте посмотрим на некоторые другие опции команды ping.
Отправить только N количество пакетов
Если вы не хотите, чтобы команда ping выполнялась вечно без остановки вручную, вы можете использовать опцию -c .
При этом вы можете указать количество пакетов, которые команда ping должна отправить перед автоматической остановкой.
ping -c 2 104.248.179.115 PING 104.248.179.115 (104.248.179.115) 56(84) bytes of data. 64 bytes from 104.248.179.115: icmp_seq=1 ttl=53 time=190 ms 64 bytes from 104.248.179.115: icmp_seq=2 ttl=53 time=190 ms --- 104.248.179.115 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 190.052/190.312/190.573/0.508 ms
Отправить пинг только на ограниченное время
Помимо установки количества отправляемых пакетов, вы также можете указать, как долго будут отправляться пакеты.
Например, если вы хотите отправлять ping-пакеты всего за 5 секунд, вы можете использовать его следующим образом:
ping -w 5 google.com PING google.com (64.233.162.139) 56(84) bytes of data. 64 bytes from li-in-f139.1e100.net (64.233.162.139): icmp_seq=1 ttl=47 time=14.7 ms 64 bytes from li-in-f139.1e100.net (64.233.162.139): icmp_seq=2 ttl=47 time=14.8 ms 64 bytes from li-in-f139.1e100.net (64.233.162.139): icmp_seq=3 ttl=47 time=14.8 ms 64 bytes from li-in-f139.1e100.net (64.233.162.139): icmp_seq=4 ttl=47 time=14.8 ms 64 bytes from li-in-f139.1e100.net (64.233.162.139): icmp_seq=5 ttl=47 time=14.8 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4007ms rtt min/avg/max/mdev = 14.795/14.838/14.895/0.036 ms
Изменить интервал времени между двумя пингами
По умолчанию ping отправляет пакеты с интервалом в одну секунду. Вы можете изменить этот интервал времени с помощью опции -i .
Для отправки ICMP-пакетов с интервалом в 3 секунды вы можете использовать команду Ping, например:
ping -i 3 31.13.90.36
Вы также можете уменьшить временной интервал между пингами.
ping -i 0.5 31.13.90.36
Однако, если вы попытаетесь уменьшить временной интервал ниже 0,2 секунды (200 мс), вы увидите ошибку:
ping -i 0.1 31.13.90.36 PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data. 64 bytes from 31.13.90.36: icmp_seq=1 ttl=56 time=58.0 ms ^C --- 31.13.90.36 ping statistics --- 37 packets transmitted, 36 received, 2% packet loss, time 3608ms rtt min/avg/max/mdev = 58.015/58.579/65.518/1.617 ms
Не беспокойтесь Вы все еще можете пропинговать с интервалом менее 200 мс. Но для этого нужно использовать пинг с правами root.
sudo ping -i 0.1 31.13.90.36 PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data. 64 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=470 ms 64 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=372 ms
Изменить размер пакета
Размер пакета ICMP по умолчанию, отправляемого Ping, составляет 56 байтов. Это также можно изменить с помощью опции -s .
ping -s 100 31.13.90.36 PING 31.13.90.36 (31.13.90.36) 100(128) bytes of data. 108 bytes from 31.13.90.36: icmp_seq=1 ttl=56 time=58.0 ms 108 bytes from 31.13.90.36: icmp_seq=2 ttl=56 time=58.0 ms 108 bytes from 31.13.90.36: icmp_seq=3 ttl=56 time=58.0 ms 108 bytes from 31.13.90.36: icmp_seq=4 ttl=56 time=58.0 ms ^C --- 31.13.90.36 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 58.048/58.066/58.084/0.013 ms
DoS-атака с пингом, который также называется Ping of Death.
Одна из самых простых атак DoS — Ping of Death. При такого рода атаках злоумышленник отправляет большое количество запросов ping за очень короткий промежуток времени. Если сервер не настроен должным образом, он потерпит крах при обработке запроса ping, и веб-сайт закроется.
Команда ping имеет встроенную функцию для этого. Это называется ping flooding , и этого можно достичь с помощью опции -f . Вам понадобятся права sudo для запуска этой опции с нулевым интервалом.
sudo ping -f google.com PING google.com (108.177.122.101) 56(84) bytes of data. …………………..^C --- google.com ping statistics --- 1436 packets transmitted, 1413 received, 1% packet loss, time 22837ms rtt min/avg/max/mdev = 313.887/326.102/388.178/7.464 ms, pipe 26, ipg/ewma 15.914/323.456 ms
Когда вы запустите эту команду, вы увидите, что некоторые точки появляются и исчезают в выходных данных. Каждый ‘.’ обозначает запрос, тогда как ответом является возврат (поэтому точки исчезают).
Этот параметр проверки связи полезен при тестировании нагрузочной способности сервера.
Бонусный совет: отправьте звуковые сигналы
Вы можете отправлять звуковые сигналы с опцией -a . При этом вы услышите звуковой сигнал для каждого успешного пинга.
ping -a google.com
Обратите внимание, что не все дистрибутивы Linux настроены на создание звукового сигнала. Мы проверили это на Ubuntu 18.04, и могли слышать звуковой сигнал.
Устранение неисправностей команды Ping
До сих пор мы видели успешные примеры команды ping. Но это не произойдет все время. Давайте рассмотрим некоторые распространенные ошибки, которые вы можете увидеть, и поймите причину этих ошибок.
Нет ответа на пинг
Вы можете заметить, что некоторые хосты не отвечают на запрос ping. Кажется, что команда ping зависла, потому что нет ответа. Команда просто остается там, она даже не истекает.
Если вы прервете команду ping, вы увидите странную статистику.
ping intel.com PING intel.com (13.91.95.74) 56(84) bytes of data. ^C --- intel.com ping statistics --- 100 packets transmitted, 0 received, 100% packet loss, time 101362m
Как видите, было передано 100 пакетов, но ни на один из них не было получено ответа.
Скорее всего, потому что некоторые серверы отбрасывают пакеты ICMP. Это мера безопасности, чтобы избежать ping-флудов.
Хост назначения недоступен
Эта ошибка может возникать по одной из двух причин:
- либо в локальной системе нет маршрута к удаленному хосту;
- или маршрутизатор конечной точки не имеет маршрута к удаленному хосту.
Если вы видите только ошибку «целевой хост недоступен», это означает, что вашей системе не удалось найти маршрут к удаленному хосту.
С другой стороны, если вы видите ошибку в части ответа «Reply from », это означает, что пакет был отправлен за пределы вашей сети, но он не смог достичь пункта назначения.
Иногда серверы также блокируют трафик ICMP, который может показать эту ошибку.
Время ожидания запроса
Эта ошибка означает, что пакеты достигли удаленного сервера, но ответ не смог достичь вашей системы. Проблема может быть потеря пакетов или ошибка маршрутизации.
Готовы пинговать?
Мы надеемся, что эта статья помогла вам лучше понять команду ping в Linux.
Если у вас есть вопросы или предложения, пожалуйста, оставьте сообщение в разделе комментариев.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.