В этой статье мы расскажем, что делает команда Ping, и разберём, где может понадобиться команда Ping.
[object Object]
- Описание команды
- 1. Описание команды PING.
- 2. Примеры использования.
- 3. Применение PING для пошаговой диагностики проблем доступа в Интернет.
- 4. Использование PING в командных файлах.
- Комбинация параметров
- Как изменить интервал времени отправления пакета
- Синтаксис команды ping
- Как увеличить время ожидания ответа от сервера
- Как отправить определённое количество пакетов
- Массовая отправка пакетов для нагрузочного тестирования
- Изменение интервала между отправкой пакетов
- Как проверить доступность и работоспособность сервера
- Изменение размера пакета
- Как протестировать нагрузку
- Как изменить размер пакета
- Включение звукового сигнала
- Простая проверка доступности
- Как вывести только результат проверки Ping в Linux
- Вывод статистики ping
Описание команды
[object Object]
[object Object]
[object Object]
1. Описание команды PING.
1.1. Формат командной строки:
C:\ ping [-t] [-a] [-n число] [-l размер] [-f] [-i TTL] [-v TOS] [-r число] [-s число] [[-j списокУзлов] | [-k списокУзлов]] [-w таймаут] конечноеИмя
- -t — Непрерывная отправка пакетов. Для завершения и вывода статистики используются комбинации клавиш Ctrl + Break (вывод статистики и продолжение), и Ctrl + C (вывод статистики и завершение).
- -a — Определение адресов по именам узлов.
- -n число — Число отправляемых эхо-запросов.
- -l размер — Размер поля данных в байтах отправляемого запроса.
- -f — Установка флага, запрещающего фрагментацию пакета.
- -i TTL — Задание срока жизни пакета (поле «Time To Live»).
- -v TOS — Задание типа службы (поле «Type Of Service»).
- -r число — Запись маршрута для указанного числа переходов.
- -s число — Штамп времени для указанного числа переходов.
- -j списокУзлов — Свободный выбор маршрута по списку узлов.
- -k списокУзлов — Жесткий выбор маршрута по списку узлов.
- -w таймаут — Максимальное время ожидания каждого ответа в миллисекундах.
2. Примеры использования.
2.1. Эхо-запрос к узлу с именем google.com с параметрами по умолчанию — количество пакетов равно 4, длина массива данных = 32 байта:
C:\ ping google.com
2.2. Пинг узла ya.ru с использованием протокола Ipv6:
C:\ ping -6 ya.ru
2.3. Выполнить пинг с определением имени конечного узла по его адресу:
C:\ ping -a 192.168.1.50
2.4. Пинг узла computer от источника 192.168.0.1:
C:\ ping -s 192.168.0.1 computer
Используется когда на компьютере имеется несколько сетевых интерфейсов.
2.5. Пинг с таймаутом ожидания равным 5 секунд ( по умолчанию — 4 сек):
C:\ ping w 5000 ya.ru
2.6. Опрос узла ab57.ru 5000 раз, пакетами с данными длиной в 1000байт:
C:\ ping -n 5000 -l 1000 ab57.ru
Допустимая максимальная длина данных — 65500.
2.7. Пинг с запретом фрагментации пакета:
C:\ ping -n 1 -l 3000 -f ya.ru
2.8. Отправить 1 эхо-запрос на узел ya.ru с отображением первых 3-х переходов по маршруту:
C:\ ping -n 1-r 3 ya.ru
2.9. Пинг с указанием времени жизни TTL=5:
C:\ ping -i 5 ya.ru
Если для достижения конечного узла потребуется большее количество переходов по маршруту, то маршрутизатор, прервавший доставку ответит сообщением ”Превышен срок жизни (TTL) при передаче пакета.”
3. Применение PING для пошаговой диагностики проблем доступа в Интернет.
Команда PING можно использовать для диагностики отдельных узлов.
3.1. Это пинг петлевого интерфейса:
C:\ ping 127.0.0.1
Должен выполняться без ошибок, если установлены и находятся в работоспособном состоянии сетевые программные компоненты.
3.2. Пинг на собственный адрес или имя:
C:\ ping свой IP или имя
Должен завершаться без ошибок, если установлены все программные средства протокола IP и исправен сетевой адаптер.
3.3. Пинг должен выполняться, если исправна сетевая карта компьютера, исправен кабель или беспроводное соединение, используемые для подключения к роутеру и исправен сам роутер:
C:\ ping IP-адрес роутера
Кроме того, настройки IP должны быть такими, чтобы адрес компьютера и роутера принадлежали одной подсети. Обычно это так, когда сетевые настройки выполняются автоматически средствами DHCP-сервера маршрутизатора.
3.4. Выполнить опрос узла с именем yandex.ru:
C:\ ping yandex.ru
Если опрос завершается с ошибкой, то причиной может быть не только отсутствие связи с маршрутизатором провайдера, но и невозможность определения адреса узла yandex.ru из-за проблем с программными средствами разрешения имен.
C:\ ping 8.8.8.8
Если опрос по адресу выполняется без ошибок, а опрос по имени завершается сообщением о неизвестном узле, то проблема в разрешении имен. Причиной может быть неработоспособность DNS-сервера провайдера. В этом случае, можно попробовать сменить его в настройках сетевого соединения на публичные DNS сервера Google с адресами 8.8.4.4 и 8.8.8.8. Также, проблема может быть вызвана плохим качеством связи с провайдером, что сопровождается слишком большим временем отклика и пропаданием пакетов.
3.6. выполнять ping до нажатия комбинации CTRL+C:
C:\ ping -t yandex.ru
При нажатии CTRL+Break — выдается статистика и опрос узла продолжается.
3.7. Выполнить ping 1000 раз с использованием сообщений, длиной 500 байт:
C:\ ping -n 1000 -l 500 192.168.1.1
Пинг пакетами стандартной длины в 32 байта может выполняться без ошибок, а на длинных — с ошибками, что характерно для беспроводных соединения при низком уровне сигнала в условиях интенсивных помех.
3.8. Выполнить ping 1 раз (ключ -n 1), выдавать маршрут для первых 9 переходов (-r 9), ожидать ответ 1 секунду (1000мсек):
C:\ ping -n 1 -r 9 -w 1000 yandex.ru
В результате выполнения данной команды отображается и трассировка маршрута:
Обмен пакетами с yandex.ru [87.250.251.11] с 32 байтами данных: Ответ от 87.250.251.11: число байт=32 время=36мс TTL=54 Маршрут: 81.56.118.62 -> 81.56.112.1 -> 10.109.11.9 -> 10.109.11.10 -> 195.34.59.105 -> 195.34.52.213 -> 195.34.49.121 -> 195.34.52.213 -> 87.250.239.23 Статистика Ping для 87.250.251.11: Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 36мсек, Максимальное = 36 мсек, Среднее = 36 мсек
В данном примере, между отправителе и получателем пакетов выстраивается цепочка из 9 маршрутизаторов. Нужно учитывать тот факт, что в версии утилиты ping.exe для Windows, число переходов может принимать значение от 1 до 9. В случаях, когда этого значения недостаточно, используется команда tracert.
Отсутствие эхо-ответа не всегда является признаком неисправности, поскольку иногда по соображениям безопасности, некоторые узлы настраиваются на игнорирование эхо-запросов, посылаемых PING. Примером может служить узел microsoft.com и некоторые маршрутизаторы в сетях небольших провайдеров.
4. Использование PING в командных файлах.
4.1. Нередко, команда PING используется для организации задержек в командных файлах. Выполняется пингование петлевого интерфейса с указанием нужного значения счетчика пакетов, задаваемого параметром -n. Посылка эхо-запросов выполняется с интервалом в 1 секунду, а ответ на петлевом интерфейсе приходит практически мгновенно, поэтому задержка будет приблизительно равна счетчику минус единица. Задержка в 10 секунд:
C:\ ping -n 11 127.0.0.1
C:\ ping 456.0.0.1
Ответ на такую команду может отличаться от конкретной версии утилиты, и может быть приблизительно таким:
При проверке связи не удалось обнаружить узел 456.0.0.1. Проверьте имя узла и повторите попытку.
Ping на адрес узла yandex.ru:
C:\ ping yandex.ru
Ответ на ping доступного узла:
Обмен пакетами с yandex.ru [87.250.250.11] по 32 байт:
Ответ от 87.250.250.11: число байт=32 время=10мс TTL=55
Таким образом, для решения задачи определения доступности узла в командном файле, достаточно проанализировать характерные слова в выводе ping.exe при успешном ответе. Наиболее характерно в данном случае наличие слова TTL. Оно никогда не встречается при возникновении ошибки и состоит всего лишь из символов английского алфавита. Для поиска «TTL» в результатах ping.exe удобнее всего объединить ее выполнение в цепочку с командой поиска строки символов FIND.EXE (конвейер ping и find). Если текст найден командой FIND, то значение переменной ERRORLEVEL будет равно 0:
ping -n 1 COMPUTER | find /I "TTL" > nul if %ERRORLEVEL%==0 goto LIVE ECHO computer недоступен подпрограмма обработки недоступного состояния ... Exit :LIVE - начало подпрограмм ы обработки состояния доступности узла ... ...
4.3. В более простом варианте можно использовать команды:
- Команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND равно 0, т.е узел yandex.ru отвечает на ping:
C:\ ping yandex.ru |find "TTL=" && ECHO Yandex pingable
- Команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND не равно 0, т.е. узел Server64 не ответил на ping:
C:\ ping Server64 |find "TTL=" || ECHO Server64 not pingable
Комбинация параметров
[object Object]
Как изменить интервал времени отправления пакета
[object Object]
Синтаксис команды ping
[object Object]
Как увеличить время ожидания ответа от сервера
Время ожидания ответа можно изменить с помощью параметра -w.
Введите:
Где 5000 ― время ожидания в миллисекундах (1с = 1000 мс).
Как отправить определённое количество пакетов
Необязательно вручную останавливать отправку пакетов. Можно сразу ограничить их количество параметром -c. Для этого введите:
- 6 ― количество пакетов,
- domain.name ― доменное имя или IP-адрес.
Массовая отправка пакетов для нагрузочного тестирования
[object Object]
Изменение интервала между отправкой пакетов
По умолчанию пакеты отправляются с интервалом в одну секунду. Но можно установить другое время.
Для установки значений меньше 0.2 секунды требуются права суперпользователя (sudo).
Как проверить доступность и работоспособность сервера
Это самый простой запрос. Устройство должно отправить некоторое количество пакетов на нужный сервер и проверить время ответа и количество возвращённых параметров. Также этим методом пользователи пингуют популярные сайты, чтобы узнать, есть ли проблемы с интернет-соединением на их устройстве.
Для проверки доступности сервера введите:
Вместо domain.name может быть указан:
- любой домен, например доменное имя вашего сайта, на котором наблюдаются неполадки,
- IP-адрес.
На Windows и Linux эта команда работает по-разному. Команда Ping в Linux посылает пакеты, пока вы не прервёте их отправку вручную с помощью сочетания клавиш Ctrl+C.
Вам придёт ответ:
В выданной статистике будет информация о количестве отправленных, полученных и потерянных пакетов, а также минимальное, максимальное и среднее время их передачи.
На Windows команда по умолчанию отправляет только 4 пакета. Если на Windows вам нужно отправить больше пакетов, можно ввести команду с параметром -t. Это будет выглядеть так:
Команда будет бесконечно пинговать удалённый сервер, пока вы не нажмёте Ctrl+C. После остановки перед вами снова появится статистика, но отправленных пакетов будет больше.
Хорошим временем отклика считается 10 ms, удовлетворительным ― до 20 ms. Значения выше этих могут говорить о проблеме при работе с удалённым сервером.
Вместо цифр может появиться фраза «Превышен интервал ожидания». Такое бывает, когда сервер не успел ответить за 4 секунды. Это установленное по умолчанию время ожидания для утилиты. Такой ответ не всегда говорит о проблемах на сервере. Ping-запросы не приоритетны. Если сервер перегружен, он может выполнить их позже. Можно увеличить время ожидания сервера по инструкции ниже и попробовать ещё раз.
Изменение размера пакета
По умолчанию размер пакета – 32 байта. Можно установить другой размер:
Как протестировать нагрузку
[object Object]
Как изменить размер пакета
[object Object]
Включение звукового сигнала
[object Object]
Простая проверка доступности
[object Object]
Как вывести только результат проверки Ping в Linux
Если вы не хотите заполнять терминал пакетами, можно использовать параметр -q. Вы не будете наблюдать все параметры, а получите только статистику. Введите:
Если пакеты от команды Ping не принимаются, это может говорить о проблемах на сервере или о том, что на устройстве отключена функция ответа на ping-запросы. В обоих случаях можно воспользоваться детальной проверкой с помощью утилит tracert (для Windows) и traceroute (для Linux).
Вывод статистики ping
Чтобы не засорять терминал лишней информацией, пропустим ответы хоста и сразу получим статистику: