Как сделать пинг (ping)?
Содержание:
Руководство пользователя (для операционных систем семейства Microsoft Windows)
Запустите программу Командная строка, выполнив предложенную последовательность действий: Пуск -> Все программы -> Стандартные -> Командная строка (Start -> All Programs -> Accessories -> Command prompt). В открывшемся окне Командной строки введите команду ping, адрес удаленного узла и все необходимые аргументы (их список будет представлен ниже), после чего нажмите клавишу Enter. В качестве адреса удаленного узла можно использовать как запись в формате URL (Uniform Resource Locator), так и стандартный IP-адрес. Например, команды ping ya.ru и ping 77.88.21.3 выполняются идентичным образом, поскольку фактически обращаются к одному и тому же сетевому узлу с IP-адресом 77.88.21.3.
В операционных системах семейства Windows утилита ping отправляет удаленному узлу четыре ICMP-пакета длинной 32 байта каждый, демонстрируя результат в виде откликов узла со сведениями о времени приема-передачи пакета в микросекундах и значении TTL (Time To Live) — времени жизни пакета. Кроме того, приводится общая статистика сеанса обмена данными с заданным узлом. В случае если отклик ICMP Echo-Reply не был получен, утилита возвращает сообщение «Заданный узел недоступен». Если в качестве узла указан недопустимый URL (либо данные о таком адресе отсутствуют в записях DNS, а также при возникновении ошибок маршрутизации) утилита возвращает сообщение «При проверке связи не удалось обнаружить узел . Проверьте имя узла и повторите попытку».
Ниже приведен стандартный вывод команды ping в русскоязычной локализации операционной системы Windows 7:
ping ya.ru
Обмен пакетами с ya.ru с 32 байтами данных:
Ответ от 77.88.21.3: число байт=32 время=42мс TTL=252
Ответ от 77.88.21.3: число байт=32 время=42мс TTL=252
Ответ от 77.88.21.3: число байт=32 время=42мс TTL=252
Ответ от 77.88.21.3: число байт=32 время=42мс TTL=252
Статистика Ping для 77.88.21.3:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 42мсек, Максимальное = 42 мсек, Среднее = 42 мсек
Утилита ping принимает ряд дополнительных параметров, которые записываются в командной строке после команды ping, но перед адресом удаленного узла:
ping
Пример:
ping -t -a ya.ru
где «-t» «-a» — используемые при вызове утилиты параметры, а «ya.ru» — адрес удаленного узла. Список параметров, принимаемых утилитой ping в ОС Windows, приведен ниже:
Таблица 1. Список параметров, принимаемых утилитой ping
Параметр |
Значение |
-t |
Обмен пакетами с удаленным узлом до момента остановки данного процесса пользователем (выполняется нажатием сочетания клавиш Ctrl+C). |
-a |
Определение имен узлов по адресам (в Windows Vista, Windows 7) Определение адресов по именам узлов (в Windows XP, 2000) |
-n число |
Количество отправляемых удаленному узлу пакетов (по умолчанию 4) |
-l размер |
Размер буфера отправки |
-f |
Установка флага, запрещающего фрагментацию пакета (действует для протокола IPv4) |
-i значение |
Устанавливает срок жизни пакета TTL |
-v тип_службы |
Устанавливает тип службы (поле Type of Service в заголовке пакета ICMP, действует для протокола IPv4. Данный параметр недоступен в Windows 7) |
-r число |
Указывает число прыжков, для которых следует записывать маршрут (действует для протокола IPv4). |
-s число |
Указывает число прыжков, для которых следует установить отметку времени (действует для протокола IPv4). |
-j список_узлов |
Указывает список узлов, по которым допустим свободный выбор маршрута (действует для протокола IPv4). |
-k список_узлов |
Жесткий выбор маршрута по указанному списку узлов (действует для протокола IPv4). |
-w значение |
Использование указанного тайм-аута в миллисекундах для каждого ответа удаленного узла |
-R |
Использование заголовка для проверки обратного маршрута (действует для протокола IPv6 и ОС старше Windows XP). |
-S адрес |
Использовать заданный адрес источника (действует для ОС старше Windows XP) |
-4 |
Принудительно использовать протокол IPv4 (действует для ОС старше Windows XP) |
-6 |
Принудительно использовать протокол IPv6 (действует для ОС старше Windows XP) |
Для получения краткой справочной информации по использованию утилиты ping наберите в окне Командной строки команду ping /? и нажмите клавишу Enter.
Команда 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
пинг -t -a -n подсчитывать -l размер -f -я TTL -v TOS -р подсчитывать -s подсчитывать -w Тайм-аут -Р -S srcaddr -п -4 -6 цель /?
Совет: См. Как прочитать командный синтаксис, если вы не знаете, как интерпретировать синтаксис команды ping, как описано выше или в таблице ниже.
-t | Использование этой опции будет пинговать цель пока вы не остановите его с помощью Ctrl-C. |
-a | Этот параметр команды ping разрешает, если возможно, имя хоста IP-адреса цель . |
-n подсчитывать | Эта опция задает количество запросов ICMP Echo Requests для отправки от 1 до 4294967295. Команда ping отправит 4 по умолчанию, если-n не используется. |
-l размер | Используйте эту опцию, чтобы установить размер в байтах пакета запроса эха от 32 до 65 527. Команда ping отправит 32-байтовый эхо-запрос, если вы не используете -l вариант. |
-f | Используйте этот параметр команды ping, чтобы предотвратить фрагментацию ICMP-эхо-запросов маршрутизаторами между вами и цель , -f опция чаще всего используется для устранения неполадок, связанных с путём передачи максимальной пропускной способности (PMTU). |
-я TTL | Эта опция устанавливает значение Time to Live (TTL), максимальное значение которого равно 255. |
-v TOS | Эта опция позволяет вам установить значение типа обслуживания (TOS). Начиная с Windows 7, этот параметр больше не функционирует, но по-прежнему существует по соображениям совместимости. |
-р подсчитывать | Используйте эту опцию команды ping, чтобы указать количество переходов между вашим компьютером и цель компьютера или устройства, которые вы хотите записать и отобразить. Максимальное значение для подсчитывать равно 9, поэтому вместо этого используйте команду tracert, если вам интересно просмотреть все перелеты между двумя устройствами. |
-s подсчитывать | Используйте этот параметр, чтобы сообщить время, в формате временной метки Интернета, что каждый запрос эхо-сигнала получен и отправлен эхо-ответ. Максимальное значение для подсчитывать составляет 4, что означает, что только первые четыре прыжка могут быть отмечены по времени. |
-w Тайм-аут | Указание Тайм-аут значение при выполнении команды ping регулирует количество времени в миллисекундах, которое ping ожидает каждого ответа. Если вы не используете -w , используется значение тайм-аута по умолчанию 4000, что составляет 4 секунды. |
-Р | Этот параметр указывает команде ping отслеживать путь в оба конца. |
-S srcaddr | Используйте этот параметр, чтобы указать адрес источника. |
-п | Используйте этот переключатель для ping a Виртуализация сети Hyper-V адрес поставщика. |
-4 | Это заставляет команду ping использовать только IPv4, но это необходимо только в том случае, если цель это имя хоста, а не IP-адрес. |
-6 | Это заставляет команду ping использовать только IPv6, но -4 , необходимо только при проверке имени хоста. |
цель | Это пункт назначения, который вы хотите выполнить ping, либо IP-адрес, либо имя хоста. |
/? | Используйте переключатель справки с помощью команды ping, чтобы показать подробную справку о нескольких параметрах команды. |
Заметка: -f, -v, -р, -s, -j, а также -k параметры работают при проверке только адресов IPv4. -Р а также -S параметры работают только с IPv6.
Другие менее используемые переключатели для команды ping существуют, включая -j хост-лист , -k хост-лист , а также -с отсек . казнить пинг /? из командной строки для получения дополнительной информации об этих параметрах.
Совет: Вы можете сохранить вывод команды ping в файл с помощью оператора перенаправления. См. Раздел «Как перенаправить вывод команды в файл для получения инструкций» или см. Наш список команд командной строки для получения дополнительных советов.
Как пользоваться 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 для каждого сообщения:
Индикация ошибок
В случае отсутствия ответа от целевого хоста большинство реализаций либо ничего не отображают, либо периодически выводят уведомления о тайм-ауте. Возможные результаты проверки связи, указывающие на проблему, включают следующее:
- ЧАС, ! N или же !П — хост, сеть или протокол недоступны
- S — исходный маршрут не прошел
- F — необходима фрагментация
- U или же ! W — сеть назначения / хост неизвестен
- я — исходный хост изолирован
- А — связь с сетью назначения административно запрещена
- Z — связь с хостом назначения административно запрещена
- Q — за это ToS сеть назначения недоступна
- Т — для этого ToS целевой хост недоступен
- Икс — общение запрещено в административном порядке
- V — нарушение приоритета хоста
- C — действует ограничение приоритета
В случае ошибки целевой хост или промежуточный маршрутизатор отправляет обратно сообщение об ошибке ICMP, например, «хост недоступен» или «TTL превышен при передаче». Кроме того, эти сообщения включают первые восемь байтов исходного сообщения (в данном случае заголовок эхо-запроса ICMP, включая значение quench), поэтому утилита ping может сопоставлять ответы на исходящие запросы.
Примеры команды Ping
ping -n 5 -l 1500 www.google.com
В этом примере команда ping используется для проверки состояния хоста www.google.com. Опция -n указывает команде ping на необходимость отправить пять echo-запросов ICMP вместо стандартных четырех, а опция —l задаёт размер пакета для каждого запроса в 1500 байт вместо 32 байт по умолчанию. При таком запросе вы получите следующий результат:
Pinging www.google.com with 1500 bytes of data: Reply from 74.125.224.82: bytes=1500 time=68ms TTL=52 Reply from 74.125.224.82: bytes=1500 time=68ms TTL=52 Reply from 74.125.224.82: bytes=1500 time=65ms TTL=52 Reply from 74.125.224.82: bytes=1500 time=66ms TTL=52 Reply from 74.125.224.82: bytes=1500 time=70ms TTL=52 Ping statistics for 74.125.224.82: Packets: Sent = 5, Received = 5, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 65ms, Maximum = 70ms, Average = 67ms
Пункт 0% loss в статистике проверки состояния 74.125.224.82 говорит о том, что все посланные к www.google.com echo-запросы были возвращены. Это значит, что до тех пор, пока сеть активна, можно взаимодействовать с сайтом без каких-либо проблем.
Ping 127.0.0.1
В этом примере использования команды ping в cmd проверяется состояние 127.0.0.1, который также известен как IP-адрес localhost в протоколе IPv4.
Ping 127.0.0.1 – отличный способ проверить работоспособность всех функций Windows. Но с помощью этого запроса не получится узнать о состоянии своего или удаленного компьютера. Существует и IPv6-версия этой проверки — ping ::1.
ping -a 192.168.1.22
В этом примере мы пытаемся узнать имя хоста, привязанное к IP-адресу 192.168.1.22. При этом проверка должна быть проведена в штатном режиме, даже если имя хоста выяснить не удастся.
Pinging J3RTY22 with 32 bytes of data: Reply from 192.168.1.22: bytes=32 time<1ms TTL=64 Reply from 192.168.1.22: bytes=32 time<1ms TTL=64 Reply from 192.168.1.22: bytes=32 time=1ms TTL=64 Reply from 192.168.1.22: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.1.22: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms
Как видно из приведенного выше примера, команда ping в Windows 7 определила проверяемый IP-адрес как имя хоста J3RTY22, после чего осуществила проверку состояния при стандартных настройках.
ping -t -6 SERVER
В этом примере мы, при помощи опции -6, включаем принудительное использование протокола IPv6, а затем приступаем к бесконечной проверке состояния SERVER (при помощи опции -t).
Pinging SERVER with 32 bytes of data: Reply from fe80::fd1a:3327:2937:7df3%10: time=1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Ping statistics for fe80::fd1a:3327:2937:7df3%10: Packets: Sent = 7, Received = 7, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms Control-C ^C
После семи полученных ответов мы намеренно прервали проверку состояния. Вспоминаем, как остановить команду ping? При помощи Ctrl+C. Также -6 привела к использованию адресов по протоколу IPv6.
Совет: число после знака % в сгенерированных в данном примере ответах указывает на Zone ID протокола IPv6, которая определяет используемый сетевой шлюз. Можно сгенерировать таблицу из Zone ID, совпадающих с названием вашего сетевого шлюза, при помощи netsh interface ipv6 show interface. IPv6 Zone ID отображается числом в колонке Idx.
Индикация ошибок
В случаях отсутствия ответа от целевого хоста большинство реализаций либо ничего не отображают, либо периодически выводят уведомления о тайм-ауте. Возможные результаты проверки связи, указывающие на проблему, включают следующее:
- H ,! N или ! P — хост, сеть или протокол недоступны
- S — исходный маршрут не прошел
- F — необходима фрагментация
- U или ! W — сеть назначения / хост неизвестен
- I — исходный хост изолирован
- A — связь с сетью назначения административно запрещена
- Z — связь с хостом назначения запрещена административно
- Q — для этого ToS сеть назначения недоступна
- T — для этого ToS целевой хост недоступен
- X — общение запрещено в административном порядке
- V — нарушение приоритета хоста
- C — действует ограничение приоритета
В случае ошибки целевой хост или промежуточный маршрутизатор отправляет обратно сообщение об ошибке ICMP, например, «хост недоступен» или «TTL превышен при передаче». Кроме того, эти сообщения включают первые восемь байтов исходного сообщения (в данном случае заголовок эхо-запроса ICMP, включая значение подавления), поэтому утилита ping может сопоставлять ответы на исходящие запросы.
Общие сведения
Утилита ping является одной из стандартных консольных утилит, входящих в комплект поставки операционных систем семейства Microsoft Windows, и предназначена для проверки наличия и скорости соединения в сетях, работающих под управлением протокола TCP/IP. Утилиты с аналогичной функциональностью реализованы также в ряде других операционных систем и включены в состав ПО, управляющего некоторыми активными сетевыми устройствами, такими как, например, маршрутизаторы. В среде Windows работа с утилитой осуществляется с использованием командного интерпретатора CMD. В Unix-подобных системах для обращения к возможностям утилиты ping обычно требуется наличие прав root (суперпользователя), при этом в большинстве из них можно вызвать данную утилиту из терминала с помощью дополнительной команды sudo.
Принцип действия утилиты ping построен на анализе времени задержки между моментом отправки удаленному узлу запроса по протоколу ICMP (Internet Control Message Protocol Echo-Request) и получением от этого узла ответа (Internet Control Message Protocol Echo-Reply). Данный временной диапазон носит название RTT (Route Trip Time) и позволяет оценить скорость передачи информации, а также количество потерянных пакетов. На основе этих сведений можно сделать вывод о доступности удаленного узла и текущей нагрузке на используемые для соединения с ним каналы связи. Потеря ста процентов отправленных удаленному узлу пакетов может свидетельствовать о том, что данный узел недоступен, либо о выходе из строя промежуточного сетевого оборудования. Это может также означать, что какое-либо из осуществляющих маршрутизацию промежуточных устройств блокирует обработку запросов ICMP Echo.
Командная строка в Windows 10 или Windows 7
Для запуска командной строки проще всего воспользоваться поиском в меню «Пуск». Для этого откройте меню «Пуск», введите команду «cmd» и после выполнения поиска откройте программу «Командная строка». При этом командную строку можно запускать как в обычном режиме, так и от имени администратора, это не принципиально.
На скриншотах внизу показано, как это выглядит в операционных системах Windows 10 и Windows 7.
Также командную строку можно запустить при помощи меню «Выполнить». В этом случае нужно нажать комбинацию клавиш Win-R и в открывшемся меню ввести команду «cmd».
Запуск через меню «Выполнить» работает, как в Windows 10, так и в Windows 7.
Параметры
- -t
-
Задает для команды ping отправку сообщений с эхо-запросом к точке назначения до тех пор,
пока команда не будет прервана. Для прерывания команды и вывода статистики нажмите
комбинацию CTRL-BREAK. Для прерывания команды ping и выйхода из нее нажмите клавиши CTRL-C. - -a
-
Задает разрешение обратного имени по IP-адресу назначения. В случае успешного выполнения
выводится имя соответствующего узла. - -n счетчик
- Задает число отправляемых сообщений с эхо-запросом. По умолчанию 4.
- -l размер
-
Задает длину (в байтах) поля данных в отправленных сообщениях с эхо-запросом. По умолчанию
32 байта. Максимальный размер 65527. - -f
-
Задает отправку сообщений с эхо-запросом с флагом «Don’t Fragment» в IP-заголовке,
установленном на 1. Сообщения с эхо-запросом не фрагментируются маршрутизаторами на пути к
месту назначения. Этот параметр полезен для устранения проблем, возникающих с максимальным
блоком данных для канала (Maximum Transmission Unit). - -i TTL
-
Задает значение поля TTL в IP-заголовке для отправляемых сообщений с эхо-запросом. По
умолчанию берется значение TTL, заданное по умолчанию для узла. Для узлов Windows XP это
значение обычно равно 128. Максимальное значение TTL 255. - -v тип
-
Задает значение поля типа службы (TOS) в IP-заголовке для отправляемых сообщений с
эхо-запросом. По умолчанию это значение равно 0. тип это десятичное значение от 0
до 255. - -r счетчик
-
Задает параметр записи маршрута (Record Route) в IP-заголовке для записи пути, по которому
проходит сообщение с эхо-запросом и соответствующее ему сообщение с эхо-ответом. Каждый
переход в пути использует параметр записи маршрута. По возможности значение счетчика
задается равным или большим, чем количество переходов между источником и местом назначения.
Параметр счетчик имеет значение от 1 до 9. - -s счетчик
-
Указывает вариант штампа времени Интернета (Internet Timestamp) в заголовке IP для записи
времени прибытия сообщения с эхо-запросом и соответствующего ему сообщения с эхо-ответом
для каждого перехода. Параметр счетчик имеет значение от 1 до 4. - -j список_узлов
-
Указывает для сообщений с эхо-запросом использование параметра свободной маршрутизации в
IP-заголовке с набором промежуточных точек назначения, указанным в списке_узлов. При
свободной маршрутизации последовательные промежуточные точки назначения могут быть
разделены одним или несколькими маршрутизаторами. Максимальное число адресов или имен в
списке узлов 9. Список узлов это набор IP-адресов (в точечно-десятичной нотации),
разделенных пробелами. - -k список_узлов
-
Указывает для сообщений с эхо-запросом использование параметра строгой маршрутизации в
IP-заголовке с набором промежуточных точек назначения, указанным в списке_узлов. При
строгой маршрутизации следующая промежуточная точка назначения должна быть доступной
напрямую (она должна быть соседней в интерфейсе маршрутизатора). Максимальное число адресов
или имен в списке узлов равно 9. Список узлов это набор IP-адресов (в точечно-десятичной
нотации), разделенных пробелами. - -w интервал
-
Определяет в миллисекундах время ожидания получения сообщения с эхо-ответом, которое
соответствует сообщению с эхо-запросом. Если сообщение с эхо-ответом не получено в пределах
заданного интервала, то выдается сообщение об ошибке «Request timed out». Интервал по
умолчанию равен 4000 (4 секунды). - имя_конечного_компьютера
- Задает точку назначения, идентифицированную IP-адресом или именем узла.
- /?
- Отображает справку в командной строке.
Примеры
Приведенный ниже пример содержит результаты работы команды ping:
Для отправки сообщения точке назначения 10.0.99.221 и сопоставления с ее узловым именем
введите:
ping -a 10.0.99.221
Для отправки точке назначения 10.0.99.221 десяти собщений с эхо-запросом, каждое из которых
имеет поле данных из 1000 байт, введите:
ping -n 10 -l 1000 10.0.99.221
Для отправки сообщения точке назначения 10.0.99.221 и записи маршрута для 4 переходов
введите:
ping -r 4 10.0.99.221
Для отправки сообщения точке назначения 10.0.99.221 и задания свободной маршрутизации для
точек назначения 10.12.0.1-10.29.3.1-10.1.44.1 введите:
ping -j 10.12.0.1 10.29.3.1 10.1.44.1 10.0.99.221
раздел форумаздесь