Przejdź do głównej zawartości

ping


  • ping – program do testowania dostępności hosta w sieci poprzez wysyłanie zapytań ICMP Echo Request (IPv4) lub ICMPv6 Echo Request (IPv6) i odbieranie odpowiedzi.
  • Zastosowania: szybkie sprawdzenie łączności, pomiar RTT (latency), diagnostyka DNS/routingu/MTU, monitoring w skryptach.
  • Dostępne w większości dystrybucji Linux (pakiet iputils lub iputils-ping). Występują różnice względem implementacji BSD/macOS oraz BusyBox.

Okno terminala
ping [opcje] <host>
  • <host> – nazwa DNS lub adres IP (IPv4/IPv6).
  • Domyślnie wysyła pakiety aż do przerwania Ctrl+C; w skryptach używaj limitu -c.
  • Warianty: ping -4 (wymuś IPv4) / ping -6 (wymuś IPv6). Na części systemów istnieją osobne polecenia ping6.

ParametrOpis
-c <liczba>Liczba wysłanych pakietów (zakończ po N odpowiedziach).
-i <sek>Interwał między pakietami (domyślnie 1 s; wartość < 0.2 s zwykle wymaga uprawnień).
-w <sek>Deadline – maksymalny czas działania polecenia.
-W <sek>Timeout oczekiwania na pojedynczą odpowiedź.
-s <bajty>Rozmiar części danych w pakiecie (bez nagłówków).
-t <TTL>Ustawia TTL (IPv4) / Hop Limit (IPv6).
`-I <ifaddr>`Wybór interfejsu lub adresu źródłowego.
-4 / -6Wymusza IPv4 / IPv6.
-nTylko adresy numeryczne (bez odwrotnego DNS).
-qTryb cichy (wyświetl statystyki podsumowujące).
-vWięcej informacji diagnostycznych.
-DZnacznik czasu przy każdym wierszu odpowiedzi.
`-M <dodontwant>`Steruje PMTUD (IPv4): do – ustaw DF, dont – wyłącz, want – preferuj.
-Q <TOS/DSCP>Ustawia pole TOS/DSCP (IPv4) lub Traffic Class (IPv6).
-aSygnał dźwiękowy przy odpowiedzi (jeśli terminal wspiera).
-AAdaptive ping (reguluje interwał zależnie od RTT; iputils).

Uwaga: dostępność i semantyka niektórych opcji różni się między iputils (Linux), BSD/macOS i BusyBox. Sprawdź man ping na swojej platformie.


Okno terminala
# 1) Sprawdź łączność do hosta – wyślij 4 pakiety
ping -c 4 example.com
# Efekt: 4 odpowiedzi lub informacja o stracie, średnie RTT w podsumowaniu.
Okno terminala
# 2) Szybki test z krótkim timeoutem na pakiet (2 s)
ping -c 1 -W 2 8.8.8.8
# Efekt: szybka odpowiedź lub błąd timeout bez długiego czekania.
Okno terminala
# 3) Wymuś IPv6 i pinguj adres IPv6
ping -6 -c 3 2001:4860:4860::8888
# Efekt: trzy zapytania ICMPv6 do wskazanego adresu (DNS Google IPv6).
Okno terminala
# 4) Ping z konkretnego interfejsu lub adresu źródłowego
ping -I eth0 -c 5 gateway.lan
# lub: ping -I 192.0.2.10 -c 5 example.com
# Efekt: ruch wychodzi przez wskazany interfejs/adres.
Okno terminala
# 5) Test MTU z włączonym DF (PMTUD) i rozmiarem 1472 bajty (IPv4)
ping -M do -s 1472 -c 3 1.1.1.1
# Efekt: wykryje fragmentację/za duży rozmiar ("Frag needed") lub przejdzie poprawnie.
Okno terminala
# 6) Diagnostyka pierwszego hopa (TTL=1)
ping -t 1 -c 2 8.8.8.8
# Efekt: "Time to live exceeded" z adresu najbliższego routera – testuje pierwszy skok.

  • Uprawnienia: Na współczesnych dystrybucjach ping działa bez SUID dzięki CAP_NET_RAW; na starszych może wymagać SUID root. Ograniczenia interwału (-i < 0.2) lub flood ping mogą wymagać uprawnień.
  • ICMP a zapory: Zapory/NAT potrafią blokować ICMP, co daje time‑out mimo działającej usługi. Nie zakładaj, że brak odpowiedzi = host nieżyje.
  • DNS: Użyj -n, aby wykluczyć opóźnienia z odwrotnego DNS (przydatne w skryptach/monitoringu).
  • Różnice systemowe: Na Windows ping -t oznacza „bez końca”, podczas gdy w iputils -t ustawia TTL. Na BSD część opcji ma inne litery.
  • Pomiar: Średnie/odchylenie RTT w podsumowaniu to statystyki z okna próby, nie pełny SLA – do długotrwałego monitoringu użyj narzędzi jak fping, smokeping, Prometheus + blackbox.

Błąd / KomunikatPrzyczynaRozwiązanie
ping: unknown host <nazwa>Błąd DNS lub literówkaSprawdź dig/nslookup, /etc/resolv.conf, wpisz adres IP bezpośrednio.
Destination Host UnreachableBrak trasy do hosta, problem z ARP/routingiemSprawdź bramę domyślną (ip route), konfigurację VLAN, ARP (ip neigh), trasy statyczne.
From <router> icmp_seq=N Time to live exceededZa mały TTLUsuń -t lub ustaw większy TTL.
Request timeout for icmp_seq N / brak odpowiedziHost/ICMP blokowany przez firewallZweryfikuj reguły zapory (lokalne i pośrednie), spróbuj -n, testuj inny host.
connect: Network is unreachableBrak trasy dla stosu IPv4/IPv6Włącz odpowiedni protokół, dodaj trasę lub użyj -4/-6.
ping: socket: Operation not permittedBrak uprawnień do wysyłania ICMPUruchom z odpowiednimi capabilities/SUID lub sudo (na starszych systemach).