Как остановить пинг в линуксе. Обрыв соединения с сервером

Думаю любой администратор знает команду ping, которая используется для проверки доступности хостов. Если вы опытный администратор, вероятнее всего вы не узнаете ничего нового из этой статьи. Если же ваши знания ограничиваются банальным ping ya.ru, советую дочитать статью до конца.

Пример 1. Изменение интервала времени между отправкой пакетов

По умолчанию пакеты посылаются с промежутком в одну секунду. Вы можете изменить это интервал с помощью опции -i.

Увеличение интервала

Пример: Ждем 5 секунд перед отправкой следующего пакета.

$ ping -i 5 IP

Уменьшаем интервал

Пример: Ждем 0.1 секунду перед отправкой следующего пакета.

# ping -i 0.1 IP

Заметка: Только суперпользователь может указывать интервал меньше 0.2 секунды. В противном случае вы увидите такое сообщение.

$ ping -i 0.1 127.0.0.1 PING 0 (127.0.0.1) 56(84) bytes of data. ping: cannot flood; minimal interval, allowed for user, is 200ms

Пример 2. Проверка локального интерфейса

Перед проверкой удаленного хоста сначала рекомендуется проверить все ли в порядке с вашим локальным интерфейсом. Для этого можно использовать следующие 3 метода.

Пингуем ноль (0)

Это самый простой и быстрый способ:

$ ping 0 PING 0 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.024 ms ^C

Пингуем по имени

$ ping localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.051 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.055 ms ^C --- localhost ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.051/0.053/0.055/0.002 ms

Пингуем по IP

$ ping 127.0.0.1 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.051/0.053/0.055/0.002 ms

Не должно быть никаких потерь пакетов.

Пример 3. Послать N пакетов и завершить работу

Для автоматического завершения пинга после отправки указанного вами числа пакетов исползуется опция -c.

В следующем примере мы отправим 5 пакетов.

$ ping -c 5 google.com PING google.com (74.125.45.100) 56(84) bytes of data. 64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=1 ttl=44 time=731 ms 64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=2 ttl=44 time=777 ms 64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=3 ttl=44 time=838 ms 64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=4 ttl=44 time=976 ms 64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=5 ttl=44 time=1071 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4216ms rtt min/avg/max/mdev = 731.039/879.129/1071.050/126.625 ms

Пример 4. Версия команды ping

С помощью опции -V мы можем посмотреть текущую версию команды.

$ ping -V ping utility, iputils-sss20071127

Пример 5. Флуд в сети

Суперпользователь может послать тысячи и более пакетов в короткие сроки с помощью опции -f.

Как показано ниже, ping -f послал более чем 400,000 пакетов за несколько секунд.

# ping -f localhost PING localhost (127.0.0.1) 56(84) bytes of data. .^C --- localhost ping statistics --- 427412 packets transmitted, 427412 received, 0% packet loss, time 10941ms rtt min/avg/max/mdev = 0.003/0.004/1.004/0.002 ms, ipg/ewma 0.025/0.004 ms

Пример 6. Звуковой сигнал

Эта опция исползуется редко, но бывает очень полезна. Вы запускается пинг, ответа от хоста нет, вы разбираетесь в чем дело, и как только проблема будет решена и удаленный хост ответит, вы услышите звук.

$ ping -a IP

Пример 7. Печатать только статистику выполнения команды

С помощью опции -q можно пропустить ответы удаленного хоста и вывести сразу полученную статистику.

$ ping -c 5 -q 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. --- 127.0.0.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3998ms rtt min/avg/max/mdev = 0.047/0.053/0.061/0.009 ms

Пример 8. Изменение размера пакета

Вы можете изменить размер посылаемого пакета используя опцию -s.

Пример: Изменим размер пакета с 56 до 100.

$ ping -s 100 localhost PING localhost (127.0.0.1) 100(128) bytes of data. 108 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.022 ms 108 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.021 ms 108 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.020 ms ^C --- localhost ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1998ms rtt min/avg/max/mdev = 0.020/0.021/0.022/0.000 ms

Пример 9. Длительность выполнения команды

С помощью опции -w мы можем указать время выполнения команды в секундах.

В следующем примере мы будем пинговать локалхост в течение 5-ти секунд.

$ ping -w 5 localhost

Заметка: В случае одновременного использования опций -w и -c завершение работы утилиты наступит в момент срабатывания первого ограничения.

Пример 10. Краткая статистика с SIGQUIT

Не прерывая команду пинг, можно посмотреть статистику выполнения. Для этого нужна нажать CTRL + |

$ ping -w 100 localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=10 ttl=64 time=0.021 ms 64 bytes from localhost (127.0.0.1): icmp_seq=11 ttl=64 time=0.022 ms 11/11 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.024 ms 64 bytes from localhost (127.0.0.1): icmp_seq=12 ttl=64 time=0.021 ms 64 bytes from localhost (127.0.0.1): icmp_seq=13 ttl=64 time=0.022 ms 64 bytes from localhost (127.0.0.1): icmp_seq=14 ttl=64 time=0.021 ms 64 bytes from localhost (127.0.0.1): icmp_seq=15 ttl=64 time=0.021 ms 19/19 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.024 ms 64 bytes from localhost (127.0.0.1): icmp_seq=31 ttl=64 time=0.022 ms 64 bytes from localhost (127.0.0.1): icmp_seq=32 ttl=64 time=0.022 ms 32/32 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.027 ms 64 bytes from localhost (127.0.0.1): icmp_seq=33 ttl=64 time=0.023 ms ..

Лучшая посуда от мировых брендов в интернет магазине: BergHOFF, Luminarc, Vitesse

Всем знакомы ситуации, когда интернет на компьютере неожиданно разрывается, такое поведение можно наблюдать при использовании ADSL модемов, Wifi на большом расстоянии, GSM и других подобных ненадежных технологий. Быстро выяснить есть ли на компьютере интернет можно с помощью утилиты ping.

Но область ее применения намного шире, ее используют сетевые администраторы для проверки доступности удаленного узла в сети, она применяется в различных скриптах и многих других местах. В этой статье будет рассмотрена команда ping в Linux, мы поговорим о том, как пользоваться утилитой, как она работает, рассмотрим ее опции и возможности.

Утилита 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 -c 3 8.8.8.8

Следующий вид отправки ping сообщений, это ping флуд. С помощью таких пакетов можно выполнить нагрузочное тестирование канала или даже заглушить интернет соединение на одной из машин. Но эти функции можно использовать только с правами суперпользователя. Для организации ping флуда укажите опцию -f:

ping -f сайт

По умолчанию, в обычном режиме, каждый следующий пакет отправляется, когда получен ответ на предыдущий. Но вы можете сами установить интервал между отправкой пакетов -i:

ping -i 0.2 сайт

Здесь программа ping выполняет так званный, настраиваемый флуд, вы указываете с какой интенсивностью нужно отправлять пакеты. С помощью опции -D вы можете увидеть Unix Timestamp для каждого сообщения:

ping -D сайт

Выводы

В этой статье мы рассмотрели что такое команда ping в linux, как ее использовать основные параметры и методы применения. Этот очень простой инструмент можно применять для тестирования неполадок сети и их исправления. В этом плане утилита может стать незаменимой.

К оманда ping отправляет пакеты данных на определенный IP-адрес в сети, а затем позволяет узнать, сколько времени потребовалось для передачи этих данных и получения ответа. Это удобный инструмент, который Вы можете использовать для быстрого тестирования различных точек Вашей сети. Вот как это использовать.

Как работает Ping

Ping исходит из термина, используемого в технологии сонара, который посылает импульсы звука, а затем слушает возвращение эха. В компьютерной сети инструмент ping встроен в большинство операционных систем, которые работают практически так же. Вы выдаете команду ping вместе с определенным URL или IP-адресом. Ваш компьютер отправляет на это несколько пакетов информации, а затем ждет ответа. Когда он получает ответ, инструмент ping показывает Вам, сколько времени каждый пакет потратил, чтобы совершить это путешествие, или сообщает, что ответа не было.

Это звучит просто, и это так. Вы можете проверить, может ли Ваш компьютер подключаться к другому устройству — например, Вашему маршрутизатору — в локальной сети или к устройству в Интернете. Это может помочь Вам определить, есть ли сетевая проблема где-то в Вашей локальной сети или где-то еще. Время, необходимое для возврата пакетов, может помочь Вам определить медленное соединение или если Вы столкнулись с потерей пакетов.

И не имеет значения, какую операционную систему Вы используете. Поднимите терминал или окно командной строки, и Вы можете использовать ping для MacOS, Linux или любой версии Windows.

Как использовать Ping

Мы собираемся использовать командную строку Windows в нашем примере здесь. Но Dы также можете использовать команду ping в Windows PowerShell или в приложении Terminal на macOS или любом дистрибутиве Linux. Как только Dы доберетесь до фактической команды, она работает одинаково везде.

В Windows нажмите Windows + R. В окне «Запуск» введите «cmd» в поле поиска и нажмите «Enter».

В командной строке введите «ping» вместе с URL-адресом или IP-адресом, который Вы хотите проверить, и нажмите «Enter»..

Этот ответ показывает URL-адрес, который Вы просматриваете, IP-адрес, связанный с этим URL-адресом, и размер пакетов, отправляемых в первой строке. Следующие четыре строки показывают ответы от каждого отдельного пакета, включая время (в миллисекундах), которое требуется для ответа, и время жизни (TTL) пакета, которое представляет собой количество времени, которое должно пройти до сброса пакета.

Внизу Вы увидите сводку, которая показывает, сколько пакетов было отправлено и получено, а также минимальное, максимальное и среднее время отклика.

И на следующем рисунке мы пингуем маршрутизатор в нашей локальной сети, используя его IP-адрес. Мы также получаем от него нормальный ответ.

Когда инструмент ping не получает ответа от любых устройств, которые Вы пинговали, это также дает Вам знать об этом.

И вот как использовать пинг на самом базовом уровне. Конечно, как и большинство команд, есть несколько дополнительных опций, которые Вы можете использовать, чтобы заставить его вести себя по-другому. Например, Вы можете заставить его отслеживать пункт назначения до тех пор, пока Вы не остановите команду, не укажете, сколько раз Вы хотите, чтобы он выполнял ping, задал, как часто он должен пинговать, и многое другое. Но, если Вы не выполняете некоторые конкретные типы устранения неполадок, Вам не нужно беспокоиться об этих расширенных параметрах.

Если Вам это интересно, просто введите «ping /?» В командной строке, чтобы увидеть список параметров.

Что Вы можете сделать с помощью Ping

Теперь, когда Вы знаете, как использовать эту команду, вот некоторые интересные вещи, которые Вы можете сделать с ней:

  • Ping URL (например, сайт) или IP-адрес, чтобы узнать, можете ли Вы добраться до интернет-адресата. Если Вы получите успешный ответ, Вы знаете, что все сетевые устройства между Вами и этим получателем работают, включая сетевой адаптер на Вашем компьютере, Ваш маршрутизатор и любые устройства в Интернете между Вашим маршрутизатором и пунктом назначения. И если Вы заинтересованы в дальнейшем изучении этих маршрутов, Вы можете использовать другой сетевой инструмент с именем tracert, чтобы сделать это.
  • Ping URL-адреса, чтобы увидеть его IP-адрес. Если Вы хотите узнать IP-адрес для определенного URL-адреса, Вы можете отправить URL-адрес. Инструмент ping показывает Вам вверху IP-адрес, с которым он работает.
  • Ping Вашего маршрутизатора, чтобы увидеть, можете ли Вы достичь его. Если Вы не можете успешно выполнить ping интернет адреса, Вы можете попробовать выполнить ping-соединение с Вашим маршрутизатором. Успешный ответ позволяет узнать, что Ваша локальная сеть работает нормально, и проблема, связанная с доступом к интернет-сайту, находится где-то вне Вашего контроля.
  • Ping Вашего loopback-адреса (127.0.0.1). Если Вы не можете успешно выполнить ping роутера, но Ваш маршрутизатор, похоже, включен и работает, Вы можете попробовать ping так называемый loopback адреса. Этот адрес всегда 127.0.0.1, и его успешное тестирование позволяет узнать, что сетевой адаптер на Вашем компьютере (и сетевое программное обеспечение в Вашей ОС) работает правильно.

Примечание: Вы не можете получить ответ ping с других компьютеров в локальной сети, потому что встроенные брандмауэры на этих устройствах не позволяют им отвечать на запросы ping. Если Вы хотите иметь возможность пинговать эти устройства, Вам необходимо отключить эту настройку, чтобы разрешить прохождение через брандмауэр.

В приведенном выше списке используется внешний подход, когда Вы сначала отправляете запрос на самый удаленный пункт назначения, а затем прокладываете путь к более локальным устройствам. Некоторым людям нравится работать наоборот, сначала пинг loopback адреса, затем маршрутизатор (или другое локальное устройство), а затем интернет-адрес.

И, конечно, о чем мы говорим в этой статье, в основном относится к использованию ping для устранения неполадок в домашней или малой бизнес-сети. Кроме того, если Вам поручено устранять неполадки в крупных сетях, Вы, вероятно, уже знаете, как использовать пинг и многие другие сетевые инструменты.

Команда 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 сайт - опрос узла сайт 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) при передаче пакета.”

  • Применение PING для пошаговой диагностики проблем доступа в Интернет:
  • Обобщенная схема соединения компьютера (планшета, ноутбука домашней сети) с удаленным конечным узлом можно представить следующим образом:

    В качестве домашней сети используется наиболее распространенная сеть с 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 с 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 по 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=" && ECHO Yandex pingable - команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND равно 0, т.е узел yandex.ru отвечает на ping.

    PING Server64 |find "TTL=" || ECHO Server64 not pingable - команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND не равно 0, т.е. узел Server64 не ответил на ping.

    «Ааа, помогите, все пропало!» – если ваш внутренний голос реагирует на обрыв соединения с сервером примерно так, этот материал точно для вас. :) Безусловно, со своей стороны мы каждый день делаем все возможное, чтобы ничто не мешало вашей работе в облаке , но случись форс-мажор – будем разбираться. А чтобы быстрее сориентироваться в ситуации и понять, на чьей стороне ошибка, вот вам задача-минимум – во время обрыва первым делом выполните трассировку маршрута и пинг промежуточных узлов. Как все это сделать, сейчас расскажем.

    Трассировка маршрута

    Во время трассировки происходит отправка пакетов данных между локальным компьютером и сервером. Это помогает проследить путь прохождения запроса к серверу и определить, на каком этапе происходит обрыв. Выполнить трассировку довольно легко.

    1. Запустите команду cmd: Win+R > пропишите cmd > ОК .

    tracert Х.Х.Х.Х (где Х.Х.Х.Х – это IP-адрес сервера или домен) и нажмите Enter .

    В примере мы сделали трассировку для google.com.

    tracert google.com

    Получилось так:

    1 2 1 ms 1 ms 1 ms 193.151.89.254
    3 5 ms 4 5 1 ms 6 1 ms 7 1 ms 3 ms 1 ms bearline-ic-324086-ffm-b4.c.telia.net
    8 1 ms 1 ms 1 ms 108.170.251.129
    9 13 ms 13 ms 15 ms 66.249.94.135
    10 13 ms 13 ms 13 ms fra15s12-in-f46.1e100.net

    Как видим, наши пакеты преодолели десять (их может быть как меньше, так и больше) узлов, и преодолели их успешно. В противном случае, если бы пакеты «споткнулись» на одном из узлов, на нем (и последующих за ним узлах) мы бы увидели:

    * * * Превышен интервал ожидания для запроса.

    Но даже в таком случае пока не время для выводов – эта запись может означать как потерю пакетов, так и то, что узел сети просто закрыт настройками безопасности. Иногда провайдеры специально настраивают узлы так, чтобы они не отвечали на трассировочные пакеты, дабы снизить нагрузку. Чтобы точно узнать, действительно ли происходит обрыв, и, если да, то где именно, нужно пропинговать каждый из узлов. При трассировке мы получили IP каждого из них, а значит, можем перейти к пингу.

    Пинг промежуточных узлов

    Пинг предназначен для проверки целостности и качества соединений. Выполнить его тоже несложно. При этом запустить пинг нужно ко всем промежуточным узлам в отдельных окнах. Так непосредственно в момент обрыва связи будет видно, на каком узле происходят потери пакетов и насколько продолжительны эти обрывы.

    В ОС Windows по умолчанию передается только четыре пакета, чего недостаточно, если проблема проявляется кратковременно. Поэтому нужно снять это ограничение параметром -t (чтобы потом остановить обмен пакетами, нажать CTRL+C ).

    Теперь по порядку.

    1. Запустите команду cmd: Win+R > пропишите cmd > ОК .

    2. В открывшейся командной строке введите ping -t Х.Х.Х.Х (где Х.Х.Х.Х – это адрес одного из промежуточных узлов, которые мы узнали при трассировке) и нажмите Enter .

    В нашем случае при трассировке мы выявили десять узлов, а значит, и пинг нужно выполнить десять раз в десяти отдельных окнах.

    Полезно!
    Если вам нужно постоянно отслеживать качество соединения, для Windows можно воспользоваться удобной программой PingPlotter.

    Итак, пингуем – в десяти отдельных окнах командной строки вводим команды с IP-адресами узлов, которые мы выявили при трассировке. В нашем случае будут такие команды:

    ping -t 10.1.1.1
    ping -t 193.151.89.254
    ping -t 85.195.75.129
    ping -t 213.248.79.29
    ping -t 62.115.139.50
    ping -t 62.115.120.8
    ping -t 62.115.153.215
    ping -t 108.170.251.129
    ping -t 66.249.94.135
    ping -t 216.58.208.46

    Если в каком-нибудь из окон вы с первых же секунд видите «Превышен интервал ожидания», не спешите кричать: «Попался!». Если следующие узлы пингуются нормально, значит, этот просто закрыт настройками. В нашем случае, например, предпоследний узел (66.249.94.135) сразу же говорит, что интервал превышен, но с пингом десятого узла никаких проблем нет.

    На чьей стороне ошибка?

    Итак, обрыв повторился. Но на этот раз запущенный пинг промежуточных узлов поможет «обличить» виновника. Тут все просто – с какого узла вам начало выдавать «Превышен интервал ожидания», тот и слабое звено.

    Кто виноват – ясно, теперь нужно понять, что делать в конкретных ситуациях.

    1. Последний узел. Если последний узел сначала пинговался нормально (некоторые Windows-машины вообще не отвечают на пинг, это задается в настройках брандмауэра)…

    …а после обрыва начал показывать «Превышен интервал ожидания», обрыв происходит на вашем сервере.

    В этом случае зайдите в панель управления, запустите консоль и войдите в операционную систему, чтобы разобраться, почему сервер не работает. Если окажется, что операционная система зависла, перезагрузите сервер.

    2. Любые узлы, кроме последнего. В этом случае обращайтесь одновременно в техподдержку и облачного, и интернет-провайдера. При этом обязательно укажите, как изначально выглядела трассировка маршрута, и составьте перечень узлов с указанием, на каких из них пинг во время обрыва прервался, а на каких нет. Будьте внимательны, это важная информация, не ошибитесь.

    3. Все узлы одновременно. Если все окна с пингом начали показывать «Превышен интервал ожидания», проблема в вашем компьютере или сети, к которой он подключен.

    Бонус!

    Ну, а чтобы вам было совсем уж комфортно, мы тут подобрали утилиты, с которыми можно делать трассировку и пинг промежуточных узлов одним простым движением без запуска пятнадцати различных окон.

    Для ОС семейства Windows такую оптимизацию проводит утилита Winmtr . Она не нуждается в установке и готова к использованию сразу после распаковки из архива.

    В поле Host укажите конечный сервер, с которым будет проверяться соединение, и нажмите Start :

    В нашем примере видна трассировка маршрута и все промежуточные узлы. При этом к каждому из них направляются ICMP-пакеты, по которым можно определить качество связи.

    Собственно, в этом и заключается главное преимущество утилиты – ее вывод постоянно обновляется, это позволяет собирать статистику, отслеживать средние показатели, тенденции и какие-либо изменения качества сети.

    Раз мы проверяем соединение с сервером, нас интересуют столбцы Sent (отправлено пакетов) и Recv (получено пакетов). Если значения в этих столбцах не совпадают, значит, качество связи с узлом ухудшилось. Что делать? Обратиться в соответствующую техподдержку.

    Столбец Loss поможет просмотреть динамику потерь в процентном соотношении.

    Также утилита позволяет копировать текст в удобных форматах (.txt и .html ) в буфер обмена (Copy to clipboard ) или в отдельный файл (Export ).

    Двойной щелчок по промежуточному узлу позволит получить дополнительную информацию о нем.

    Важно знать!

    Для детализации проблемы специалисты техподдержки могут запросить дополнительные пинги с особыми настройками. Для этого достаточно внести их в окошке Options , которое позволит указать:

    1. Interval (sec) – время обновления данных в секундах.
    2. Max host in LRU list – максимальное количество хостов (или IP-адресов, если не активна опция Resolve names ) до конечной точки.
    3. Ping size (bytes) – размер ICMP-пакета.
    4. Resolve names – возможность преобразовать IP-адрес в имя хоста.

    А что же линуксоиды?

    Для ОС семейства Linux утилита называется просто MTR. Если ее нет в вашей операционной системе, установить ее можно одним из следующих способов:

    Debian/Ubuntu/Mint:

    $ apt-get install mtr

    CentOS/RedHat/Fedora:

    $ yum install mtr

    У MTR такой же функционал, как у Winmtr, а также схожий графический интерфейс. Запустить утилиту можно командой:

    где X.X.X.X – это IP-адрес конечного сервера или имя хоста.

    В данном случае интересуют следующие столбцы:

    • Loss % – процент потерянных пакетов между компьютером-отправителем и промежуточными узлами.
    • SNT – общее количество отправленных пакетов.

    Как только где-то что-то потерялось, утилита сигнализирует нам об этом, окрашивая узел в красный цвет и подсчитывая процент потерь.

    Отдельно отметим возможность запуска утилиты в текстовом (консольном) режиме. Для этого достаточно добавить опцию -t или --curses:

    mtr --curses сайт

    Рассмотрим еще несколько важных опций MTR, которые могут быть крайне полезны в процессе диагностики сети.

    R или --report

    Запускает режим отчета, в котором MTR обработает заданное количество циклов (определенных опцией -c), а затем отобразит статистику и автоматически завершит работу. Этот режим полезен для сбора статистики о качестве сети.

    C COUNT или --report-cycles COUNT

    Позволяет задать количество циклов, после которых MTR завершит работу.

    P BYTES или --psize BYTES

    Устанавливает размер пакетов в байтах.

    I SECONDS или --interval SECONDS

    Задает интервал между отправляемыми пакетами.

    N или --no-dns

    Разрешает не использовать DNS, отображает IP-адреса узлов.

    A X.X.X.X или --address X.X.X.X

    Позволяет указать адрес интерфейса компьютера, с которого будут отправляться ICMP-запросы.

    Итого

    Разумеется, команды в консоли дают более точный результат, поскольку фиксируют даже единичные потери пакетов (короткие обрывы), но Winmtr и MTR компактные и более удобны в использовании. А на чем остановить свой выбор, решать только вам. :)

    Вот, собственно, и все, кто виноват – выяснили, что делать – тоже. :) Надеемся, материал был вам полезен, а если у вас остались дополнительные околооблачные вопросы, обращайтесь к нам за грамотной .