Polecenie ping jest jednym z najczęściej wykorzystywanych narzędzi w diagnostyce sieciowej.
W tym artykule przyjrzymy się bliżej temu, czym dokładnie jest ping, jak go używać, przedstawimy dostępne online narzędzia do pingowania oraz przeanalizujemy kilka praktycznych zastosowań.
Zacznijmy od wyjaśnienia, czym jest ping. To fundamentalne narzędzie dostępne w terminalu lub wierszu poleceń, które umożliwia weryfikację, czy dany komputer ma dostęp do internetu oraz czy potrafi komunikować się z innymi komputerami lub urządzeniami w sieci.
Polecenie ping oferuje szereg przydatnych funkcji:
- Testowanie połączenia sieciowego: zarówno w sieci lokalnej, jak i w internecie.
- Diagnostyka problemów z kartą sieciową.
- Weryfikacja problemów z rozpoznawaniem nazw DNS.
Ping jest standardowo wbudowany w popularne systemy operacyjne, takie jak Windows, macOS i Linux. Mimo to, omówimy też proces jego instalacji.
Można spotkać się z określeniem „ping” w potocznej mowie. Na przykład, „dam ci ping, jak skończę pracę”. W tym kontekście ping oznacza po prostu wiadomość wysłaną z jednego urządzenia na drugie.
Sposób użycia ping
Aby sprawdzić, czy ping jest dostępny w systemie, otwórz terminal (macOS, Linux) lub wiersz poleceń (Windows) i wpisz komendę „ping –help”. Zwykle powinien wyświetlić się zbiór dostępnych opcji polecenia.
Jeśli pojawia się pomoc z listą flag, oznacza to, że ping jest gotowy do użycia. W niektórych dystrybucjach Linuksa, jak np. Ubuntu, ping może nie być zainstalowany domyślnie. W takim przypadku, można go zainstalować za pomocą polecenia:
sudo apt install iputils-ping
Inną metodą weryfikacji obecności pinga w systemie jest użycie polecenia `which`, które zwraca ścieżkę do pliku binarnego:
which ping # /usr/bin/ping # przykładowy wynik
Skoro wiemy już, jak sprawdzić dostępność pinga, przejdźmy do jego podstawowych funkcji.
Polecenie ping służy do nawiązywania połączenia z dowolnym hostem, zarówno w sieci lokalnej, jak i w internecie. Hostem może być komputer, serwer, router lub drukarka.
Ping przyjmuje jeden argument, którym jest adres internetowy lub adres IP hosta, z którym chcemy się połączyć. Przykładowo, spróbujemy połączyć się z domeną przykladowa-strona.pl.
$ ping przykladowa-strona.pl
Zauważ, że znak „$” oznacza użycie powłoki bash. W przypadku Powershell (Windows), zamiast niego pojawiłby się znak „>”. Należy skopiować tylko polecenie, bez znaku dolara.
Po wykonaniu powyższego polecenia powinniśmy zobaczyć podobny wynik:
PING przykladowa-strona.pl (192.168.1.100) 56(84) bytes of data. 64 bytes from 192.168.1.100 (192.168.1.100): icmp_seq=1 ttl=64 time=20.5 ms 64 bytes from 192.168.1.100 (192.168.1.100): icmp_seq=2 ttl=64 time=22.1 ms
W pierwszej linii widać nazwę domeny oraz jej adres IP w nawiasie. Następnie, ping wysyła pakiety danych (zwykle 64 bajty) do wskazanego hosta. Aby zakończyć działanie polecenia ping, naciśnij Ctrl + C.
Przy stabilnym połączeniu internetowym, po zakończeniu działania pinga, powinien pojawić się komunikat o podobnej treści:
--- przykladowa-strona.pl ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 3000ms
Ten komunikat przedstawia statystyki procesu pingowania. W tym przypadku, ping wysłał 3 pakiety danych i wszystkie zostały odebrane. Oznacza to, że połączenie internetowe i serwer działają poprawnie.
Podobny proces zachodzi, gdy odwiedzamy stronę internetową. Przeglądarka wysyła pakiety z żądaniem, DNS tłumaczy nazwę domeny na adres IP, a serwer przesyła zawartość strony. Oczywiście, upraszczamy ten proces, aby przedstawić prostą interakcję w sieci.
Jako zaawansowany użytkownik, możesz skorzystać z manuala (man page) polecenia ping, wywołując go flagą `man` lub `–help`, aby poznać listę wszystkich dostępnych opcji:
man ping # Strona manuala ping --help # Pomoc polecenia
IPv6 a IPv4
Ze względu na wyczerpywanie się adresów IPv4, stopniowo wdrażany jest protokół IPv6 (Internet Protocol version 6).
IPv4 jest podstawowym protokołem, który wykorzystuje 32-bitowe adresy IP, przedstawiane w formacie liczbowo-kropkowym. Na przykład, publiczny adres Google to 8.8.8.8. IPv4 jest stosowany od 1981 roku i jest to standardowy protokół, do którego przywykliśmy.
Natomiast IPv6 to nowszy protokół, który rozwiązuje problem wyczerpywania się adresów. W porównaniu do IPv4, który oferuje około 4,3 miliarda kombinacji, IPv6 umożliwia uzyskanie około 340 trylionów trylionów trylionów adresów IP.
Przykładowy adres IPv6 wygląda tak: 2001:db8:3333:4444:5555:6666:7777:8888.
W najbliższych latach przejście na IPv6 stanie się koniecznością, ponieważ każde nowe urządzenie IoT i nowa strona internetowa będą potrzebowały unikatowego adresu.
Polecenie ping obsługuje już adresy IPv6, a w niektórych dystrybucjach Linuksa dostępna jest oddzielna komenda, ping6, dedykowana obsłudze IPv6.
Jednak najprostszym sposobem na pingowanie adresu IPv6 jest użycie flagi -6.
Oto przykład:
ping -6 2001:db8:3333:4444:5555:6666:7777:8888
Jeśli Twoja sieć nie obsługuje jeszcze protokołu IPv6, nie przejmuj się. Adaptacja IPv6 postępuje szybko w ostatnich latach.
Wzrost popularności IPv6
Możesz skorzystać z narzędzia do testowania IPv6, aby sprawdzić, czy Twoja strona internetowa go obsługuje.
Narzędzia do pingowania online
Polecenie ping pozwala nie tylko sprawdzić, czy można nawiązać połączenie z serwerem, ale także zmierzyć opóźnienie (czas odpowiedzi) serwera na ping. Narzędzia do pingowania online pozwalają na zebranie znacznie szerszych danych, w tym:
Jeśli masz problemy z łącznością lub chcesz przetestować opóźnienie serwera z różnych lokalizacji na świecie, internetowe narzędzie ping będzie najlepszym wyborem.
Warto przetestować darmowe narzędzia do pingowania online, które umożliwiają wysyłanie pingów z różnych lokalizacji, np. z Londynu, Bombaju czy Oregonu. Dzięki nim uzyskasz dane o utracie pakietów, a także o maksymalnym i minimalnym czasie odpowiedzi serwera.
Przykłady użycia polecenia
Przyjrzyjmy się najczęściej spotykanym przykładom użycia tego narzędzia sieciowego.
#1. Weryfikacja połączenia z internetem
Wydaje się to oczywiste, ale można sprawdzić dostęp do internetu, pingując stały host, np. google.com.
ping google.com
Brak odpowiedzi może świadczyć o problemach z połączeniem internetowym.
#2. Określenie liczby wysłanych pingów
W systemach uniksowych ping domyślnie wysyła pakiety w nieskończoność. Za pomocą flagi `-c` (liczba) można określić, ile pingów ma zostać wysłanych. Na przykład, aby wysłać tylko trzy pakiety:
ping -c 3 przykladowa-strona.pl
W systemie Windows ping domyślnie wysyła 4 pakiety.
Można również wykorzystać tą flagę, aby wysłać jedno żądanie i wyświetlić adres IP, z którym próbujesz się połączyć.
ping -c 1 google.com
#3. Pingowanie serwera w określonym interwale czasu
Możliwe jest ustawienie odstępu czasowego (w sekundach) między kolejnymi wysłanymi pakietami. Domyślny interwał wynosi 1 sekundę, ale można go zmienić flagą `-i`.
ping -i 3 przykladowa-strona.pl
#4. Pingowanie hosta lokalnego
Możesz pingować dowolny adres IPv4, w tym localhost (adres 127.0.0.1).
ping localhost # działa poprawnie ping 127.0.0.1 # również działa
Pingowanie hosta lokalnego nie odbywa się przez interfejs fizyczny, tylko przez wirtualną pętlę zwrotną.
#5. Pingowanie adresu rozgłoszeniowego
Flaga `-b` umożliwia wysyłanie żądań na adres rozgłoszeniowy. Na przykład, poniższe polecenie umożliwia pingowanie wszystkich urządzeń w sieci lokalnej.
ping -b 255.255.255.255
#6. Wysyłanie pakietów o określonym rozmiarze
Można zmieniać rozmiar pakietu pinga za pomocą flagi `-s`, podając liczbę bajtów do wysłania.
ping -s 70 google.com
Wysyłanie zbyt dużych pakietów może powodować problemy.
#7. „Flood ping”
Flaga `-f` pozwala na wysyłanie pingów z maksymalną prędkością, na jaką pozwala komputer i sieć. Ponieważ minimalny interwał pingowania dla użytkownika wynosi 200 ms, trzeba uruchomić pinga z uprawnieniami administratora za pomocą `sudo`.
ping -f google.com PING google.com (142.250.78.142) 56(84) bytes of data. ping: cannot flood; minimal interval allowed for user is 200ms sudo ping -f -c 1000 google.com # Zatrzymanie po 1000 pingach --- google.com ping statistics --- 1000 packets transmitted, 1000 received, 0% packet loss, time 11158ms
Jak widać, użyto flagi `-c`, aby zatrzymać ping po wysłaniu 1000 pakietów (co zajęło tylko 11 sekund).
Uwaga: Należy zachować ostrożność przy używaniu „flood ping”, ponieważ może spowodować atak DoS (odmowa usługi) na serwer. Tego trybu należy używać tylko do testowania serwerów w środowiskach o wysokim obciążeniu.
Interfejs API ping IP lub domeny
Interfejs API ping pozwala na monitorowanie wydajności dowolnego adresu IP lub domeny z wielu lokalizacji.
Może to być bardzo przydatne narzędzie do monitorowania serwerów i zapewnienia optymalnego działania dla użytkowników końcowych.
Można skorzystać z darmowej warstwy API, która oferuje 3000 wywołań API miesięcznie.
Dla bardziej zaawansowanych użytkowników dostępne są plany premium, które oferują większą liczbę wywołań API, serwery proxy i wyższy limit żądań, zaczynając od 5 USD miesięcznie.
Podsumowanie
Ping jest narzędziem tak starym jak sam internet. Pozwala on na weryfikację połączenia internetowego oraz umożliwia sprawdzenie, czy dany komputer jest w stanie połączyć się z serwerami lub innymi urządzeniami w sieci.
Zachęcamy do wypróbowania narzędzia do testowania ping, wraz z pozostałymi narzędziami, aby przetestować swoją stronę internetową.