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.
<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
.
Parametr Opis -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 <if addr>` Wybór interfejsu lub adresu źródłowego. -4
/ -6
Wymusza IPv4 / IPv6. -n
Tylko adresy numeryczne (bez odwrotnego DNS). -q
Tryb cichy (wyświetl statystyki podsumowujące). -v
Więcej informacji diagnostycznych. -D
Znacznik czasu przy każdym wierszu odpowiedzi. `-M <do dont want>` Steruje PMTUD (IPv4): do
– ustaw DF, dont
– wyłącz, want
– preferuj. -Q <TOS/DSCP>
Ustawia pole TOS/DSCP (IPv4) lub Traffic Class (IPv6). -a
Sygnał dźwiękowy przy odpowiedzi (jeśli terminal wspiera). -A
Adaptive 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.
# 1) Sprawdź łączność do hosta – wyślij 4 pakiety
# Efekt: 4 odpowiedzi lub informacja o stracie, średnie RTT w podsumowaniu.
# 2) Szybki test z krótkim timeoutem na pakiet (2 s)
# Efekt: szybka odpowiedź lub błąd timeout bez długiego czekania.
# 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).
# 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.
# 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.
# 6) Diagnostyka pierwszego hopa (TTL=1)
# 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 / Komunikat Przyczyna Rozwiązanie ping: unknown host <nazwa>
Błąd DNS lub literówka Sprawdź dig/nslookup
, /etc/resolv.conf
, wpisz adres IP bezpośrednio. Destination Host Unreachable
Brak trasy do hosta, problem z ARP/routingiem Sprawdź bramę domyślną (ip route
), konfigurację VLAN, ARP (ip neigh
), trasy statyczne. From <router> icmp_seq=N Time to live exceeded
Za mały TTL Usuń -t
lub ustaw większy TTL. Request timeout for icmp_seq N
/ brak odpowiedziHost/ICMP blokowany przez firewall Zweryfikuj reguły zapory (lokalne i pośrednie), spróbuj -n
, testuj inny host. connect: Network is unreachable
Brak trasy dla stosu IPv4/IPv6 Włącz odpowiedni protokół, dodaj trasę lub użyj -4/-6
. ping: socket: Operation not permitted
Brak uprawnień do wysyłania ICMP Uruchom z odpowiednimi capabilities/SUID lub sudo
(na starszych systemach).