Начини на плащане Abuse

Как работи командата ping

26.11.2021, 18:30

Със сигурност сте се сблъсквали със ситуация, в която интернет на компютъра ви внезапно прекъсва, като такова поведение може да се наблюдава при използване на ADSL модеми, Wifi на дълги разстояния, GSM и други подобни ненадеждни технологии. Можете бързо да разберете дали компютърът ви има интернет, като използвате програмата ping.

Обхватът на нейното приложение обаче е много по-широк, тя се използва от мрежовите администратори за проверка на наличността на отдалечен възел в мрежата, използва се в различни скриптове и на много други места. В тази статия ще разгледаме командата ping в Linux, ще говорим за това как да използваме полезната програма, как работи, ще разгледаме нейните опции и функции.

Как работи командата

Помощната програма ping е прост инструмент за отстраняване на проблеми в мрежата. Тя ви позволява да проверите дали даден отдалечен хост е достъпен или не и това е всичко. За да направи това, полезната програма проверява дали хостът може да отговаря на мрежови заявки, използвайки протокола ICMP. Надявам се, че няма нужда да ви казвам, че всички данни по мрежата се предават като малки пакети. Програмата предава малък пакет от данни по ICMP и очаква да получи пакет с отговор обратно, ако това стане, отдалеченият хост се счита за достъпен. ICMP или Internet Control Message Protocol (Протокол за управление на съобщенията в интернет) е добавка към протокола IP, която се използва за предаване на съобщения за услуги и грешки.

Протоколът ICMP може да предава само два вида пакети - съобщения за грешки и съобщения за заявки. От своя страна съобщенията за заявки се разделят на:

Съобщение за заявка за ехо;

Съобщение за отговор Echo.

След това нека разберем какво прави командата ping. След като изпратите заявка за ping към отдалечен хост, обслужващата програма задава уникален идентификатор за всеки пакет, както и TTL и времето, в което е изпратен пакетът. Ако хостът е достъпен, той изпраща отговор; въз основа на времето на изпращане програмата може да изчисли времето за обиколка на пакета. След това се изпраща следващият пакет. Накрая се изчисляват общият брой изпратени и получени пакети, процентът на загубите и други данни.

Команда Ping

Сега ни остава малко практика. Но преди да пристъпим към практиката, нека разгледаме синтаксиса на командата и нейните опции. Синтаксисът е съвсем прост:

$ ping [options] host_address

Форматът на командата ping е много прост. Като адрес на хоста можете да подадете или ip адрес, или име на домейн. С опциите се конфигурира поведението на програмата. Нека разгледаме основните от тях:

-4 - използвайте само ipv4 (по подразбиране);

-6 - използва само ipv6;

-A - адаптивен режим, времето между изпращането на пакет е съобразено с времето на предаване и приемане на пакета, но не по-малко от 200 милисекунди;

-b - позволява ping на broadcast адрес;

-c - брой на пакетите за изпращане;

-D - извеждане на времето като времеви печат на UNIX;

-f - flood mode (режим на наводняване), в този режим пакетите се предават без забавяне, може да се използва за DoS атаки срещу отделни възли. Броят на точките, които програмата извежда, показва броя на изгубените пакети;

-i - интервалът в секунди между изпращането на пакетите;

-I - използвайте този мрежов интерфейс за изпращане на пакети;

-l - режим на претоварване, изпращат се много пакети и системата не следи пакетите с отговори;

-n - не получавайте домейни за ip адреси;

-r - пренебрегва таблиците за маршрутизация и изпраща пакетите към посочения интерфейс;

-s - размер на един пакет;

-t - ръчно задаване на TTL;

-v - по-подробен изход.

Сега, след като разгледахме основните параметри на командата ping и нейния синтаксис, е време за практика, като по-нататък ще поговорим за това как да пингваме конкретен хост в Linux.

Как да използвате

За проверка на производителността на мрежата често се използва ping на някой сайт, който е винаги достъпен, като например google.com или още по-простия и кратък ya.ru. Ще трябва само да предадете този адрес на програмата в параметрите, тя сама ще намери ip адреса и ще направи всичко необходимо:

$ ping ya.ru

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

предадени пакети - изпратени пакети;

получени - получени пакети;

загуба на пакети - процент на загубените пакети;

време - общото време на работа;

rtt min/avg/max/mdev - минимално време/средновреме/максимално време/квадратично отклонение.

Ако командата ping не бъде спряна, пакетите могат да се изпращат много дълго време, това създава допълнително натоварване на сървъра и следователно не е желателно. Можете да ограничите броя на пакетите, изпращани веднага при извикването на командата, като използвате опцията -c:

$ ping -c 3 ya.ru

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

 $ ping -c 3 8.8.8.8

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

$ ping -f losst.ru

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

$ ping -i 0.2 losst.ru

Тук програмата ping извършва т.нар. конфигурируем flood, като вие определяте с каква интензивност искате да се изпращат пакетите. С опцията -D можете да видите Unix Timestamp за всяко съобщение:

$ ping -D losst.ru

Разгледахме какво представлява командата ping в Linux, как да я използваме основни параметри и методи на приложение. Този много прост инструмент може да се използва за тестване на мрежови проблеми и за тяхното отстраняване. В това отношение полезната програма може да стане незаменима.