Niezależnie od tego jakim użytkownikiem Linuksa jesteś (początkującym czy profesjonalistą), istnieją pewne narzędzia, których musisz być świadomy. Jednym z takich narzędzi jest Ping. W tym tutorialu omówimy podstawy tego narzędzia na kilku łatwych do zrozumienia przykładach. Ale zanim to zrobimy, warto wspomnieć, że wszystkie przykłady w artykule zostały przetestowane na Ubuntu 16.04 LTS.
Linux polecenie ping
W najbardziej podstawowych kategoriach, polecenie ping pozwala sprawdzić, czy zdalny host żyje i odpowiada. Poniżej znajduje się składnia tego narzędzia:
ping destination
A oto jak strona man wyjaśnia to:
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit
an ICMP ECHO_RESPONSE from a host or gateway. ECHO_REQUEST datagrams
(``pings'') have an IP and ICMP header, followed by a struct timeval
and then an arbitrary number of ``pad'' bytes used to fill out the
packet.
ping6 is IPv6 version of ping, and can also send Node Information
Queries (RFC4620). Intermediate hops may not be allowed, because IPv6
source routing was deprecated (RFC5095).
Poniżej znajduje się kilka przykładów w stylu Q&A, które powinny dać ci dobre pojęcie o tym, jak działa polecenie ping.
Q1. Jak używać polecenia ping?
Podstawowe użycie jest dość proste – wystarczy wykonać polecenie 'ping' z miejscem docelowym jako wejściem.
Na przykład:
ping howtoforge.com
Poniżej znajduje się wynik działania tej komendy w moim systemie:
Zauważ, że domyślnie komenda będzie wykonywana dopóki nie zatrzymasz jej działania przez Ctrl+C.
Q2. Jak zmienić interwał czasowy pomiędzy pakietami ping?
Domyślnie, pomiędzy pakietami ping jest przerwa jednej sekundy. Jednakże, jeśli chcesz, możesz dostosować to opóźnienie używając opcji -i w wierszu poleceń.
Na przykład, poniższe polecenie zapewnia odstęp 3 sekund:
ping -i 3 howtoforge.com
A poniższe polecenie wysyła pakiety z półsekundowym opóźnieniem.
ping -i 0.5 howtoforge.com
Uwaga: tylko superużytkownik może ustawić interwał na wartość mniejszą niż 0.2 sekundy
Q3. Jak zmienić rozmiar pakietu ping?
Domyślnie, liczba bajtów w pakiecie ping wynosi 56 (64 jeśli uwzględnimy 8 bajtów nagłówka ICMP). Jeśli jednak chcesz, możesz zmienić tę wartość, co możesz zrobić, używając opcji -s w wierszu poleceń.
Na przykład, aby wysłać pakiet 80 bajtowy (88 łącznie z nagłówkiem ICMP), użyj następującego polecenia:
ping -s 80 howtoforge.com
Q4. Jak sprawić, by ping wysyłał określoną liczbę pakietów?
Domyślnym zachowaniem pinga jest wysyłanie pakietów aż do momentu przerwania przez użytkownika. Jednakże, jeśli chcesz, możesz zmusić ping do zaprzestania wykonywania polecenia po wysłaniu określonej liczby pakietów. Można to zrobić używając opcji -c w wierszu poleceń.
Na przykład, poniższe polecenie wyśle 3 pakiety, a następnie zatrzyma się.
ping -c 3 howtoforge.com
Q5. Jak uruchomić zalew pakietów za pomocą ping?
Tak, polecenie ping oferuje również opcję uruchomienia zalewu pakietów. Możesz to zrobić używając opcji -f w wierszu poleceń.
ping -f howtoforge.com
Oto co mówią oficjalne dokumenty na temat tej opcji:
For every ECHO_REQUEST sent a period ``.'' is
printed, while for ever ECHO_REPLY received a backspace is
printed. This provides a rapid display of how many packets are
being dropped. If interval is not given, it sets interval to
zero and outputs packets as fast as they come back or one hun?
dred times per second, whichever is more. Only the super-user
may use this option with zero interval.
Q6. Jak sprawić, by ping drukował znacznik czasu przed każdą linią?
Jest opcja (-D), która pozwala to zrobić. Wypisywany timestamp jest kombinacją czasu uniksowego i mikrosekund (jak w gettimeofday).
ping -D howtoforge.com
Tutaj zrzut ekranu pokazujący tę opcję w akcji:
Q7. Jak ustawić twardy limit czasu dla pinga?
Możesz określić czas, po którym ping ma wyjść. Można to zrobić za pomocą opcji -w, która wymaga wartości liczbowej reprezentującej liczbę sekund.
Na przykład, następujące polecenie ping zatrzyma się po 3 sekundach:
ping -w 3 howtoforge.com
Oficjalne dokumenty wyjaśniają tę opcję:
Specify a timeout, in seconds, before ping exits regardless of
how many packets have been sent or received. In this case ping
does not stop after count packet are sent, it waits either for
deadline expire or until count probes are answered or for some
error notification from network.
Q8. Jak ustawić miękki limit czasu dla pinga?
Podczas gdy opcja -w sprawia, że ping zatrzymuje się w każdym przypadku po upływie terminu, istnieje inna opcja (-W, w caps), która również zatrzymuje ping, ale tylko wtedy, gdy nie ma odpowiedzi od strony docelowej.
ping -W 3 howtoforge.com
Oto jak strona man wyjaśnia zachowanie w tym przypadku:
Time to wait for a response, in seconds. The option affects only
timeout in absence of any responses, otherwise ping waits for
two RTTs.
Wnioski
Ping jest ważnym narzędziem, które prawie na pewno jest używane do debugowania problemów związanych z siecią. W tym poradniku, omówiliśmy kilka głównych cech (opcji linii poleceń) tego narzędzia. Przećwicz je, a gdy skończysz, odwiedź stronę man narzędzia, aby dowiedzieć się więcej na jego temat.