Сеть является неотъемлемой частью Linux и предлагает множество инструментов и команд для диагностики любой сетевой проблемы.

Сетевые команды в примерах в Linux

• Найти хост / доменное имя и IP-адрес — hostname
• Сделать тест сетевого соединения — ping-
• Получение конфигурации сети — Ifconfig
• Сетевые соединения, таблицы маршрутизации, статистики интерфейсов — NETSTAT
• Поиск имени DNS запрос — Nslookup
• Подключение к другим хостам — Telnet
• Получить сетевой хост — информация для пользователя трассировку
• Сделать трассировку — traceroute
• Просмотр информации пользователя – finger
• Проверка статуса хоста назначения — Telnet

Примеры использования сетевых команд в Linux

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

hostname — Имя хоста

Имя хоста (hostname) без вариантов отображает хозяина машины. По этому чтобы проверить кто владелец выполните команду:

Эта команда отображает доменное имя машины. Чтобы увидеть IP -адрес для текущей машины выполните эту же команду с ключом «i»:

ping — пинг

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

1 . Чтобы гарантировать, что сетевое соединение может быть установлено.

2 . Timing соединения. Если у вас пинг www.linux-notes.org он покажет IP -адрес сайта и время. Используйте Ctrl + C , чтобы остановить тест. Выполнить команду можно так:

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

Чтобы проверить локальный интерфейс существует несколько способов:

Можно так же посылать N количество пакетов и после чего завершить работу, для этого:

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

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

С опцией «-q» Вы сможете пропустить ответы от вашего удаленного хоста и показать полученную статистику:

Можно изменить размер передаваемого пакета (допустим с 56 на 120), а сделать это можно так:

Мы так же можем изменять длительность выполнение команды пинг, например нам нужно пинговать сервис 15 секунд, то для этого выполните:

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

Ifconfig

Посмотреть конфигурацию сети , он отображает текущую конфигурацию сетевого адаптера . Это удобно, чтобы определить, если вы transmit (ТХ ) или receive (RX) ошибки.

traceroute

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

Можно вывести информацию о всех сетевых картах что подключены, для этого выполните:

netstat

Самая полезная и очень универсальная для нахождения подключений к и от хозяина. Вы можете узнать все о многоадресной группы (multicast groups) сети выполнив:

Чтобы увидеть кто «сидит» на порту (допустим на 21) выполните команду:

Чтобы увидеть все соединения в том числе TCP и UDP выполните команду:

Параметр что выполнена программа будет отображать только соединение TCP:

Параметр что выполнена программа будет отображать только соединение UDP:

nslookup

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

Вы также можете использовать Nslookup преобразовать имя хоста в IP-адрес и с IP-адреса из имени хоста.

finger

Посмотреть информацию о пользователях, отображает имя пользователя логин, настоящее имя, имя терминала и статус записи. это довольно старая команда для Linux и редко используемые в настоящее время.

telnet

Подключается хозяина назначения по протоколу Telnet, если телнет соединение установить на любом порту означает соединения между двумя хостами работает нормально.

Обычно он используется для того чтобы узнать жив ли хост ​​или сетевое соединение в порядке.

Тема «Топ-10 Основных сетевых команд в Linux» завершена, но если я не упомянул о более хороших команд на Ваш взгляд, то пишите в комментарии и я дополню эту статью. Если есть вопросы и предложения, пишите все в комментарии. Спасибо.

ИТ База знаний

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Установка VirtualBox 6.0 на Linux

15 примеров CURL в Linux

RPM — установка и использование в Linux

Как создавать и выбирать базы данных MySQL в Linux

Grandstream GXP2140

15 примеров команды PING для диагностики сети

10 минут чтения

Благодаря Linux, у нас есть очень много инструментов облегчающих администрирование и диагностику сети. В этом плане команда PING является одним из самых полезных инструментов для системных и сетевых администраторов.

Сама базовая возможность этой утилиты – определить доступен ли тот или иной хост. Тем не менее в этом материале мы приведем примеры расширенных возможностей этой команды в системе Linux.

Для чего используется команда PING?

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

  • измерение времени за которое общаются два хоста;
  • выявление IP адреса конкретного хоста, как в локальной сети, так и в глобальной
  • она может быть частью bash скрипта для автоматической проверки сетевого устройства
  • проверка связи с конкретным устройством.

Как видно, эта команда очень необходима для администрирования сети и серверов.

Как работает команда PING?

Принцип работы команды Ping прост: она посылает серию пакетов маленького размера на указанное устройство.

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

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

Например, в локальной проводной сети команда вернет лучший результат по времени, чем в сети с несколькими маршрутизаторами и сетевыми мостами.

Однако, на основе полученной информации утилита будет судить о состоянии целевого устройства.

Синтаксис команды следующий:

Ниже приведены некоторые полезные и часто используемые ключи для этой команды:

  • -c: Позволяет указать количество пакетов для отправки.
  • -s: Позволяет изменять размер пакета по умолчанию.
  • -v: Отображает текущее состояние выполнения команды.
  • -w: Указывает в секундах время завершения команды.
  • -i: Позволяет указать интерфейс, с которого будут идти запросы.

Можно ли использовать PING с прокси-сервером?

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

Проблема в том, что команда PING требует прямого соединения между устройствами. Таким образом, команда Ping не может функционировать если перед ним стоит прокси-сервер.

Как вариант, можно воспользоваться сайтами, которые предлагают команду Ping как услугу. С другой стороны, для решения некоторых задач с командой Ping, можно использовать команду curl . Также можно прибегнуть к помощи VPN, который спрячет ваш реальный IP.

Ping IPv6 адресов

По умолчанию, когда запускаем команду PING, мы используем IP версии 4. Однако, с появлением протокола IPv6, все чаще стали встречаться адреса такого формата.

Ядро Linux поддерживает IPv6 начиная с версии 2.2, так что все дистрибутивы Linux поддерживают этот протокол.

Базовый синтаксис таков:

В старых версиях была команда ping6 . В новых дистрибутивах её нет и весь функционал объединен с ping .

Как и при работе с IPv4, ключом –c можем указать число пакетов, для отправки, а ключ –i – определяет интерфейс для исходящих запросов.

Ping конкретного порта

Иногда приходится проверят доступен ли тот или иной порт на проверяемом хосте. К сожалению, команда Ping не имеет такой возможности, но это можно сделать с помощью telnet , который по умолчанию установлен на Linux.

Чтобы проверить доступность порта просто введите следующую команду:

Ping с выводом времени

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

Для этого достаточно прописать указанную ниже команду. Но вам придется установить пакет ccze .

Как видно из скриншота, команда показывает дату и время отправки каждого пакета.

Ping всех устройств в указанной подсети

Командой Ping можно посылать сигнал всем хостам в сети или подсети. Для этого нужно запустить ping с ключом –b на широковещательный адрес, который заканчивается на 255. Например:

Итак, если хост назначения недоступен, значит либо там блокируются ICMP пакеты, либо есть проблемы с сетью или таблицей маршрутизации.

Как завершить команду PING?

По умолчанию, в системе Linux команда Ping непрерывно посылает пакета на хост. Но если нужная информация получена, то необходимо как-то прервать выполнение команды. Для этого просто нужно нажать комбинацию клавиш CTRL+C .

После этого команда немедленно остановится.

Завершение работы команды по счетчику

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

Где расположена утилита PING?

В Unix-подобных системах таких, как Linux бинарные файлы обычно располагаются по пути

В этой папке можно найти все множество бинарных файлов, которые мы используем как команды в терминале. В других ОС семейства Linux, они могут быть расположены в:

Проверить это можем командой ls :

На скриншоте видно, что команда ping находится в папке

Другой метод, которым можно найти место расположения команд это which :

На выводе она даст следующую информацию:

Проверка задержки командой PING

Одна из возможностей, предоставляемых командой PING, является возможность измерения времени отклика сети. По-другому это называется задержка или время ожидания.

Чтобы измерить задержку введи указанную команду и обратите внимание на ввыод:

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

Второе значение после знака равенства – это время задержки. В нашем случае он равен 6,798.

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

Поиск идеального значения MTU

MTU (Maximum Transmission Unit) это максимальный размер пакета, который может быть передан по сети.

Сегодня, в целях безопасности, в сетях создаются препятствия для работы MTU. Но большинство локальных сетей на основе Ethernet использует MTU размером 1500 байт.

Если нужно найти самый подходящий размер MTU с помощью команды Ping, следует определить начальное значение и уменьшать его до тех пор, пока прекратятся ошибки. Если значение большое, мы получим следующую ошибку:

Чтобы сделать это запустите следующую команду:

В нашем случае, значение размера пакета слишком большое. Поэтому уменьшаем его до 1472 байтов.

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

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

Ping на 2-ом уровне OSI (использование arping)

С помощью команды ping диагностика проводится на основе IP-адреса конкретного узла в сети. Это связано с тем, что команда ping работает на третьем сетевом уровне модели OSI.

С другой стороны, можно использовать другую встроенную в Linux команду – arping . Эта утилита работает так же, как ping, но на втором – канальном уровне модели OSI.

Синтаксис команды следующий:

В результате получите что-то подобное:

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

Отметим, что эта команда не предустановлена на системе Debian и производных.

Ping по имени узла

По умолчанию, команда ping посылает пакеты на узел назначения используя IP адрес или имя узла назначения. Также нужно отметить, что большинство реализаций утилиты ping на Linux не разрешают DNS в обратном направлении.

Например, если мы запустим команду ping, указав IP адрес, он вернёт только IP узла. И наоборот, если параметром передадим имя узла, то команда вернет его IP адрес. Посмотрите вывод введя команду ниже:

Ping маршрута (traceroute)

Сама по себе команда ping не показывает пути от источника к узлу назначения. Но это было бы очень кстати в том случае, когда узел назначения не отвечает, чтобы определить где именно теряется связь.

Команда tracert (Windows) или traceroute работают аналогично ping. Преимуществом этой команды является то, что он показывает весь путь следования пакета от источника до узла назначения.

В принципе traceroute посылает тот же ICMP пакет, что и Ping. Но в случае traceroute, в отличии от ping начально значение TTL пакета выставляется равным единице. Пакет доходит до первого узла по пути к узлу назначения. Устройство уменьшает TTL на одну единицу и если получается нуль, то возвращает сообщение об ошибке истечения времени пакета. В сообщение так же содержится IP адрес и имя хоста. Отправитель получает данное сообщение. Если оно не от узла назначения, то посылает второй пакет с TTL на один больше предыдущего. И так до тех пор, пока не получит ответ от узла назначения. Для получения пути нужно ввести команду:

Запустить команду если ping вернул ошибку

Представьте, что вам нужно получить оповещение если узел назначения перестал отвечать на запросы команды ping. Для этого нужно включить команду ping в bash скрипт и прописать нужные команды. Например, скрипт ниже позволяет вам проверить отвечает ли узел на запросы ping:

Установление размера пакета ping

По умолчанию, размер пакетов ICMP равен 56 байтам. Это позволяет не влиять на работу сети во время проверки. Но при необходимости можно изменять это значение. Для этого достаточно запустить команду ping с ключом –s и требуемым размером. Например:

Если нужно установить значение пакета равным 100 байтам, нужно прописать команду ниже:

Отключение команды ping

Если вы обслуживаете сеть, то вам может быть необходимо отключить ответ на ping запросы в любое время. Это можно сделать как временно, так и постоянно, в зависимости от ваших нужд. Для временного отключения команды ping нужно ввести команду ниже от имени root-а:

Она выключить возможно ответа на ICMP запросы до перезагрузки системы. Но если нужно навсегда отключить эту возможность, то придется отредактировать файл

и добавить следующую строку:

Сохраните файл и, для применения изменений введите команду:

Заключение

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

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

😪 Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

😍 Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

Команда ping в Linux

Бывают ситуации, когда резко пропадает интернет или компьютер в локальной сети перестает работать, чтобы быстро определить работает ли сеть, работает ли интернет — поможет ping. Эта универсальная команда есть во всех операционных системах. Она проверяет доступность удаленного хоста, отправляя ICMP-пакеты.

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

Параметры

Посмотрим, что говорит справка команда ping —help.

Результат выполнения ping —help

Как мы видим выше, синтаксис очень простой. В качестве адреса мы пишем доменное имя или ip-адрес узла. Например ip-адрес локального компьютера может выглядеть так: 192.168.0.1. Рассмотрим параметры или их еще называют аргументы:

-c. Количество пакетов, которые нужно отправить.

-w. Ограничение посылаемых пакетов по времени. В аргументе указывается время в секундах.

-i. Интервал в секундах между данными.

-d. Если дословно переводить, то запретить адрес хоста.

-r. Игнорировать правила таблицы маршрутизации.

-4. Использовать только четвертую версию интернет протокола IPv4.

-6. Соответственно, только 6 версию IPv6.

-b. Разрешить широковещательный адрес.

-D. Вывести время.

-v. Подробный вывод.

-f. Режим flood. Данные передаются без задержки. Опция может использоваться как Dos-атака. Доступна только с правами root.

-t. Установить TTL.

-?. Вывести справочную информацию.

-s. Установить размер пакета.

Примеры

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

Пингуем сайт ya.ru, в качестве аргумента ничего не ставим, просто указываем название сайта.

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

Результат выполнения ping ya.ru

Как остановить ping в linux? Для этого необходимо прервать процедуру принудительно, нажимаем горячие клавиши ctrl + C.

Результат нажатия клавиш ctrl + c

На скриншоте выше смотрим статистику:

  • 14 packets transmitted — отправлено пакетов;
  • 14 received — количество полученных пакетов;
  • 0% packet loss — сколько процентов потерянных пакетов;
  • 13322mc time — время работы;

Чтобы не прерывать процедуру в будущем, можно ввести дополнительный аргумент «-с», тем самым мы зададим количество отправляемых пакетов.

Мониторинг сети в Linux (ping, traceroute, mtr)

Существует несколько хороших утилит, позволяющих искать неисправности в сети на уровне TCP/IP. Большинство из них выдает низкоуровневую информацию, поэтому для того чтобы пользоваться ими, нужно хорошо понимать принципы работы протоколов TCP/IP и маршрутизации. В этой статье мы рассмотрим основные инструменты поиска неисправностей в сети: утилитами и .

Утилита ping

Проверка доступности компьютера

Утилита ping предназначена для того, чтобы при помощи отправки ICMP пакетов убедиться в работоспособности хоста. Команда посылает запрос (ICMP ECHO_REQUEST) конкретному компьютеру и фиксирует поступающие ответы (ICMP ECHO_RESPONSE). Её можно применять для работоспособности отдельных компьютеров и сегментов сети. В обработке ее запроса участвуют таблицы маршрутизации, физические компоненты сетей и сетевые шлюзы, поэтому для достижения успешного результата сеть должна быть в более или менее рабочем состоянии. Если команда не работает, можно быть совершенно уверенным в том, что более сложные средства тем более не функционируют. Однако это правило неприменимо в сетях, где брандмауэры блокируют эхо-запросы ICMP. Убедитесь в том, что брандмауэр не препятствует работе команды , прежде чем подозревать, что зондируемый компьютер игнорирует эту команду. В конце концов, отключите на короткое время брандмауэр для проверки работоспособности сети.

Если не задан аргумент «число пакетов», команда работает в бесконечном цикле. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию .

Например, пропингуем neoserver.ru (это имя хоста):

Информация о компьютере включает его IP-адрес, порядковый номер ответного ICMP-пакета и полное время прохождения пакета. Полученные результаты свидетельствуют о том, что компьютер neoserer.ru работает и подключен к сети.

— минимальное время ответа хоста, кторому был отправлен запрос.

среднее время ответа хоста, кторому был отправлен запрос

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

Ещё вы увидите TTL — определяет максимальное количество хопов (то есть прыжок, участок между маршрутизаторами), которые пакет может пройти. Наличие этого параметра не позволяет пакету бесконечно ходить по сети.

В ОС Linux, как уже было сказано выше, команда без дополнительных параметров будет пинговать заданный хост бесконечно. Чтобы отправить, например, 10 запросов, необходимо добавить ключ :

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

Другие примеры задействования разын ключей:

Не резолвить имена адресов, выводить только ip-адреса

Завершение работы по заданному времени (тут 5 секунд)

Установить размер отправляемых пакетов в 1000 байт

Увеличить интервал времени пинга на 3 секунды

Утилита traceroute

Каждый пакет проходит на своем пути определенное количество узлов, пока достигнет своей цели. И, как мы уже знаем, каждый пакет имеет свое время жизни. Это количество узлов, которые может пройти пакет перед тем, как он будет уничтожен. Этот параметр записывается в заголовке TTL, каждый маршрутизатор, через который будет проходить пакет уменьшает его на единицу. При TTL=0 пакет уничтожается, а отправителю отсылается сообщение Time Exceeded.

Команда traceroute linux использует UDP пакеты. Она отправляет пакет с TTL=1 и смотрит адрес ответившего узла, дальше TTL=2, TTL=3 и так пока не достигнет цели. Каждый раз отправляется по три пакета и для каждого из них измеряется время прохождения. Пакет отправляется на случайный порт, который, скорее всего, не занят. Когда утилита traceroute получает сообщение от целевого узла о том, что порт недоступен трассировка считается завершенной.

Синтаксис утилиты не сложный:

Адресом узла может служить как IP адрес, так и доменное имя. Основные опции:

Для примера, выпоним трасировку к ресурсу

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

Иногда, вместо одного узла вы можете видеть звездочки. Это значит, что шлюзы либо не высылают нам ICMP с сообщением «time exceeded», либо у их сообщений слишком маленький TTL и оно нас не достигает. В точности нельзя сказать, что происходит на самом деле, но ясно, что по какой-то причине хост не захотел нам отвечать:

Бывает, что трассировка с помощью UDP не работает, это может произойти потому, что фаервол блокирует все лишние пакеты. Можно воспользоваться ICMP с помощью опции -I:

Рассмотреных выше простых примеров, вполне достаточно для первичной диагностики сети как для обычныз пользователей, так и для начинающих администраторов.

Утилита MTR

MTR – это альтернатива программе traceroute. Объединяя функции ping и traceroute, mtr позволяет постоянно опрашивать удаленный сервер и отслеживать изменения задержки и производительности с течением времени.

Синтаксис утилиты также несложный:

Вывод похож на traceroute, но mtr имеет существенное преимущество – ее вывод постоянно обновляется. Это позволяет собирать средние показатели, а также отслеживать тенденции и изменения производительности сети. Как и с утилитой ping, mtr будет работать бесконечно. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию .

Команда ping в Linux

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

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

Как работает ping?

Утилита ping — это очень простой инструмент для диагностики сети. Она позволяет проверить доступен удаленный хост или нет и все. Для этого утилита проверяет, может ли хост отвечать на сетевые запросы с помощью протокола ICMP.

Надеюсь, не нужно говорить, что все данные по сети передаются в виде небольших пакетов. Программа передает небольшой пакет с данными ICMP и ожидает получить обратно пакет ответа, если получает, то считается что удаленный узел доступен. ICMP или Internet Control Message Protocol — это надстройка над протоколом IP, которая используется для передачи служебных сообщений и сообщений и ошибках.

Протокол ICMP может передавать только два типа пакетов — это сообщения с отчетами про ошибки и сообщения запросов. В свою очередь, сообщения запросов делятся на:

  • Сообщение эхо-запрос;
  • Сообщение эхо-ответ.

Попытаемся разобраться что делает команда ping. Итак, когда вы отправляете запрос ping удаленному узлу, утилита устанавливает для каждого пакета уникальный идентификатор, а также TTL и время отправки пакета. Если хост доступен, он отправляет ответ, на основе времени отправки утилита может вычислить время прохождения пакета туда и обратно. Затем отправляется следующий пакет. В конце рассчитывается общее количество отправленных и принятых пакетов, процент потерь и другие данные.

Команда Ping

Теперь нам осталось немного попрактиковаться. Но перед тем, как мы перейдем к практике давайте рассмотрим синтаксис команды и ее опции. Синтаксис довольно прост:

$ ping опции адрес_узла

Формат команды ping очень прост. В качестве адреса узла можно передавать как ip адрес, так и доменное имя. Опции настраивают поведение утилиты. Рассмотрим основные из них:

  • -4 — использовать только ipv4 (по умолчанию);
  • -6 — использовать только ipv6;
  • -A — адаптивный режим, время между отправками пакета адаптируется к времени передачи и приема пакета, но не меньше чем 200мс;
  • -b — разрешить ping широковещательного адреса;
  • — количество пакетов, которые нужно отправить;
  • -D — выводить время в виде UNIX timestamp;
  • -f — режим флуда, в этом режиме пакеты передаются без задержек, может использоваться для совершения DoS атак на отдельные узлы. Количество точек, которые выводит утилита обозначает количество потерянных пакетов;
  • -i — интервал в секундах между отправкой пакетов;
  • -I — использовать этот сетевой интерфейс для отправки пакетов;
  • -l — режим перегрузки, отправляется очень много пакетов и система не следит за ответными пакетами;
  • -n — не получать домены для ip адресов;
  • -r — игнорировать таблицы маршрутизации и отправить пакет на указанный интерфейс;
  • -s — размер одного пакета;
  • -t — установить TTL вручную;
  • -v — более подробный вывод.

Теперь, когда мы рассмотрели основные параметры команды ping и ее синтаксис, пришло время практики, дальше поговорим о том, как сделать ping определенного узла в Linux.

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

Для проверки работоспособности сети часто используется программа ping любого сайта, который всегда доступен, например, google.com или еще проще и короче ya.ru. Вам будет достаточно передать утилите в параметрах этот адрес, она сама найдет ip и сделает все нужное:

Как я и писал выше, для каждого пакета выводится уникальный идентификатор icmp_seq, количество узлов до целевого узла ttl и время, потраченное на доставку пакета time. Чтобы остановить ping нажмите сочетание клавиш Ctrl+C. В конце утилита вывела общую статистику:

  • packets transmitted — отправлено пакетов;
  • received — получено пакетов;
  • packet loss — процент потерянных пакетов;
  • time — обще время работы;
    rtt min/avg/max/mdev — минимальное время/среднее время/максимальное время/квадратичное отклонение.

Если выполнение команды ping не остановить, то пакеты могут отправляться очень долгое время, это создает дополнительную нагрузку на сервер и поэтому не желательно. Вы можете сразу в вызове команды ограничить количество отправляемых пакетов с помощью опции -c:

Точно так же как мы выполняем ping для домена, можно указать ip адрес напрямую. Это позволяет проверить есть ли сеть когда неверно настроены серверы DNS. Например:

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

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

ping -i 0.2 losst.ru

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

Выводы

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

Команда Ping в Linux с примерами

Ping в основном используется для проверки доступности удаленного хоста или нет. Удаленным хостом может быть веб-сервер, ваш маршрутизатор или система в вашей локальной сети.

Как работает ping? Фактически он отправляет небольшие ICMP- пакеты на удаленный хост и ожидает ответа. Если хост включен, вы должны увидеть ответ.

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

Итак, как вы используете Ping в Linux? Каковы различные параметры команды Ping? Позвольте мне показать вам некоторые из общих способов использования команды Ping.

Вы знали? Команда Ping правильно написана как PING и обозначает Packet Internet Groper.

Использование команды ping в Linux

Вы можете использовать команду ping с IP-адресом или именем хоста/URL.

Предположим, мы пингуем Google. Он отправит ICMP-пакеты размером 56 байтов на google.com.

Вы должны вручную остановить команду ping, иначе она продолжит выполняться. Вы можете использовать Ctrl + C терминала ярлык, чтобы остановить команду ping в Linux, как мы сделали в приведенном выше примере.

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

Теперь, когда вы знаете, как пинговать в Linux, давайте посмотрим на некоторые другие опции команды ping.

Отправить только N количество пакетов

Если вы не хотите, чтобы команда ping выполнялась вечно без остановки вручную, вы можете использовать опцию -c .

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

Отправить пинг только на ограниченное время

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

Например, если вы хотите отправлять ping-пакеты всего за 5 секунд, вы можете использовать его следующим образом:

Изменить интервал времени между двумя пингами

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

Для отправки ICMP-пакетов с интервалом в 3 секунды вы можете использовать команду Ping, например:

Вы также можете уменьшить временной интервал между пингами.

Однако, если вы попытаетесь уменьшить временной интервал ниже 0,2 секунды (200 мс), вы увидите ошибку:

Не беспокойтесь Вы все еще можете пропинговать с интервалом менее 200 мс. Но для этого нужно использовать пинг с правами root.

Изменить размер пакета

Размер пакета ICMP по умолчанию, отправляемого Ping, составляет 56 байтов. Это также можно изменить с помощью опции -s .

DoS-атака с пингом, который также называется Ping of Death.

Одна из самых простых атак DoS – Ping of Death. При такого рода атаках злоумышленник отправляет большое количество запросов ping за очень короткий промежуток времени. Если сервер не настроен должным образом, он потерпит крах при обработке запроса ping, и веб-сайт закроется.

Команда ping имеет встроенную функцию для этого. Это называется ping flooding , и этого можно достичь с помощью опции -f . Вам понадобятся права sudo для запуска этой опции с нулевым интервалом.

Когда вы запустите эту команду, вы увидите, что некоторые точки появляются и исчезают в выходных данных. Каждый ‘.’ обозначает запрос, тогда как ответом является возврат (поэтому точки исчезают).

Этот параметр проверки связи полезен при тестировании нагрузочной способности сервера.

Бонусный совет: отправьте звуковые сигналы

Вы можете отправлять звуковые сигналы с опцией -a . При этом вы услышите звуковой сигнал для каждого успешного пинга.

Обратите внимание, что не все дистрибутивы Linux настроены на создание звукового сигнала. Мы проверили это на Ubuntu 18.04, и могли слышать звуковой сигнал.

Устранение неисправностей команды Ping

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

Нет ответа на пинг

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

Если вы прервете команду ping, вы увидите странную статистику.

Как видите, было передано 100 пакетов, но ни на один из них не было получено ответа.

Скорее всего, потому что некоторые серверы отбрасывают пакеты ICMP. Это мера безопасности, чтобы избежать ping-флудов.

Хост назначения недоступен

Эта ошибка может возникать по одной из двух причин:

  • либо в локальной системе нет маршрута к удаленному хосту;
  • или маршрутизатор конечной точки не имеет маршрута к удаленному хосту.

Если вы видите только ошибку «целевой хост недоступен», это означает, что вашей системе не удалось найти маршрут к удаленному хосту.

С другой стороны, если вы видите ошибку в части ответа «Reply from », это означает, что пакет был отправлен за пределы вашей сети, но он не смог достичь пункта назначения.

Иногда серверы также блокируют трафик ICMP, который может показать эту ошибку.

Время ожидания запроса

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

Готовы пинговать?

Мы надеемся, что эта статья помогла вам лучше понять команду ping в Linux.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите .

Источник: softaltair.ru

Добавить комментарий