Пинг всей подсети linux

Команда ping в Linux

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

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

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

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

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

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

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

Команда Ping

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

Читайте также:  Что такое overlay linux

$ 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 для каждого сообщения:

Читайте также:  Изменение переменной path linux

Выводы

В этой статье мы рассмотрели что такое команда 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:

ping command to check the network connectivity of the target host

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:

ping command to specify the count

3. Check localhost network with ping command

You can ping localhost to check if you have a network connection.

Sample Output:

ping command to check local network

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:

ping command to wait interval seconds between sending each packet

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:

ping command to flood the networks

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.

Читайте также:  Задайте звуковой щелчок подтверждающий нажатие каждой клавиши linux

Sample Output:

ping command to specify the number of data bytes

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:

ping command to display only the summary lines

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:

ping command to set timestamp option

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:

ping command to specify the timeout in seconds

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:

ping command to set time to wait for a response

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:

ping command to send many packets while waiting for replies

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:

ping command to set time to live

13. Print timestamps with ping command

The -D option prints the timestamps before every line.

Sample Output:

ping command to print timestamps

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:

ping command to use ipv4 address

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:

ping command to use audible ping

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:

ping command to report reply before sending next packet

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:

ping command to print full user-to-user latency

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.

Источник

Оцените статью
Adblock
detector