Как проверить пинг через командную строку
Пинг (ping) — это утилита командной строки, с помощью которой можно проверить, в сети ли тот или иной сервер. Простыми словами, команда ping отправляет серверу сообщение «ты в сети?». Если сервер в сети, он отправляет в ответ сообщение «да, я в сети».
Проверить пинг — это первый шаг, с которого можно начать диагностику, если не открывается сайт или сервер не реагирует на попытки что-то с ним сделать.
В этой статье разбираемся, как проверить пинг до сервера, какие у команды ping бывают вариации, а также как понимать разные её результаты.
Проверка пинга
На компьютере проверить пинг сервера можно в командной строке. Для смартфонов есть специальные приложения, например, iNetTools (для iPhone) и Network Utilities (для Android). Вот инструкции для каждого из способов.
Windows
Нажмите комбинацию клавиш Win + R и в появившемся окне введите команду cmd.
Откроется командная строка. Чтобы проверить пинг, используйте команду ping. В качестве адреса сервера можно указать его IP-адрес или доменное имя.
ping адрес_сервера
Linux или Mac OS
В Mac OS перейдите в боковом меню Finder в раздел «Программы», затем перейдите в папку «Утилиты» и откройте приложение «Терминал».
В Linux Терминал открывается комбинацией клавиш Ctrl+Alt+T.
В Терминале, чтобы пропинговать сервер, введите команду ping вместе с доменным именем или IP-адресом сервера.
ping адрес_сервера
iPhone
На главной странице приложения iNetTools перейдите в раздел «Ping» и впишите там в строке поиска домен или IP-адрес сервера. Результат пинга отобразится чуть ниже в блоке «Result».
Android
В приложении Network Utilities перейдите в меню в левом верхнем углу и откройте раздел «Ping». Введите там в строке поиска домен или IP-адрес сервера, который хотите пропинговать.
Результаты пинга
Если пропинговать сервер удалось, в результатах команды будет имя сервера и его IP-адрес, скорость ответа в миллисекундах, количество отправленных пакетов и сколько из них было доставлено:
- packets transmitted — количество отправленных пакетов;
- received — количество доставленных пакетов;
- packet loss — процент потерянных пакетов;
- time — общее время на доставку и возврат пакетов;
- rtt min/avg/max/mdev — минимальное время/среднее время/максимальное время/квадратичное отклонение.
В этом примере мы сделали пинг-тест сервера, где находится сайт vashdomen.com. Было отправлено четыре пакета по 64 байта. Все четыре пакета вернулись. Среднее время передачи запроса и ответа на него — 184 миллисекунды.
Если у вас получилось пропинговать IP-адрес, но при этом не удаётся проверить пинг того же сервера по домену, значит проблема в преобразовании домена в IP-адрес. Проверьте настройки DNS-серверов на домене.
Если пропинговать сервер не удалось, вы увидите один из двух ответов: unknown host или request timeout. По ним вы можете понять, в каком месте искать проблему: на вашей стороне или на стороне сервера.
Сообщение unknown host означает, что компьютер не смог отправить пинг к серверу. Это говорит о том, что проблема на вашей стороне. Возможно, нет подключения к интернету или вы пытаетесь пинговать адрес, которого не существует.
Сообщение request timeout означает, что компьютер успешно отправил пинг, но сервер не ответил в течение установленного времени ожидания. Это значит, что проблема либо на стороне сервера, либо на пути запроса между компьютером и сервером. Например, сервер завис или отключился, либо провайдер блокирует сайт.
Отдельный момент по поводу request timeout — такое сообщение не всегда означает, что сервер не в сети. Также может быть такое, что в настройках сервера блокируются ICMP-запросы. Чтобы это проверить, попробуйте подключиться к серверу по SSH. Если получается, значит сервер на самом деле работает.
Вариации команды ping
Кроме простой проверки соединения с сервером, есть несколько вариаций команды на разные случаи жизни. Вот самые интересные из них.
Постоянный пинг
По умолчанию команда пинг в Windows отправляет четыре пакета, а в Linux и MacOS действует непрерывно. Чтобы запустить непрерывный ping сайта в Windows, используйте опцию -t:
ping -t 123.45.67.89
Чтобы остановить пинг, используйте комбинацию клавиш CTRL+C.
Пинг с указанием количества пакетов
Можно наоборот — указать необходимое количество пакетов. Например, вот команда, которая отправит строго пять пакетов:
Windows
ping -n 5 123.45.67.89
Linux или MacOS
ping -c 5 123.45.67.89
Как вариант можно сделать пинг сайта всего один раз. Например, если нужно проверить IP-адрес, на который сейчас направлено доменное имя.
Windows
ping -n 1 vashdomen.com
Linux или MacOS
ping -c 1 vashdomen.com
Пинг с указанием размера пакета
По умолчанию отправляются пакеты по 32 или 64 байта, но этот параметр тоже можно изменить. Например, используйте такую команду, чтобы выполнить ping с пакетами по 1025 байт:
Windows
ping -l 1024 123.45.67.89
Linux
ping -s 1024 123.45.67.89
Пинг со звуком
Такой вариант команды ping доступен только в Linux и MacOS. Его удобно использовать, когда перезагружаете сервер. Пока сервер ещё не перезапустился, пакеты не доставляются и звук не работает. Как только перезагрузка закончится, терминал начнёт издавать звук. До этого момента можно отвлечься на другие задачи.
ping -a 123.45.67.89
Что дальше
Теперь вы знаете, что такое пинг и как проверить его в командной строке. Ещё одна утилита, при помощи которой вы можете продолжить диагностику сети, это команда traceroute. Воспользуйтесь ей, если тест пинга показал, что сервер в сети. В этом вам поможет наша статья:
Команда PING — отправить эхо-запрос по протоколу ICMP на имя или IP-адрес целевого узла
Команда PING это, пожалуй, самая используемая сетевая утилита командной строки. PING присутствует во всех версиях всех операционных систем с поддержкой сети и является простым и удобным средством опроса узла по имени или его IP-адресу.
Для обмена служебной и диагностической информацией в сети используется специальный протокол управляющих сообщений ICMP (Internet Control Message Protocol). Команда ping позволяет выполнить отправку управляющего сообщения типа Echo Request (тип равен 8 и указывается в заголовке ICMP-сообщения) адресуемому узлу и интерпретировать полученный от него ответ в удобном для анализа виде. В поле данных отправляемого icmp-пакета обычно содержатся символы английского алфавита. В ответ на такой запрос, опрашиваемый узел дожжен отправить icmp-пакет с теми же данными, которые были приняты, и типом сообщения Echo Reply (код типа в ICMP-заголовке равен 0) . Если при обмене icmp-сообщениями возникает какая-либо проблема, то утилита ping выведет информацию для ее диагностики.
Формат командной строки:
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 таймаут — Максимальное время ожидания каждого ответа в миллисекундах.
ping google.com — эхо-запрос к узлу с именем google.com с параметрами по умолчанию — количество пакетов равно 4, длина массива данных = 32 байта.
ping -6 ya.ru — пинг узла ya.ru с использованием протокола Ipv6
ping -a 192.168.1.50 — выполнить пинг с определением имени конесного узла по его адресу.
ping -s 192.168.0.1 computer — пинг узла computer от источника 192.168.0.1. Используется когда на компьютере имеется несколько сетевых интерфейсов.
ping w 5000 ya.ru — пинг с таймаутом ожидания равным 5 секунд ( по умолчанию — 4 сек).
ping -n 5000 -l 1000 ab57.ru — опрос узла ab57.ru 5000 раз, пакетами с данными длиной в 1000байт. Допустимая максимальная длина данных — 65500.
ping -n 1 -l 3000 -f ya.ru — пинг с запретом фрагментации пакета.
ping -n 1-r 3 ya.ru — отправить 1 эхо-запрос на узел ya.ru с отображением первых 3-х переходов по маршруту.
ping -i 5 ya.ru — пинг с указанием времени жизни TTL=5. Если для достижения конечного узла потребуется большее количество переходов по маршруту, то маршрутизатор, прервавший доставку ответит сообщением ”Превышен срок жизни (TTL) при передаче пакета.”
Обобщенная схема соединения компьютера (планшета, ноутбука домашней сети) с удаленным конечным узлом можно представить следующим образом:
В качестве домашней сети используется наиболее распространенная сеть с IP-адресами 192.168.1.0 /255.255.255.0 . Речь идет об IPv4 – IP протоколе версии 4, где для адресации используется 4 байта. IP- адреса принято представлять в виде десятичных значений байтов, разделяемых точками. Каждое устройство в сети должно иметь свой уникальный адрес. Кроме адреса, в сетевых настройках используется маска сети ( маска подсети). Маска имеет такой же формат представления, как и адрес. Комбинация адреса и маски определяет диапазон адресов, которые принадлежат локальной сети — 192.168.1.0-192.168.1.255. Первый и последний адреса диапазона не назначаются отдельным сетевым устройствам, поскольку используются в качестве адреса сети и широковещательного адреса. Обычно адрес роутера делают равным 192.168.1.1 или 192.168.1.254. Это не является обязательным стандартом, но на практике используется довольно часто. Единичные биты маски определяют постоянную часть IP-адреса сети, а нулевые — выделяемые отдельным узлам. Значение 255 — это байт с установленными в единицу битами. Маска сети служит средством определения диапазона IP-адресов, принадлежащих локальной сети. Устройства с такими адресами достижимы локально, без использования маршрутизации . Маршрутизация — это способ обмена данными с сетевыми устройствами не принадлежащими к данной локальной сети через специальное устройство — маршрутизатор ( router, роутер ). Маршрутизаторы представляют собой специализированные компьютеры с несколькими сетевыми интерфейсами и специализированным программным обеспечением обеспечивающим пересылку IP-пакетов между отправителем и получателем, находящимися в разных сетях. В такой пересылке могут участвовать несколько маршрутизаторов, в зависимости от сложности маршрута. Домашний роутер — простейшая разновидность маршрутизатора, который обеспечивает пересылку пакетов, адресованных во внешние сети следующему по маршруту маршрутизатору в сети провайдера. Следующий маршрутизатор проверяет достижимость адреса конечного узла локально, и либо пересылает ему данные, либо передает их следующему маршрутизатору в соответствии с таблицей маршрутов. Так происходит до тех пор, пока данные не достигнут получателя или закончится время жизни пакета.
Команда PING можно использовать для диагностики отдельных узлов:
ping 127.0.0.1 — это пинг петлевого интерфейса. Должен выполняться без ошибок, если установлены и находятся в работоспособном состоянии сетевые программные компоненты.
ping свой IP или имя — пинг на собственный адрес или имя. Должен завершаться без ошибок, если установлены все программные средства протокола IP и исправен сетевой адаптер.
ping IP-адрес роутера — должен выполняться, если исправна сетевая карта компьютера, исправен кабель или беспроводное соединение, используемые для подключения к роутеру и исправен сам роутер. Кроме того, настройки IP должны быть такими, чтобы адрес компьютера и роутера принадлежали одной подсети. Обычно это так, когда сетевые настройки выполняются автоматически средствами DHCP-сервера маршрутизатора.
ping yandex.ru — выполнить опрос узла с именем yandex.ru . Если опрос завершается с ошибкой, то причиной может быть не только отсутствие связи с маршрутизатором провайдера, но и невозможность определения адреса узла yandex.ru из-за проблем с программными средствами разрешения имен.
ping 8.8.8.8 — выполнить опрос узла с IP-адресом 8.8.8.8 . Если опрос по адресу выполняется без ошибок, а опрос по имени завершается сообщением о неизвестном узле, то проблема в разрешении имен. Причиной может быть неработоспособность DNS-сервера провайдера. В этом случае, можно попробовать сменить его в настройках сетевого соединения на публичные DNS сервера Google с адресами 8.8.4.4 и 8.8.8.8. Также, проблема может быть вызвана плохим качеством связи с провайдером, что сопровождается слишком большим временем отклика и пропаданием пакетов.
ping -t yandex.ru — выполнять ping до нажатия комбинации CTRL+C, При нажатии CTRL+Break — выдается статистика и опрос узла продолжается.
ping -n 1000 -l 500 192.168.1.1 — выполнить ping 1000 раз с использованием сообщений, длиной 500 байт. Пинг пакетами стандартной длины в 32 байта может выполняться без ошибок, а на длинных — с ошибками, что характерно для беспроводных соединения при низком уровне сигнала в условиях интенсивных помех.
ping -n 1 -r 9 -w 1000 yandex.ru — выполнить ping 1 раз (ключ -n 1), выдавать маршрут для первых 9 переходов (-r 9), ожидать ответ 1 секунду (1000мсек)
В результате выполнения данной команды отображается и трассировка маршрута:
Обмен пакетами с 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 и некоторые маршрутизаторы в сетях небольших провайдеров.
Использование PING в командных файлах.
Нередко, команда PING используется для организации задержек в командных файлах. Выполняется пингование петлевого интерфейса с указанием нужного значения счетчика пакетов, задаваемого параметром -n . Посылка эхо-запросов выполняется с интервалом в 1 секунду, а ответ на петлевом интерфейсе приходит практически мгновенно, поэтому задержка будет приблизительно равна счетчику минус единица:
ping -n 11 127.0.0.1 — задержка в 10 секунд.
Команда PING используется в командных файлах для определения доступности IP-адресов. Поскольку, результат опроса никак не отражается в переменной ERRORLEVEL , то вместо ее анализа используется поиск определенных признаков в данных стандартного вывода PING. Если внимательно посмотреть на сообщения программы ping.exe при опросе доступного и недоступного узла, то можно заметить, что они значительно отличаются
ping 456.0.0.1 — ping на несуществующий адрес
Ответ на такую команду может отличаться от конкретной версии утилиты, и может быть приблизительно таким
При проверке связи не удалось обнаружить узел 456.0.0.1. Проверьте имя узла и повторите попытку.
ping yandex.ru — 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 — начало подпрограмм ы обработки состояния доступности узла
.
.
В более простом варианте можно использовать команды:
PING yandex.ru |find «TTL TTL text-align:center;»>
15 примеров команды PING для диагностики сети
Благодаря Linux, у нас есть очень много инструментов облегчающих администрирование и диагностику сети. В этом плане команда PING является одним из самых полезных инструментов для системных и сетевых администраторов.
Сама базовая возможность этой утилиты – определить доступен ли тот или иной хост. Тем не менее в этом материале мы приведем примеры расширенных возможностей этой команды в системе Linux.
Про Linux за 5 минут | Что это или как финский студент перевернул мир?
Для чего используется команда PING?
- измерение времени за которое общаются два хоста;
- выявление IP адреса конкретного хоста, как в локальной сети, так и в глобальной
- она может быть частью bash скрипта для автоматической проверки сетевого устройства
- проверка связи с конкретным устройством.
Как видно, эта команда очень необходима для администрирования сети и серверов.
Как работает команда PING?
Принцип работы команды Ping прост: она посылает серию пакетов маленького размера на указанное устройство.
Для тестирования устройства может быть использован либо IP-адрес, либо имя хоста. После отправки пакета, утилита проверяет и измеряет время ответа целевого устройства.
Как вы могли предположить, время ответа зависит от нескольких условий в том числе географическое расположение или устройств, расположенных между источником и целевым устройством.
Например, в локальной проводной сети команда вернет лучший результат по времени, чем в сети с несколькими маршрутизаторами и сетевыми мостами.
Однако, на основе полученной информации утилита будет судить о состоянии целевого устройства.
Синтаксис команды следующий:
ping [options] [destination]
Ниже приведены некоторые полезные и часто используемые ключи для этой команды:
- -c: Позволяет указать количество пакетов для отправки.
- -s: Позволяет изменять размер пакета по умолчанию.
- -v: Отображает текущее состояние выполнения команды.
- -w: Указывает в секундах время завершения команды.
- -i: Позволяет указать интерфейс, с которого будут идти запросы.
Можно ли использовать PING с прокси-сервером?
Прокси – это сервер или приложение играющее роль посредника для соединения двух хостов в сети. Это своего рода «человек посередине», который отправляет запросы прямо к хосту.
Проблема в том, что команда PING требует прямого соединения между устройствами. Таким образом, команда Ping не может функционировать если перед ним стоит прокси-сервер.
Как вариант, можно воспользоваться сайтами, которые предлагают команду Ping как услугу. С другой стороны, для решения некоторых задач с командой Ping, можно использовать команду curl . Также можно прибегнуть к помощи VPN, который спрячет ваш реальный IP.
Ping IPv6 адресов
По умолчанию, когда запускаем команду PING, мы используем IP версии 4. Однако, с появлением протокола IPv6, все чаще стали встречаться адреса такого формата.
Ядро Linux поддерживает IPv6 начиная с версии 2.2, так что все дистрибутивы Linux поддерживают этот протокол.
Базовый синтаксис таков:
$ ping -6 2001:4860:4860::8888
В старых версиях была команда ping6 . В новых дистрибутивах её нет и весь функционал объединен с ping .
Как и при работе с IPv4, ключом –c можем указать число пакетов, для отправки, а ключ –i – определяет интерфейс для исходящих запросов.
Ping конкретного порта
Иногда приходится проверят доступен ли тот или иной порт на проверяемом хосте. К сожалению, команда Ping не имеет такой возможности, но это можно сделать с помощью telnet , который по умолчанию установлен на Linux.
Чтобы проверить доступность порта просто введите следующую команду:
telnet [host] [port]
telnet google.com 80
Ping с выводом времени
Хотя команда ping дает много полезной информации, но этого может быть недостаточно. Тем не менее, есть возможность настроить команду так, чтобы она показала дату и время отправки пакета. Это может сделать вывод приятней и полезней для скриптов и логирования.
Для этого достаточно прописать указанную ниже команду. Но вам придется установить пакет ccze .
ping [host] | xargs -n1 -i bash -c 'echo `date +%F %T`" <>"' | ccze
Как видно из скриншота, команда показывает дату и время отправки каждого пакета.
Ping всех устройств в указанной подсети
Командой Ping можно посылать сигнал всем хостам в сети или подсети. Для этого нужно запустить ping с ключом –b на широковещательный адрес, который заканчивается на 255. Например:
ping -b -c 4 192.168.1.255
Итак, если хост назначения недоступен, значит либо там блокируются ICMP пакеты, либо есть проблемы с сетью или таблицей маршрутизации.
Как завершить команду PING?
По умолчанию, в системе Linux команда Ping непрерывно посылает пакета на хост. Но если нужная информация получена, то необходимо как-то прервать выполнение команды. Для этого просто нужно нажать комбинацию клавиш CTRL+C .
После этого команда немедленно остановится.
Завершение работы команды по счетчику
Вы можете ограничить число посылаемых пакетов. Например, если поставить число пакетов равным 10, то после отправки указанного числа пакетов выполнение команды прекратится.
ping -c 10 [host]
Где расположена утилита PING?
В Unix-подобных системах таких, как Linux бинарные файлы обычно располагаются по пути
/usr/bin/
В этой папке можно найти все множество бинарных файлов, которые мы используем как команды в терминале. В других ОС семейства Linux, они могут быть расположены в:
/usr/sbin/
Проверить это можем командой ls :
$ ls /usr/bin | grep ping
На скриншоте видно, что команда ping находится в папке
/usr/bin/
Другой метод, которым можно найти место расположения команд это which :
$ which ping
На выводе она даст следующую информацию:
/usr/bin/ping
Проверка задержки командой PING
Одна из возможностей, предоставляемых командой PING, является возможность измерения времени отклика сети. По-другому это называется задержка или время ожидания.
Чтобы измерить задержку введи указанную команду и обратите внимание на ввыод:
ping -c 4 [host] ping -c 4 192.168.1.1
Как вы могли заметить, каждый пакет был отправлен с конкретным временем ответа. В конце же есть строка, которая начинается на:
rtt min/avg/max/mdev
Второе значение после знака равенства – это время задержки. В нашем случае он равен 6,798.
С помощью этого показателя мы можем определить хосты, связь с которыми хуже и приять соответствующие меры.
Поиск идеального значения MTU
MTU (Maximum Transmission Unit) это максимальный размер пакета, который может быть передан по сети.
Сегодня, в целях безопасности, в сетях создаются препятствия для работы MTU. Но большинство локальных сетей на основе Ethernet использует MTU размером 1500 байт.
Если нужно найти самый подходящий размер MTU с помощью команды Ping, следует определить начальное значение и уменьшать его до тех пор, пока прекратятся ошибки. Если значение большое, мы получим следующую ошибку:
ping: local error: Message too long
Чтобы сделать это запустите следующую команду:
ping -M do -s [initial_value] [host]
В нашем случае, значение размера пакета слишком большое. Поэтому уменьшаем его до 1472 байтов.
Если получите другое сообщение, начальное значение должно быть уменьшено по единице до тех пор, пока не получите требуемый результат.
Если значение MTU известно, оно может быть использовано для улучшения сети. Особенное если сеть большая вплоть до городских сетей.
Ping на 2-ом уровне OSI (использование arping)
С помощью команды ping диагностика проводится на основе IP-адреса конкретного узла в сети. Это связано с тем, что команда ping работает на третьем сетевом уровне модели OSI.
С другой стороны, можно использовать другую встроенную в Linux команду – arping . Эта утилита работает так же, как ping, но на втором – канальном уровне модели OSI.
Синтаксис команды следующий:
$ sudo arping [Ip_address]
$ sudo arping [Ip_address] $ sudo arping 192.168.1.1
В результате получите что-то подобное:
Вывод команды показывает размер отправленного пакета, затем MAC адрес узла назначения, а также время ответа.
Отметим, что эта команда не предустановлена на системе Debian и производных.
Ping по имени узла
По умолчанию, команда ping посылает пакеты на узел назначения используя IP адрес или имя узла назначения. Также нужно отметить, что большинство реализаций утилиты ping на Linux не разрешают DNS в обратном направлении.
Например, если мы запустим команду ping, указав IP адрес, он вернёт только IP узла. И наоборот, если параметром передадим имя узла, то команда вернет его IP адрес. Посмотрите вывод введя команду ниже:
$ ping google.com
Ping маршрута (traceroute)
Сама по себе команда ping не показывает пути от источника к узлу назначения. Но это было бы очень кстати в том случае, когда узел назначения не отвечает, чтобы определить где именно теряется связь.
Команда tracert (Windows) или traceroute работают аналогично ping. Преимуществом этой команды является то, что он показывает весь путь следования пакета от источника до узла назначения.
В принципе traceroute посылает тот же ICMP пакет, что и Ping. Но в случае traceroute, в отличии от ping начально значение TTL пакета выставляется равным единице. Пакет доходит до первого узла по пути к узлу назначения. Устройство уменьшает TTL на одну единицу и если получается нуль, то возвращает сообщение об ошибке истечения времени пакета. В сообщение так же содержится IP адрес и имя хоста. Отправитель получает данное сообщение. Если оно не от узла назначения, то посылает второй пакет с TTL на один больше предыдущего. И так до тех пор, пока не получит ответ от узла назначения. Для получения пути нужно ввести команду:
traceroute [hostname/IPaddres]
Запустить команду если ping вернул ошибку
Представьте, что вам нужно получить оповещение если узел назначения перестал отвечать на запросы команды ping. Для этого нужно включить команду ping в bash скрипт и прописать нужные команды. Например, скрипт ниже позволяет вам проверить отвечает ли узел на запросы ping:
#! /bin/bash ping -c 1 [host] If [ $? -eq 0]; then #Your_command_here Fi
Установление размера пакета ping
По умолчанию, размер пакетов ICMP равен 56 байтам. Это позволяет не влиять на работу сети во время проверки. Но при необходимости можно изменять это значение. Для этого достаточно запустить команду ping с ключом –s и требуемым размером. Например:
ping -s [packet_size] hostname/IP
Если нужно установить значение пакета равным 100 байтам, нужно прописать команду ниже:
ping -s 100 192.168.1.1
Отключение команды ping
Если вы обслуживаете сеть, то вам может быть необходимо отключить ответ на ping запросы в любое время. Это можно сделать как временно, так и постоянно, в зависимости от ваших нужд. Для временного отключения команды ping нужно ввести команду ниже от имени root-а:
$ su $ echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
Она выключить возможно ответа на ICMP запросы до перезагрузки системы. Но если нужно навсегда отключить эту возможность, то придется отредактировать файл
/etc/sysctl.conf
и добавить следующую строку:
$ nano /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
Сохраните файл и, для применения изменений введите команду:
$ sysctl -p
Заключение
В этом материале мы рассмотрели, как команда ping работает в системе Linux. Ping одна из самых легких команд. Она позволяет лицам, ответственным в обеспечении нормально работы сети, выявлять проблемы и устранять их.
Как проверить пинг и сделать трассировку до сервера? Команды Ping, Tracert и MTR
Многим пользователям интернета знакома такая ситуация — компьютер включен, интернет работает, но нет доступа к какому — то определенному ресурсу в сети. Например: не открывается сайт, не доступен игровой сервер или не работает удаленный доступ к компьютеру. В таких случаях можно проверить доступность сетевых ресурсов с помощью диагностических методов. Самые распространенные из них — это проверка на пинг и трассировка. Выполняются они с помощью специальных утилит — Ping, Tracert/Traceroute и MTR/WinMTR. Рассмотрим подробно каждую из данных утилит.
Ping.
Утилита Ping — самый простой способ проверки доступности любого сетевого ресурса.
Как это работает? Команда Ping отправляет серию небольших пакетов с данными на тот сервер, который нужно проверить. Спустя некоторое время от сервера приходит ответ — в виде тех же пакетов, что были отправлены. Если обратно вернулись все отправленные пакеты, то это означает, что сервер доступен и никаких проблем не наблюдается.
Как проверить пинг до сервера в Windows?
Ping является консольной утилитой, вызывается с помощью командной строки.
В поисковой строке меню Пуск вводим cmd, запускаем командную строку.
В командной строке вводим команду ping и далее через пробел вписываем доменное имя (название) или IP-адрес того сайта, доступность которого следует проверить.
Пингуем сайт yandex.ru.
Как видно из результатов, отправлено было 4 пакета, каждый размером по 32 байта. Время прохождения каждого пакета составило 5 мс. Все отправленные до сервера пакеты вернулись обратно.
По умолчанию команда Ping в Windows отправляет к запрашиваемому серверу всего 4 пакета данных. Для отправки большего количества пакетов данных используется команда ping с параметром «-t».
Например, ping -t yandex.ru
Команда будет пинговать сайт в бесконечном цикле. Остановить данный процесс можно с помощью комбинации клавиш Ctrl + C.
Посмотрим, как будет выглядеть результат выполнения команды Ping на недоступный (неработающий) сетевой ресурс.
Как проверить пинг до сервера в Linux?
В ОС Linux проверка пинга также осуществляется с помощью команды ping. Вызывается данная команда из терминала. По умолчанию, процесс проверки пинга в Linux идет непрерывным циклом, в отличие от ОС Windows. Остановить данный процесс можно с помощью комбинаций клавиш Ctrl + C.
Запускаем терминал. Для этого проходим в меню Пуск > Администрирование > Терминал.
В терминале вводим команду ping и адрес проверяемого ресурса.
Трассировка. Команды tracert и traceroute.
Трассировка — еще один способ проверки связности с сервером. Во время трассировки также осуществляется отправка пакетов данных до сервера. Но в отличие от проверки пинга, трассировка дает возможность посмотреть все промежуточные узлы, через которые проходят пакеты до конечного хоста.
Как сделать трассировку до сервера в Windows.
В ОС Windows трассировка маршрута до сетевого ресурса осуществляется с помощью утилиты tracert.
Запускаем командную строку, прописываем tracert и далее через пробел адрес проверяемого сервера (сайта). Сделаем трассировку маршрута до сайта yandex.ru.
Смотрим полученный вывод. Результат трассировки показывает весь маршрут, через который прошел запрос до сайта. Каждая строка в выводе — это промежуточный узел (маршрутизатор). Их еще называют прыжками или «хопами». Наш запрос до сайта yandex.ru совершил ровно 7 прыжков (хопов) — прошел через 6 промежуточных узлов и седьмым шагом достиг конечного хоста. На каждом шаге указано время, затраченное на отправку пакета и получения ответа от узла.
Рассмотрим вариант трассировки до сайта google.com.
«Звездочки» в полученном выводе не означают проблему на узле, как многие ошибочно считают. Просто данный маршрутизатор настроен таким образом, чтобы не отвечать на входящий запрос (как одна из мер по защите узла от DDos-атак). Отправленные пакеты прошли весь путь и успешно достигли конечной точки.
Рассмотрим пример трассировки до сайта, доступ к которому заблокирован.
Если полученные данные нужны для технической поддержки интернет-провайдера, выделяем мышью строки для отправки и нажимаем “Enter”. Информация попадет в буфер обмена. Далее создаем текстовый файл и вставляем в него скопированную запись с помощью комбинации клавиш “Ctrl + V”. Сохраняем файл и отправляем в техническую поддержку.
Как сделать трассировку в Linux.
В ОС Linux трассировку выполняет утилита traceroute.
Запускается данная утилита так же, как и утилита Ping, из терминала.
По умолчанию утилита traceroute не входит в дистрибутивы Linux, поэтому при выполнении трассировки может быть получена ошибка “Command ‘traceroute’ not found, but can be installed”. Данная запись означает, что traceroute не установлен на ОС Linux.
Для установки traceroute вводим в терминале следующие команды:
sudo apt-get update.
sudo apt-get install traceroute.
Утилита traceroute установлена. Выполним трассировку до сайта yandex.ru.
Утилиты MTR и WinMTR.
В Linux есть еще одна очень полезная утилита для диагностики сети — MTR (My traceroute). Доступна во всех дистрибутивах Linux. MTR сочетает в себе функционал Traceroute и Ping. Данная утилита также, как и Traceroute, выводит информацию о маршруте, который проходят сетевые пакеты до конечного узла. Но при этом в режиме реального времени показывает время отклика всех переходов от одного хоста к другому и потери пакетов на каждом шаге.
Запускается MTR из терминала с помощью команды mtr .
Запустим MTR до сайта yandex.ru.
Процесс отправки пакетов будет осуществляться бесконечным циклом. Остановить диагностику можно с помощью комбинации клавиш Ctrl + C.
В нашем примере результат показывает, что конечный хост доступен, все отправленные пакеты (колонка Snt) проходят до конечного узла, процент потерь (колонка Loss) равен нулю.
Используя параметр -r при вводе команды MTR можно получить результат в виде отчета. Будет отправлено 10 сетевых пакетов, затем процесс остановится. Информация будет выведена в консоль Linux.
MTR в Windows.
Для запуска MTR в Windows существует специальная утилита WinMTR. Скачать можно с официального сайта WinMTR. Утилита доступна к использованию сразу после скачивания, дополнительная установка на ПК не требуется.
Запускаем WinMTR, в открывшемся окне в строке «Host» вводим адрес проверяемого ресурса и нажимаем «Start».
Далее смотрим полученный результат.
В данной статье мы рассмотрели самые основные команды для диагностики сетевых подключений — ping, tracert (traceroute) и mtr.