Polecenie ping sprawdza, czy komputer widzi inne urządzenie w sieci i jak szybko wraca odpowiedź. Wpisujesz je w wierszu polecenia Windows albo w terminalu Linux i macOS, podajesz adres lub domenę, a wynik pokazuje czas w milisekundach, TTL oraz procent utraty pakietów.
Co to jest polecenie ping i do czego służy
Ping to najprostsze narzędzie diagnostyczne w sieci. Wysyła krótki pakiet do wskazanego celu i mierzy, czy oraz jak szybko przyszła odpowiedź. Jeśli cel odpowiada, wiesz dwie rzeczy naraz: połączenie działa, a opóźnienie jest takie a takie.
Konkret: ping korzysta z protokołu ICMP. Twój komputer wysyła pakiet ICMP Echo Request, a urządzenie docelowe odsyła ICMP Echo Reply. To właśnie ICMP jest odpowiedzią na częste pytanie, który protokół wykorzystuje polecenie ping - nie TCP i nie UDP, tylko osobny protokół kontrolny warstwy sieciowej.
Nazwa nie jest przypadkowa. Autor pierwszej implementacji, Mike Muuss, napisał ping w grudniu 1983 roku pod system Unix (4.2aBSD) i nazwał go od dźwięku sonaru - okręt wysyła sygnał i czeka na echo. Dokładnie tak działa to polecenie. Popularne rozwinięcie skrótu to Packet Internet Groper, ale to dorobiony backronim, nie źródło nazwy.
Do czego służy ping w praktyce administratora:
- sprawdzenie, czy zdalny host albo serwer do konkretnego adresu,
- wykrycie utraty pakietów, czyli niestabilnego łącza,
- szybki test, czy problem leży po Twojej stronie, czy dalej w sieci,
- weryfikacja, czy DNS.
- Naciśnij Enter i poczekaj kilka sekund na wynik.
ping google.com
ping 8.8.8.8
W Windowsie ping domyślnie wysyła cztery pakiety i kończy pracę. Adres 8.8.8.8 to publiczny serwer DNS Google - wygodny cel testowy, bo prawie zawsze odpowiada, więc dobrze nadaje się do sprawdzenia samego łącza.
Pro tip admina: jeśli chcesz oddzielić problem z siecią od problemu z nazwami, pinguj najpierw adres IP, a potem domenę. Gdy IP odpowiada, a domena nie - winne jest rozwiązywanie nazw, nie łącze.
Jak użyć polecenia ping w Linux i macOS
W Linuksie i macOS otwierasz terminal i wpisujesz tę samą komendę:
ping google.com
Jest jedna istotna różnica w zachowaniu. Windows wysyła cztery pakiety i kończy, a klasyczny ping z pakietu iputils na Linuksie oraz ping w macOS wysyłają pakiety w pętli, bez końca. Zatrzymasz je kombinacją Ctrl + C, która na koniec pokaże podsumowanie testu.
Żeby ograniczyć liczbę pakietów w systemach uniksowych, użyj przełącznika -c:
ping -c 5 google.com
To wyśle dokładnie pięć pakietów i samo się zatrzyma - wygodne, gdy chcesz jeden czysty wynik do skopiowania.
Jak czytać wynik polecenia ping
Tu zaczyna się właściwa diagnostyka. Typowy wynik w Windowsie wygląda tak:
Odpowiedź z 145.97.39.155: bajtów=32 czas=35ms TTL=49
Odpowiedź z 145.97.39.155: bajtów=32 czas=31ms TTL=49
Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 <0% straty>
Minimum = 31 ms, Maksimum = 35 ms, Czas średni = 33 ms
Na Linuksie ten sam sens ma inną składnię:
64 bytes from 145.97.39.155: icmp_seq=1 ttl=49 time=35.0 ms
5 packets transmitted, 5 received, 0% packet loss
Trzy liczby, które faktycznie coś mówią:
- Czas (ms) to opóźnienie w milisekundach, czyli ile trwała podróż pakietu tam i z powrotem. Niżej znaczy lepiej. W sieci lokalnej zobaczysz zwykle poniżej 1-2 ms, do polskich serwerów kilka do kilkunastu ms, do serwerów zamorskich sto i więcej. Skoki i duży rozrzut między pakietami to sygnał niestabilnego łącza.
- TTL to Time To Live, licznik, który maleje o jeden na każdym routerze po drodze. Sam w sobie nie jest miarą jakości, ale pozwala z grubsza ocenić, przez ile przeskoków przeszedł pakiet i czy trasa się nie zmieniła.
- Utrata pakietów (packet loss) to najważniejsza liczba. 0% oznacza łącze zdrowe. Kilka procent to już zauważalne przycinanie w rozmowach i grach, a kilkadziesiąt procent to łącze praktycznie nieużywalne, nawet jeśli strona czasem się otworzy.
Sprawdź zawsze podsumowanie na końcu, nie pojedynczą linijkę. Jeden pakiet z wysokim czasem nic nie znaczy, ale średnia i procent strat z całej serii - owszem.
Najważniejsze parametry polecenia ping
Domyślny ping wystarcza w 90% przypadków, ale kilka przełączników realnie się przydaje. Poniżej te, których używam najczęściej.
Windows:
ping -t cel- ciągły ping aż do przerwania przez Ctrl + C. Idealny, gdy łapiesz łącze, które zrywa co jakiś czas.ping -n 10 cel- wysyła dokładnie 10 pakietów zamiast domyślnych czterech.ping -l 1000 cel- ustawia rozmiar pakietu w bajtach, przydatne przy diagnozie fragmentacji i MTU.ping -a cel- próbuje rozwiązać nazwę hosta z adresu IP.ping -4 cellubping -6 cel- wymusza IPv4 albo IPv6.
Linux i macOS:
ping -c 5 cel- liczba pakietów do wysłania.ping -i 2 cel- odstęp między pakietami w sekundach.ping -s 1000 cel- rozmiar pakietu w bajtach.
Trade-off: ciągły ping, czyli -t w Windows i tryb domyślny na Linuksie, daje najlepszy obraz stabilności łącza w czasie, ale trzeba pamiętać, żeby go zatrzymać. Zostawiony na godziny nie zaszkodzi, ale zaśmieci terminal tysiącami linii.
Typowe zastosowania i błędy w wyniku ping
Ping to zwykle pierwsza komenda, po którą sięgam, gdy coś w sieci nie działa. Najczęstsze komunikaty i ich znaczenie:
- Upłynął limit czasu żądania / Request timed out - pakiet wyszedł, ale nie wróciła odpowiedź. Cel jest wyłączony, niedostępny albo po drodze coś blokuje ruch.
- Nie można znaleźć hosta / Name or service not known - problem nie z łączem, tylko z nazwą. DNS nie zamienił domeny na adres IP. Sprawdź pisownię i działanie DNS.
- Host docelowy jest nieosiągalny / Destination host unreachable - Twój komputer nie zna trasy do celu. Zwykle wina po stronie routingu albo bramy domyślnej.
- Wysokie czasy i utrata pakietów naraz - łącze żyje, ale jest przeciążone lub słabej jakości. Typowe dla przeciążonego Wi-Fi.
Ważna pułapka: brak odpowiedzi nie zawsze oznacza, że host nie działa. Wiele serwerów celowo blokuje pakiety ICMP na zaporze sieciowej, bo ping mówi tylko o warstwie sieci, nie o tym, czy aplikacja nasłuchuje.
Ping a pokrewne narzędzia
Ping odpowiada na pytanie "czy dojdę i jak szybko", ale nie pokazuje, którędy. Gdy odpowiedź jest wolna albo w ogóle nie wraca, następnym krokiem jest traceroute, który wypisuje kolejne routery na trasie i czas do każdego z nich. W Windowsie to polecenie tracert, w Linuksie i macOS traceroute. Ping mówi, że jest problem, traceroute pokazuje, na którym odcinku trasy on się pojawia. Tę parę stosuje się razem tak często, że większość poradników hostingowych opisuje je w jednym miejscu.
FAQ
Który protokół jest wykorzystywany przez polecenie ping?
Ping korzysta z protokołu ICMP (Internet Control Message Protocol). Wysyła komunikat ICMP Echo Request do celu i czeka na ICMP Echo Reply. To nie jest ani TCP, ani UDP - ICMP to osobny protokół kontrolny w rodzinie TCP/IP, służący do sygnalizacji i diagnostyki, a nie do przesyłania danych aplikacji.
Do czego służy polecenie ping?
Polecenie ping sprawdza dostępność i opóźnienie połączenia między Twoim komputerem a innym urządzeniem w sieci - serwerem, routerem czy stroną. Pokazuje czas odpowiedzi w milisekundach oraz procent utraconych pakietów. Dzięki temu w kilka sekund ocenisz, czy łącze do danego celu działa i jak jest stabilne.
Jak uruchomić ciągły ping w cmd?
W Windowsie dodaj przełącznik -t, na przykład ping -t 8.8.8.8. Pakiety będą wysyłane bez końca, aż zatrzymasz je kombinacją Ctrl + C. Na Linuksie i macOS ping domyślnie działa w pętli, więc wystarczy ping 8.8.8.8, a przerwiesz go tak samo, przez Ctrl + C.
Co oznacza komunikat "Upłynął limit czasu żądania"?
Oznacza, że pakiet wyszedł z Twojego komputera, ale w wyznaczonym czasie nie wróciła odpowiedź. Powodów jest kilka: cel jest wyłączony, niedostępny w sieci, albo po drodze zapora blokuje ruch ICMP. Sam ten komunikat nie przesądza, że serwer nie działa - potwierdza tylko brak odpowiedzi na ping.
Dlaczego serwer nie odpowiada na ping, choć strona działa?
Bo wiele serwerów celowo blokuje pakiety ICMP na zaporze sieciowej, żeby utrudnić skanowanie i ataki. Strona działa, bo odpowiada na ruch HTTP na porcie 443, ale na ping po prostu milczy. To normalne i zamierzone. Żeby sprawdzić działanie samej usługi, testuj konkretny port, a nie ping.
Ile powinien wynosić dobry ping?
To zależy od celu. W sieci lokalnej dobry wynik to poniżej 1-2 ms. Do serwerów w Polsce zwykle kilka do kilkunastu ms, do serwerów na innych kontynentach sto i więcej ms - i to jest normalne. Ważniejsza od samej wartości jest stabilność: niski rozrzut czasów i 0% utraty pakietów znaczą więcej niż pojedyncza niska liczba.