- Команда ping в Linux
- Как работает ping?
- Команда Ping
- Как пользоваться Ping?
- Выводы
- 15+ ping command examples in Linux [Cheat Sheet]
- Syntax to use ping command
- Different examples to use ping command in Linux
- 1. ping command to check the network connectivity of target host
- 2. Specify the number of pings to be performed with ping command
- 3. Check localhost network with ping command
- 4. Set interval seconds between sending each packet with ping command
- 5. Perform flood ping towards target host
- 6. Specify the number of data bytes to be sent with ping command
- 7. Display only the summary lines for ping command output
- 8. Set special IP timestamp options
- 9. Specify the timeout in seconds for ping command
- 10. Set time to wait for a response for ping command
- 11. Send multiple packets while waiting for replies with ping command
- 12. Set the IP time to live with ping command
- 13. Print timestamps with ping command
- 14. Use IPv4 or IPv6 address with ping command
- 15. Perform audible ping
- 16. Report ICMP ECHO reply for ping command
- 17. Print full user-to-user latency with ping command
- Conclusion
Команда 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.
15+ ping command examples in Linux [Cheat Sheet]
ping (Packet Internet Groper) is a command-line utility in Linux to check the network connectivity between host and host/server. It also helps to test, diagnose, and troubleshoot network connectivity issues. With the ping command, you can know if a server is up and running. The ping sends ICMP (Internet Control Message Protocol) ECHO_REQUEST messages to the specified host and waits for the reply. If the host is available, it sends an ICMP echo reply message (ECHO_RESPONSE). If ping does not receive any reply packets, it will exit with code 1.
Syntax to use ping command
The syntax for the ping command is:
Some options available in the ping command are given below.
Different examples to use ping command in Linux
1. ping command to check the network connectivity of target host
You can run the ping command without any option to check if the server of the target host is up and running. For example, to test our website, you can use the website name or IP address.
Sample Output:
You need to press Ctrl+C to stop the ping otherwise it will keep sending the packets infinitely. DUP! are the duplicate packets caused by inappropriate link-level retransmissions.
2. Specify the number of pings to be performed with ping command
When you specify the count N, the ping command stops sending the packets after N replies. You do not have to stop the ping with Ctrl+C.
Sample Output:
3. Check localhost network with ping command
You can ping localhost to check if you have a network connection.
Sample Output:
4. Set interval seconds between sending each packet with ping command
The -i option set interval time in seconds to wait before sending each packet. The default is to wait for one second between each packet, or not to wait in flood mode.
Sample Output:
5. Perform flood ping towards target host
The -f option is used to run the flood ping. In flood ping, for every ECHO_REQUEST sent a period ».» is printed, and for every ECHO_REPLY received a backspace is printed. The interval time is zero and the packets are sent one hundred times per second. Only the super-user can use this option with zero intervals.
Sample Output:
6. Specify the number of data bytes to be sent with ping command
The -s option specifies the number of data bytes to be sent. The default size is 56 ICMP data bytes which become 64 bytes when combined with the 8 bytes of ICMP header data.
Sample Output:
7. Display only the summary lines for ping command output
The -q option can be used to display only the summary lines at startup time and when finished.
Sample Output:
8. Set special IP timestamp options
The -T option sets special IP timestamp options. timestamp option can be:
- tsonly: only timestamps
- tsandaddr: timestamps and addresses
- tsprespec host1 [host2 [host3 [host4]]]: timestamp prespecified hops
Sample Output:
9. Specify the timeout in seconds for ping command
The -w option specifies a ( timeout in seconds) before ping exits regardless of how many packets have been sent or received. ping waits for the reply in seconds.
Sample Output:
10. Set time to wait for a response for ping command
The -W option is used to set the time to wait for a response, in seconds. The option affects only timeout in absence of any responses otherwise, ping waits for two RTTs (round-trip time).
Sample Output:
11. Send multiple packets while waiting for replies with ping command
The -l option specifies the number of packets that are to be sent while waiting for replies. Only the super-user can select preload more than 3.
Sample Output:
12. Set the IP time to live with ping command
You can use -t option to set the IP time to live (TTL). It limits the number of network hops. The value ranges between 1 and 255.
Sample Output:
13. Print timestamps with ping command
The -D option prints the timestamps before every line.
Sample Output:
14. Use IPv4 or IPv6 address with ping command
The -4 and -6 options are used to specify the IPv4 and IPv6 addresses respectively.
Sample Output:
When you use the IPv6 address with -4 option, it shows an error message.
ubuntu@golinux:~$ ping -4 2606:4700::6813:9a5c ping: 2606:4700::6813:9a5c: Address family for hostname not supported
15. Perform audible ping
When the -a option is used, the system will produce a sound if there is a reply from the host.
Sample Output:
16. Report ICMP ECHO reply for ping command
The -O option reports outstanding ICMP ECHO reply before sending the next packet. It is useful together with the -D option to log
output to a diagnostic file and search for missing answers.
Sample Output:
17. Print full user-to-user latency with ping command
Normally, ping prints network round trip time which can be different, for example, due to DNS failures. The -U option can be used to print full user-to-user latency.
Sample Output:
Conclusion
This tutorial teaches you to use ping command with different options in a Linux system. ping is a useful tool that allows you to test the connectivity of a specified host on the network. If you still have any confusion, please let us know in the comment section.