Provided by: manpages-pl_4.26.0-1_all 

NAZWA
ping - wysyła pakiety ICMP ECHO_REQUEST do stacji sieciowych
SKŁADNIA
ping [-aAbBdCDfhHLnOqrRUvV346] [-c liczba] [-e identyfikator] [-F etykieta-przepływu] [-i interwał]
[-I interfejs] [-l liczba-pakietów] [-m znacznik] [-M opcja-pmtudisc] [-N opcja-nodeinfo] [-w limit]
[-W czas-oczekiwania] [-p wzorzec] [-Q tos] [-s rozmiar-pakietu] [-S sndbuf] [-t ttl]
[-T opcja-znacznika-czasu] [hop...] {cel}
OPIS
Program ping używa obowiązkowego datagramu protokołu ICMP o nazwie ECHO_REQUEST, wywołującego ICMP
ECHO_RESPONSE od stacji lub bramy sieciowej. Datagramy ECHO_REQUEST („pingi”) składają się z nagłówka IP
oraz ICMP, za którymi następuje struct timeval oraz określona liczba bajtów wypełnienia, używanych do
wypełnienia pakietu.
ping działa z IPv4 oraz IPv6. Można wymusić używanie jednego z nich opcją -4 lub -6.
ping może wysyłać również Node Information Queries (RFC4620) IPv6. Niedozwolone mogą być przeskoki,
ponieważ trasowanie źródeł IPv6 zostało oznaczone jako przestarzałe (RFC5095).
OPCJE
-3
RTT precision (do not round up the result time).
-4
Używa wyłącznie IPv4.
-6
Używa wyłącznie IPv6.
-a
Ping dźwiękowy.
-A
Ping adaptowalny. Interwały pomiędzy poszczególnymi pakietami dostosowują się do czasu krążenia w
sieci, dzięki czemu w sieci nie pojawi się efektywnie więcej niż jeden pakiet, na który nie udzielono
odpowiedzi (lub więcej, jeśli ustawiono liczbę-pakietów). Minimalny interwał wynosi 2 milisekundy;
więcej informacji w opisie opcji -i. W przypadku sieci z niskim RTT jest to de facto odpowiednik
szybkiego pingowania.
-b
Pozwala na wysyłanie pingów na adresy rozgłoszeniowe.
-B
Nie pozwala programowi ping zmieniać źródłowego adresu wysyłanych pakietów. Adres jest przypisywany
do wyboru dokonanego przy starcie programu.
-c liczba
Kończy po wysłaniu liczby pakietów ECHO_REQUEST. Z podanym limitem program ping czeka na liczbę
pakietów ECHO_RESPONSE, aż do czasu upłynięcia limitu.
-C
Wywołuje wywołanie systemowe connect() po utworzeniu gniazda.
-d
Ustawia opcję SO_DEBUG na używanym gnieździe. Ta opcja gniazda nie jest używana przez jądro Linux.
-D
Wypisuje znacznik czasowy (w czasie uniksa + mikrosekundy jak w gettimeofday) przed każdym wierszem.
-e identyfikator
Ustawia pole identyfikacyjne ECHO_REQUEST. Wartość 0 wymusza użycie surowych gniazd (nieobsługiwane w
gniazdach datagramowych ICMP). Wartość pola można wypisać przy użyciu opcji -v.
-f
Tryb szybkiego pingowania („zalania” pakietami). Dla każdego wysłanego ECHO_REQUEST wypisywana jest
kropka „.”, a dla każdego odebranego ECHO_REPLY jedna kropka jest kasowana. Daje to dynamiczny obraz
zmian liczby opuszczonych pakietów. Jeśli nie podano interwału, jest on ustawiany na zero i pakiety
są wysyłane tak szybko, jak powracają lub 100 razy na sekundę, w zależności od tego, która opcja
produkuje więcej pakietów. Tylko użytkownik z uprawnieniami administratora może jej używać z zerowym
interwałem.
-F etykieta-przepływu
Tylko IPv6. Przypisuje i ustawia 20-bitową etykietę przepływu (szesnastkowo) w pakietach żądania
odpowiedzi. Jeśli wartość wynosi zero, jądro przypisuje losową etykietę przepływu.
-h
Wyświetla pomoc.
-H
Force DNS name resolution for the output. Useful for numeric destination, or -f option, which by
default do not perform it. It can also help to workaround DNS resolution problems. Override
previously defined -n option. See also IPUTILS_PING_PTR_LOOKUP environment variable.
-i interwał
Czeka interwał sekund pomiędzy wysłaniem kolejnych pakietów. Dozwolona jest liczba rzeczywista, z
kropką jako znakiem oddzielającym część dziesiętną (niezależnie od ustawień językowych). Domyślnie
czeka się jedną sekundę lub - w trybie szybkiego pingowania - wcale. Jedynie użytkownik z
uprawnieniami administratora może ustawić interwał mniejszy niż 0.2 ms. Ping grupowy (multicast) i
rozgłoszeniowy (broadcast) ma jeszcze ściślejszy limit dla zwykłego użytkownika: 1 sekunda.
-I interfejs
Interfejs może być adresem, nazwą interfejsu lub nazwą VRF (ang. Virtual Routing and Forwarding).
Jeśli interfejs jest adresem, ustawia się w ten sposób adres źródłowy określonego adresu interfejsu.
Jeśli interfejs jest nazwą interfejsu, ustawia interfejs źródłowy na podany interfejs. Jeśli
interfejs jest nazwą VRF, każdy pakiet jest trasowany za pomocą odpowiadającej tabeli trasowania, w
takim przypadku można podać opcję -I wielokrotnie, aby określić adres źródłowy. UWAGA: W przypadku
IPv6, przy wykonywaniu pinga do adresu segmentowego (ang. link-local), można określić łącza (notacją
„%” w celu lub tą opcją), lecz nie jest to już obecnie wymagane.
-L liczba-pakietów
Jeśli podana jest liczba-pakietów, ping wysyła tyle pakietów, nie czekając na odpowiedź, po czym
przechodzi do normalnego trybu działania. Tylko użytkownik z uprawnieniami administratora może wybrać
więcej niż 3 pakiety.
-L
Uniemożliwia powracanie zapętlonych pakietów grupowych (multicast). Opcja ta ma znaczenie jedynie gdy
adresem docelowym jest adres grupowy.
-m znacznik
use mark to tag the packets going out. This is useful for variety of reasons within the kernel such
as using policy routing to select specific outbound processing. CAP_NET_ADMIN or CAP_NET_RAW (since
Linux 5.17) capability is required, see socket(7).
-M opcja-pmtudisc
Wybiera strategię Path MTU Discovery (badania MTU ścieżki). opcja-pmtudisc może być jedną z
następujących: do (ustawia flagę flagę DF, ale jest przedmiotem sprawdzeń PMTU jądra, zbyt duże
pakiety będą odmawiane), want (wykonuje badanie MTU ścieżki, następuje lokalna fragmentacja gdy
rozmiary pakietów są znaczne) probe (ustawia flagę DF i pomija sprawdzenia PMTU, przydatne przy
sondowaniu) lub dont (nie ustawia flagi DF).
-N opcja-nodeinfo
Tylko IPv6. Wysyła IPv6 Node Information Queries (RFC4620), zamiast Echo Request. Wymagany jest
przywilej (ang. capability) CAP_NET_RAW.
help
Pokazuje pomoc do obsługi NI.
nazwa
Zapytania nazw węzłów.
ipv6
Zapytania adresów IPv6. Istnieje kilka flag dotyczących wyłącznie IPv6.
ipv6-global
Żądania adresów globalnych IPv6.
ipv6-sitelocal
Żądania adresów lokalnych IPv6.
ipv6-linklocal
Żądania adresów segmentowych dla łącza IPv6.
ipv6-all
Żądanie adresów IPv6 na innych interfejsach.
ipv4
Żądanie adresów IPv4. Istnieje jedna flaga dotycząca wyłącznie IPv4.
ipv4-all
Żądanie adresów IPv4 na innych interfejsach.
subject-ipv6=adres-ipv6
Przedmiotowy adres IPv6.
subject-ipv4=adres-ipv4
Przedmiotowy adres IPv4.
subject-name=nazwa-węzła
Przedmiotowa nazwa. Jeśli zawiera więcej niż jedną kropkę, zakłada się że jest to pełna,
jednoznaczna nazwa domenowa (FQDN).
subject-fqdn=nazwa-węzła
Przedmiotowa nazwa. Zawsze zakłada się że jest to pełna, jednoznaczna nazwa domenowa (FQDN).
-n
Numeric output only. No attempt will be made to lookup symbolic names for host addresses (no reverse
DNS resolution). This is the default for numeric destination or -f option. Override previously
defined -H option. See also IPUTILS_PING_PTR_LOOKUP environment variable.
-O
Zgłasza bieżącą odpowiedź ICMP ECHO przed wysyłaniem następnego pakietu. Jest to przydatne razem ze
znacznikiem czasu -D do zapisywania wyniku programu do pliku diagnostycznego w celu wyszukania
brakujących odpowiedzi.
-p wzorzec
Można podać do 16 bajtów „wypełnienia” wysyłanego pakietu. Jest to przydatne do diagnozowania w sieci
problemów związanych z danymi. Np. -p ff spowoduje wysyłanie pakietu wypełnionego jedynkami.
-q
Ciche wyjście. Poza wierszami podsumowania na starcie/końcu nic nie jest wyświetlane.
-Q tos
Ustawia bity związane z funkcją Quality of Service (jakość usługi). tos może być liczbą dziesiętną
(tylko ping) lub szesnastkową.
W RFC2474, pola te są interpretowane jako ośmiobitowe Differentiated Service (DS), składające się z :
bitów 0-1 (2 najniższe bity) oddzielnych danych i bity 2-7 (najwyższe 6 bitów) Differentiated
Services Codepoint (DSCP). W RFC2481 i RFC3168 bity 0-1 są używane do ECN.
Historycznie (RFC1349, zastąpione przez RFC2474) były one interpretowane jako: bit 0 (najniższy) -
zarezerwowany (obecnie: kontrola ograniczenia przesyłu), 1-4 jako Type of Service (typ usługi), a
bity 5-7 (najwyższe) jako Precedence (pierwszeństwo).
-r
Pomija normalne tabele trasowania i wysyła pakiety bezpośrednio do stacji w przyłączonej sieci. Jeśli
stacja nie jest w sieci podłączonej bezpośrednio, zwracany jest błąd. Opcja ta może być używana do
pingowania stacji lokalnej poprzez interfejs, przez który nie ma trasy, o ile użyto również opcji -I.
-R
Tylko program ping. Nagrywa trasę. Zawiera w pakiecie ECHO_REQUEST opcję RECORD_ROUTE i wyświetla
bufor trasy zwróconych pakietów. Proszę zauważyć, że nagłówek IP wystarcza jedynie na 9 takich tras.
Wiele stacji ignoruje lub zarzuca tę opcję.
-s rozmiar-pakietu
Specifies the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data
bytes when combined with the 8 bytes of ICMP header data. The maximum allowed value is 65507 for IPv4
(65467 when -R or -T or Intermediate hops) or 65527 for IPv6, but most systems limit this to a
smaller, system-dependent number.
-S sndbuf
Ustawia sndbuf (bufor wysyłania) gniazda. Jeśli nie określono dokładniej, buforowany jest nie więcej
niż jeden pakiet.
-t ttl
Tylko ping. Ustawia TTL (IP Time to Live).
-T opcja-znacznika-czasu
Ustawia specjalne opcje znacznika czasu IP. Opcja-znacznika-czasu może przyjąć jedną z następujących
wartości: tsonly (tylko znaczniki czasu), tsandaddr (znaczniki czasu i adresy) lub tsprespec stacja1
[stacja2 [stacja3 [stacja4]]] (wstępnie określone przeskoki znacznika czasu).
-U
Wypisuje pełne opóźnienie użytkownik-użytkownik (stare zachowanie). ping wypisuje zwykle czas podróży
pakietu w sieci, który może się różnić np. ze względu na błędy DNS.
-v
Wyjście szczegółowe. Nie wstrzymuje odpowiedzi DUP przy pingowaniu adresów grupowych (multicast).
-V
Wyświetla informacje o wersji i kończy działanie.
-w limit
Określa czas (w sekundach) po jakim ping zakończy pracę niezależnie od liczby wysłanych czy
odebranych pakietów. W takim przypadku ping nie wychodzi po liczbie wysłanych pakietów - czeka albo
na minięcie limitu albo na liczbę otrzymanych odpowiedzi lub też na jakiś sygnał o błędzie z sieci.
-W czas-oczekiwania
Czas oczekiwania na odpowiedź, w sekundach. Opcja ta wpływa wyłącznie na czas oczekiwania w razie
braku jakiejkolwiek odpowiedzi, w przeciwnym razie ping czeka na dwa RTT. Dozwolona jest liczba
rzeczywista, z kropką jako znakiem oddzielającym część dziesiętną (niezależnie od ustawień
językowych). 0 oznacza czas nieograniczony.
Przy używaniu pinga do izolowania błędów, należy go najpierw uruchomić na komputerze lokalnym, by
sprawdzić czy lokalny interfejs sieciowy jest włączony i czy działa. Potem należy „pingować” coraz to
dalsze stacje i bramki. Obliczane są czasy podróży i statystyki utraty pakietów. Jeśli odbierane są
pakiety zduplikowane, nie są one włączane do obliczeń strat pakietów, choć ich czas podróży jest używany
do obliczania minimalnego/średniego/maksymalnego czasu podróży.
Standardowe odchylenie populacji (mdev) to przeciętna wartość, o jaką każdy ping RTT różni się od
średniego RTT. Im wyższe jest mdev, tym bardziej zmienne jest RTT (w czasie). Przy dużej zmienności RTT
będą występować problemy szybkości przy dużych transferach (będą zajmowały więcej czasu, niż jest to
ściśle potrzebne, jako że zmienność doprowadzi w końcu do konieczności oczekiwania przez wysyłającego na
potwierdzenia) oraz jakość rozmów VoIP będzie przeciętna do miernej.
Po wysłaniu (i otrzymaniu) podanej liczby pakietów lub po przerwaniu programem SIGINT, wyświetlane jest
zwięzłe podsumowanie. Można też pozyskać bieżące statystyki z krótszego okresu, bez przerywania procesu,
sygnałem SIGQUIT.
Program ten jest przeznaczony do testowania sieci, pomiarów i zarządzania. Z powodu obciążenia, jakie
może wywołać w sieci, niemądre jest używanie pinga podczas normalnych operacji z zautomatyzowanych
skryptów.
ŚRODOWISKO
IPUTILS_PING_PTR_LOOKUP environment variable set to 0 disable reverse DNS resolution (PTR lookup) by
default. It will be overrided by -H or -n option. .SH "EXIT STATUS"
Jeśli ping nie otrzyma w ogóle pakietów odpowiedzi zakończy się z kodem 1. Jeśli podano liczbę pakietów
oraz limit i są one mniejsze niż liczba pakietów otrzymanych po osiągnięciu limitu kodem zakończenia
również będzie 1. W przypadku innego błędu program wychodzi z kodem 2. W przeciwnym wypadku kończy się z
kodem 0. W ten sposób można na podstawie kodu zakończenia sprawdzić czy stacja odpowiada, czy też nie.
CELE ADRESÓW SEGMENTOWYCH IPV6
Przy IPv6, gdy adresem docelowym jest adres segmentowy (ang. link-local) i ping używa gniazd
datagramowych ICMP, konieczne jest podanie interfejsu wyjściowego. Gdy ping używa gniazd surowych, nie
jest ściśle konieczne podanie interfejsu wyjściowego, ale powinno się to zrobić, aby uniknąć
wieloznaczności, gdy występuje wiele możliwych interfejsów wyjściowych.
Istnieją dwa sposoby określenia interfejsu wyjściowego:
• używając notacji %
Po adresie docelowym dołącza się % i nazwę interfejsu wyjściowego lub indeks interfejsu (ifindex),
przykładowo:
ping fe80::5054:ff:fe70:67bc%eth0
ping fe80::5054:ff:fe70:67bc%2
• za pomocą opcji -I
Stosując gniazda datagramowe ICMP, metoda ta jest obsługiwana od następujących wersji jądra: 5.17,
5.15.19, 5.10.96, 5.4.176, 4.19.228, 4.14.265. Nie jest jednak obsługiwana w bilbiotece libc musl.
SZCZEGÓŁY PAKIETU ICMP
Nagłówek IP bez opcji ma 20 bajtów. Pakiet ICMP ECHO_REQUEST zawiera dodatkowych 8 bajtów nagłówka ICMP,
za którymi następuje określona ilość danych. Gdy podany jest rozmiar-pakietu, to określa on rozmiar
dodatkowego bloków danych (domyślnie 56). Tak więc ilość danych znajdujących się wewnątrz pakietu IP typu
ICMP ECHO_REPLY jest zawsze 8 bajtów większa niż żądana ilość danych (nagłówek ICMP).
Jeśli rozmiar danych ma wielkość przynajmniej struktury timeval, ping używa pierwszych 8 bajtów do
włączania znacznika czasowego, którego używa do obliczeń czasów podróży. Jeśli podano mniej niż 8 bajtów
wypełnienia, nie są podawane czasy podróży.
ZDUPLIKOWANE I USZKODZONE PAKIETY
Program ping zgłasza pakiety uszkodzone i zduplikowane. Pakiety zduplikowane nigdy nie powinny się
pojawiać i prawdopodobnie są powodowane przez nieprawidłowe retransmisje poziomu połączenia (link-level).
Mogą się one pojawiać w wielu sytuacjach i rzadko są dobrym znakiem, choć obecność niskiej liczby
duplikatów nie musi być zawsze powodem alarmu.
Pakiety uszkodzone są oczywiście poważną przyczyną alarmu i często wskazują na uszkodzenie sprzętu na
drodze pakietu ping (w sieci lub w komputerze).
KOLIZJE IDENTYFIKATORÓW
W przeciwieństwie do TCP i UDP unikatowo identyfikujących odbiorcę do dostarczenia danych, ICMP używa
pola identyfikatora (ID) do celów identyfikacji. Z tego względu, jeśli na tym samym komputerze, w tym
samym czasie, istnieją dwa procesy ping używające tego samego ID, odpowiedź echo może trafić do
niewłaściwego odbiorcy. To znany problem, ze względu na ograniczony rozmiar 16-bitowego pola ID. Jest to
historyczne ograniczenie protokołu, którego nie da się w tym momencie naprawić, chyba że ID zostałby
zakodowany we fragmencie payload pakietu ping. ping wypisuje błąd DIFFERENT ADDRESS i utrata pakietów
jest ujemna.
ping używa identyfikatora procesu (PID) do pozyskania unikatowego numeru. Domyślną wartością
/proc/sys/kernel/pid_max jest 32768. W systemach intensywnie korzystających z programu ping, oraz przy
pid_max większym od 65535 kolizje są nieuniknione.
UŻYWANIE RÓŻNYCH WZORCÓW DANYCH
Poziom (inter)sieci nigdy nie powinien traktować pakietów odmiennie w zależności od danych zawartych w
części danych. Niestety, problemy zależne od danych, czasem pojawiają się w sieciach i pozostają długo
niezauważane. W wielu przypadkach konkretny wzorzec powodujący problemy jest czymś, co nie posiada
wystarczającej liczby „zmian”, np. jest samymi jedynkami lub samymi zerami, lub wzorcem na samym krańcu,
prawie wypełnionym zerami. Niekoniecznie jednak musi wystarczyć podanie wzorca z samymi zerami w wierszu
poleceń, gdyż interesujący wzorzec jest na poziomie połączenia i związek między tym co się wpisze, a tym
co transmituje kontroler może być złożony.
Znaczy to, że jeśli występuje problem zależny od danych, to będzie to wymagało wielu testów do jego
izolacji. Jeśli ma się szczęście, można znaleźć plik, który nie może być przesłany przez sieć lub który
wymaga dużo więcej czasu do przesłania niż inne podobnej długości pliki. Można następnie taki plik
przetestować w poszukiwaniu powtarzalnych wzorców z użyciem opcji -p programu ping.
SZCZEGÓŁY TTL
Wartość TTL pakietu IP reprezentuje maksymalną liczbę routerów IP, którą pakiet może minąć nim zostanie
wyrzucony. W obecnej sytuacji, można oczekiwać że każdy router internetowy obniży wartość TTL o jeden.
Pole TTL pakietu TCP może przyjąć różne wartości. Maksymalna możliwa wartość tego pola wynosi 255, a
zalecana początkowa: 64. Więcej informacji znajduje się w rozdziale „TCP/Lower-Level Interface” w
RFC9293.
W normalnym działaniu, ping wypisuje wartości TTL odbieranych pakietów. Gdy system zdalny otrzymuje
pakiet ping, może on zrobić jedną z trzech rzeczy z polem TTL:
• Nie zmienić go; jest to właściwość systemów Berkeley Unix przed wydaniem 4.3BSD Tahoe. W tym
wypadku wartość TTL odebranego pakietu wyniesie 255 minus liczba routerów na trasie podróży.
• Ustawić ją na 255: jest to właściwość obecnego Berkeley Unix. W tym wypadku wartość TTL odebranego
pakietu wyniesie 255 minus liczbę routerów na trasie od systemu zdalnego do stacji pingującej.
• Ustawić na inną wartość. Niektóre komputery używają dla pakietów ICMP tej samej wartości co dla
pakietów TCP, np. 30 lub 60. Inne mogą używać jeszcze bardziej abstrakcyjnych wartości.
USTERKI
• Wiele stacji i bram ignoruje opcję RECORD_ROUTE.
• Maksymalna długość nagłówka IP jest zbyt mała dla całkowitej użyteczności opcji w rodzaju
RECORD_ROUTE. Jednak nie można z tym praktycznie nic zrobić.
• Szybkie pingowanie nie jest ogólnie zalecanie, a w szczególności pingowanie adresu rozgłoszeniowego
powinno być wykonywane w ściśle kontrolowanych warunkach.
ZOBACZ TAKŻE
ip(8), ss(8).
HISTORIA
Komenda ping pojawiła się w 4.3BSD.
Niniejsza wersja jest jej następcą charakterystycznym dla Linuksa.
Według stanu na wersję s20150815, plik binarny ping6 już nie istnieje. Został złączony z ping. Utworzenie
dowiązania symbolicznego nazwanego ping6 wskazującego na ping zapewni tę samą funkcjonalność jak
wcześniej.
BEZPIECZEŃSTWO
ping wymaga do wykonania przywileju (ang. capability) CAP_NET_RAW 1) jeśli program jest używany do
zapytań innych niż echo (zob. opcję -N) lub jeśli pole identyfikacyjne ustawiono na 0 do ECHO_REQUEST
(zob. -e) albo 2) jeśli jądro nie obsługuje gniazd datagramowych IMMP albo 3) jeśli użytkownik nie może
tworzyć gniazda echo ICMP. Program może być używany z ustawieniem ID roota podczas wykonania (suid).
DOSTĘPNOŚĆ
ping jest częścią pakietu iputils.
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i
Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ
ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-
list@lists.sourceforge.net.
iputils 20240905 PING(8)