Команда 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 выполняет так званный, настраиваемый флуд, вы указываете с какой интенсивностью нужно отправлять пакеты. С помощью опции -D вы можете увидеть Unix Timestamp для каждого сообщения:
Выводы
В этой статье мы рассмотрели что такое команда ping в linux, как ее использовать основные параметры и методы применения. Этот очень простой инструмент можно применять для тестирования неполадок сети и их исправления. В этом плане утилита может стать незаменимой.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Install and Use Ping Command in Linux
PING is undoubtedly a millennial word. It’s rooted in quotidian life and henceforth has become a concept to be unveiled. Many of us might be known of the fact that the word ‘ping‘ is not actually a word but an acronym. PING stands for Packet Internet Groper. The meaning
says it all.
Pinging is a notion to observe the connectivity between two systems, to check whether the remote system is online. Technically, the word ping lies in the domain of network communication. It deals with the notion of transferring and accepting the packets from source to destination system.
It is used to check the connectivity of systems by sending packets. Let’s say system A wishes to connect to system B. In this case, the A sends packets to B i.e A pings to B. System A can ping to B by either using its IP address or its hostname.
Pinging in Linux
Pinging in Linux is apparently an easy job to do until you have the command which performs this action for you. In Linux distribution, the pinging is done using the command “ping” followed by the IP address or hostname.
$ ping [option] [IP address / hostname]
To check the IP address of your Linux system, use the following command.
Next, try to ping the server using the IP address as shown.
What Does a Packet Contain?
So far we know pinging purports to send packets. But what are these packets? These packets comprise the information along with a header. The header is the guiding light for this packet.
A packet header contains the source IP address and the destination IP address. It resembles the way you send postcards containing your address and your friend’s address. Once the packet reaches its destined location it responses back and that’s what we call “The systems are pinging“.
The ping command actually sends an echo request to the remote system. It uses ICMP (Internet Control Message Protocol) for the same. Whenever the two systems ping it is followed by some detailed specifications ranging from who is sending packets and at what time it reaches the destination.
The explanation of the above ping command.
- icmp_seq – It is the number given to every request sent by the source.
- ttl – Time To Live is the number of network nodes taken by the packet.
- time – It represents the milliseconds taken by the packet to reach and come back again to the source.
How to Install Ping Command in Linux
By default, most Linux systems already have the ping command. Here, we consider the scenario that it does not, so we encounter this error on trying to ping with google.
$ ping www.google.com bash: /usr/sbin/ping: No such file or directory
To install the ping command in Linux, use your system’s package manager as shown.
$ sudo apt install iputils-ping [On Debian, Ubuntu and Mint] $ sudo yum install iputils [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a net-misc/iputils [On Gentoo Linux] $ sudo pacman -S iputils [On Arch Linux] $ sudo zypper install iputils [On OpenSUSE]
Once the software has been installed you can successfully ping to any server. The process can be stopped using Ctrl+C .
In extension, the ping command offers some specific options that can also be tried and tested. To see additional command-line options:
This article was an overview of how to install and explore the ‘ping‘ command in the Linux servers. It also gave an insight into the real essence of pinging. In addition, it appends to the knowledge bucket of Linux.
Ping command is accompanied by varied options which can further be used to control, count, stop the packets transfer. Examine these commands and keep pinging. Do let us know how you find this article. Any views, suggestions are welcomed.