- Команда ping в Linux
- Как работает ping?
- Команда 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: подробный обзор
Ping – утилита командной строки, которая нужна для проверки подключения к другому компьютеру на уровне IP. Принцип работы очень простой: команда ping ip отправляет серию небольших пакетов данных на указанное устройство, а затем показывает время ответа.
Ping – основная команда TCP/IP, которая используется для устранения неполадок подключения, доступности и разрешения имени. Она также позволяет узнать имя и IP-адрес компьютера.
Синтаксис команды ping
Команда ping в Windows имеет следующие параметры, которые позволяют решать разные задачи:
ping [/t] [/a] [/n ] [/l ] [/f] [/I ] [/v ] [/r ] [/s ] [] [/w ] [/R] [/S ] [/4] [/6]
Чтобы посмотреть в командной строке (cmd) ping-команды, вызовите справку:
На Linux параметры команды отличаются. Чтобы посмотреть доступные опции, выполните в терминале команду:
Суть команды ping проста, но примеров ее использования очень много. Давайте посмотрим, что можно делать с ее помощью.
Простая проверка доступности
Это то, что делали многие пользователи, – пинговали популярные ресурсы, чтобы убедиться, что интернет на их компьютере работает. Эта же команда используется для проверки доступности.
ping google.com // вместо домена можно указать IP-адрес
Windows отправит только 4 запроса, после чего выдаст статистику для указанного адреса. Можно убрать это ограничение, указав параметр -t.
Чтобы прервать отправку и получить статистику, нажимаем сочетание клавиш Ctrl+C.
По умолчанию команда ping IP-адреса на Linux посылает пакеты, пока вы не прервете их отправку вручную с помощью сочетания клавиш Ctrl+C. Чтобы ограничить количество, укажем нужное число. Например:
ping -c 3 google.com // будет отправлено 3 пакета
Изменение интервала между отправкой пакетов
По умолчанию пакеты отправляются с интервалом в одну секунду. Но можно установить другое время.
ping -i 5 IP-адрес // 5 секунд между отправкой пакетов ping -i 0.2 IP-адрес // 2 миллисекунды между отправкой пакетов
Для установки значений меньше 0.2 секунды требуются права суперпользователя (sudo).
Массовая отправка пакетов для нагрузочного тестирования
Эта возможность также доступна только суперпользователям:
ping -f IP-адрес // за секунду будут отправлены сотни тысяч запросов
Изменение размера пакета
По умолчанию размер пакета – 32 байта. Можно установить другой размер:
$ ping -s 100 IP-адрес // значения указываются в байтах
Включение звукового сигнала
Если ответа от хоста нет, отправляем эту команду:
Затем начинаем искать причину сбоя. После ее устранения воспроизведется звуковой сигнал. Он говорит о том, что хост теперь отвечает.
Вывод статистики ping
Чтобы не засорять терминал лишней информацией, пропустим ответы хоста и сразу получим статистику:
А можно, наоборот, получать статистику выполнения без прерывания команды. Для этого нужно нажать сочетание клавиш CTRL + |.