- Команда ping в Linux
- Как работает ping?
- Команда Ping
- Как пользоваться Ping?
- Выводы
- Команда Ping в Linux
- Использование команды Ping
- Некоторые основные функции Ping
- Пинг хоста на доступность
- Увеличение/уменьшение интервала между пакетами ping
- Изменение размера пакета ping
- Настройка ping на отправку необходимого количества пакетов
- «Наводнение сети»
- Установка таймаута пинга
- «Звуковой пинг»
- Похожие записи:
Команда ping в Linux
Всем знакомы ситуации, когда интернет на компьютере неожиданно разрывается, такое поведение можно наблюдать при использовании ADSL модемов, Wifi на большом расстоянии, GSM и других подобных ненадежных технологий. Быстро выяснить есть ли на компьютере интернет можно с помощью утилиты ping.
Но область ее применения намного шире, ее используют сетевые администраторы для проверки доступности удаленного узла в сети, она применяется в различных скриптах и многих других местах. В этой статье будет рассмотрена команда ping в Linux, мы поговорим о том, как пользоваться утилитой, как она работает, рассмотрим ее опции и возможности.
Как работает ping?
Утилита ping — это очень простой инструмент для диагностики сети. Она позволяет проверить доступен удаленный хост или нет и все. Для этого утилита проверяет, может ли хост отвечать на сетевые запросы с помощью протокола ICMP.
Надеюсь, не нужно говорить, что все данные по сети передаются в виде небольших пакетов. Программа передает небольшой пакет с данными ICMP и ожидает получить обратно пакет ответа, если получает, то считается что удаленный узел доступен. ICMP или Internet Control Message Protocol — это надстройка над протоколом IP, которая используется для передачи служебных сообщений и сообщений и ошибках.
Протокол ICMP может передавать только два типа пакетов — это сообщения с отчетами про ошибки и сообщения запросов. В свою очередь, сообщения запросов делятся на:
Попытаемся разобраться что делает команда ping. Итак, когда вы отправляете запрос ping удаленному узлу, утилита устанавливает для каждого пакета уникальный идентификатор, а также TTL и время отправки пакета. Если хост доступен, он отправляет ответ, на основе времени отправки утилита может вычислить время прохождения пакета туда и обратно. Затем отправляется следующий пакет. В конце рассчитывается общее количество отправленных и принятых пакетов, процент потерь и другие данные.
Команда Ping
Теперь нам осталось немного попрактиковаться. Но перед тем, как мы перейдем к практике давайте рассмотрим синтаксис команды и ее опции. Синтаксис довольно прост:
$ ping опции адрес_узла
Формат команды ping очень прост. В качестве адреса узла можно передавать как ip адрес, так и доменное имя. Опции настраивают поведение утилиты. Рассмотрим основные из них:
- -4 — использовать только ipv4 (по умолчанию);
- -6 — использовать только ipv6;
- -A — адаптивный режим, время между отправками пакета адаптируется к времени передачи и приема пакета, но не меньше чем 200мс;
- -b — разрешить ping широковещательного адреса;
- -с — количество пакетов, которые нужно отправить;
- -D — выводить время в виде UNIX timestamp;
- -f — режим флуда, в этом режиме пакеты передаются без задержек, может использоваться для совершения DoS атак на отдельные узлы. Количество точек, которые выводит утилита обозначает количество потерянных пакетов;
- -i — интервал в секундах между отправкой пакетов;
- -I — использовать этот сетевой интерфейс для отправки пакетов;
- -l — режим перегрузки, отправляется очень много пакетов и система не следит за ответными пакетами;
- -n — не получать домены для ip адресов;
- -r — игнорировать таблицы маршрутизации и отправить пакет на указанный интерфейс;
- -s — размер одного пакета;
- -t — установить TTL вручную;
- -v — более подробный вывод.
Теперь, когда мы рассмотрели основные параметры команды ping и ее синтаксис, пришло время практики, дальше поговорим о том, как сделать ping определенного узла в Linux.
Как пользоваться Ping?
Для проверки работоспособности сети часто используется программа ping любого сайта, который всегда доступен, например, google.com или еще проще и короче ya.ru. Вам будет достаточно передать утилите в параметрах этот адрес, она сама найдет ip и сделает все нужное:
Как я и писал выше, для каждого пакета выводится уникальный идентификатор icmp_seq, количество узлов до целевого узла ttl и время, потраченное на доставку пакета time. Чтобы остановить ping нажмите сочетание клавиш Ctrl+C. В конце утилита вывела общую статистику:
- packets transmitted — отправлено пакетов;
- received — получено пакетов;
- packet loss — процент потерянных пакетов;
- time — обще время работы;
rtt min/avg/max/mdev — минимальное время/среднее время/максимальное время/квадратичное отклонение.
Если выполнение команды ping не остановить, то пакеты могут отправляться очень долгое время, это создает дополнительную нагрузку на сервер и поэтому не желательно. Вы можете сразу в вызове команды ограничить количество отправляемых пакетов с помощью опции -c:
Точно так же как мы выполняем ping для домена, можно указать ip адрес напрямую. Это позволяет проверить есть ли сеть когда неверно настроены серверы DNS. Например:
Следующий вид отправки ping сообщений, это ping флуд. С помощью таких пакетов можно выполнить нагрузочное тестирование канала или даже заглушить интернет соединение на одной из машин. Но эти функции можно использовать только с правами суперпользователя. Для организации ping флуда укажите опцию -f:
По умолчанию, в обычном режиме, каждый следующий пакет отправляется, когда получен ответ на предыдущий. Но вы можете сами установить интервал между отправкой пакетов -i:
Здесь программа ping выполняет так званный, настраиваемый флуд, вы указываете с какой интенсивностью нужно отправлять пакеты. С помощью опции -D вы можете увидеть Unix Timestamp для каждого сообщения:
Выводы
В этой статье мы рассмотрели что такое команда ping в linux, как ее использовать основные параметры и методы применения. Этот очень простой инструмент можно применять для тестирования неполадок сети и их исправления. В этом плане утилита может стать незаменимой.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Команда Ping в Linux
Ping или Packet Internet Groper — это утилита для управления сетью, которая может проверить состояние соединения между компьютером/устройством источника и назначения через IP-сеть. Она также помогает оценить время, необходимое для отправки и получения ответа от сети.
У каждого из нас есть любимые веб-сайты, которые мы часто посещаем; если один из них не загружается, мы очень хотим знать, почему. Потому ли, что у нас нет подключения к Интернету, или из-за проблем с нашим поставщиком услуг Интернета мы не можем получить доступ к сайту? Другой причиной может быть недоступность самого сайта. Какой бы ни была причина, команда Linux Ping может дать вам все ответы.
Ping использует протокол Internet Control Message Protocol (ICMP) для отправки и получения эхо-сообщений на хост или целевой компьютер и обратно, чтобы информировать нас о производительности сети. На целевой компьютер отправляется сообщение ICMP-запрос; если IP-адрес цели доступен, он отправляет ответ ICMP-сообщением на главный компьютер. Это информирует нас о состоянии подключения к сети, например, о времени обхода — времени, которое требуется для отправки и получения информационного пакета.
Использование команды Ping
В терминале Linux введите следующую команду:
Вот вывод, который вы получите:
Давайте опишем (в алфавитном порядке) часто используемые опции, которые вы можете видеть выше:
Опция | Описание |
a | Используйте эту опцию для звукового сигнала, когда узел доступен. |
b | Используйте эту опцию, чтобы разрешить пинговать широковещательный адрес |
B | Используйте эту опцию, если вы не хотите разрешать пингу изменять адрес источника. |
c (count) | Используйте эту опцию, чтобы установить количество раз для отправки запроса ping |
d | Используйте эту опцию для установки опции SO-DEBUG на используемом сокете. |
f | Используйте эту опцию для заполнения сети, отправляя сто или более пакетов в секунду |
i (interval) | Используйте эту опцию для указания интервала между последовательными передачами пакетов. По умолчанию значение интервала равно 1 секунде |
I (interface address) | Используйте эту опцию для установки адреса источника на указанный адрес интерфейса. Эта опция необходима при пинге локального адреса канала IPv6. Ее аргументом может быть IP-адрес или имя устройства. |
l (preload) | Используйте эту опцию, чтобы задать количество пакетов, которые нужно отправить, не дожидаясь ответа. Для выбора значения более 3 необходимо быть суперпользователем. |
n | Используйте эту опцию для отображения сетевых адресов в виде чисел, а не имен хостов. |
q | Используйте эту опцию для отображения тихого вывода. Это означает, что при запуске и завершении работы отображается только сводка. |
T (ttl) | Используйте эту опцию для установки времени жизни |
v | Используйте эту опцию для подробного вывода |
V | Используйте эту опцию для отображения версии и выхода |
w (deadline) | Используйте эту опцию, чтобы задать тайм-аут в секундах перед завершением ping, независимо от того, сколько пакетов было отправлено или получено. |
W (timeout) | Используйте эту опцию, чтобы задать время (секунды) ожидания ответа. |
Некоторые основные функции Ping
Ниже приведены некоторые основные функции ping, которые вы будете использовать для проверки производительности вашей сети:
Пинг хоста на доступность
Вы можете проверить, жив ли хост или нет, с помощью следующей команды ping:
Нажмите Ctrl+C для завершения команды
Увеличение/уменьшение интервала между пакетами ping
По умолчанию в Linux интервал времени между отправкой каждого пакета составляет 1 секунду. Вы можете увеличить временной интервал, задав значение больше 1, и уменьшить его, задав значение меньше 1.
Вот пример увеличения временного интервала между двумя пингами:
Вот пример уменьшения временного интервала между двумя пингами:
Как вы можете видеть на следующем изображении, вы должны быть суперпользователем, чтобы установить этот временной интервал меньше 0,2 секунды:
Поэтому команда должна быть выполнена с правами sudo. Она должна выглядеть следующим образом,
Введите пароль, когда появится запрос, и команда должна сработать.
Изменение размера пакета ping
Размер пакета ping по умолчанию составляет 56 байт. Вы можете изменить его с помощью следующей команды:
ping -s packetsize имя хоста/ip
Здесь мы устанавливаем размер пакета в 100; вы можете увидеть значение 100 в первой строке вывода:
Настройка ping на отправку необходимого количества пакетов
Вы можете настроить ping на отправку желаемого количества пакетов следующим образом:
ping -c NumberOfPackets имя хоста/ip
В следующем примере мы задаем количество пакетов равным 5:
«Наводнение сети»
Команда Ping позволяет суперпользователям отправлять 100 и более пакетов в секунду с помощью следующей команды:
Ping печатает символ «.» при отправке ping и «/» при получении.
Установка таймаута пинга
Вы можете установить лимит времени, по истечении которого ping завершит работу, независимо от того, сколько пакетов ping было отправлено или получено:
ping -w timeinseconds имя хоста/ip
Здесь мы используем 3 секунды в качестве таймаута:
«Звуковой пинг»
Команду ping можно настроить на воспроизведение звукового сигнала, чтобы проверить, доступен ли хост, следующим образом:
Практика с помощью этого руководства позволит вам выполнять команды ping для проверки производительности сети оптимальным образом. Вы также можете использовать дополнительные переключатели для настройки запросов и ответов в ping.