Sieć i diagnostyka: ping, curl, ss i podstawy DNS
Poznasz podstawowe komendy do sprawdzania łączności sieciowej, testowania odpowiedzi serwera, oglądania nasłuchujących portów oraz rozumienia podstaw działania DNS.
Wróć do listy lekcji1. Krótka teoria
Podczas pracy z Linuxem bardzo często trzeba sprawdzić, czy serwer ma połączenie z siecią, czy dana domena odpowiada, czy usługa HTTP działa oraz czy aplikacja nasłuchuje na właściwym porcie. Do podstawowej diagnostyki sieci przydają się proste narzędzia terminalowe. Komenda ping pozwala sprawdzić, czy host odpowiada w sieci. curl umożliwia wysyłanie żądań HTTP i sprawdzanie odpowiedzi stron lub API. Komenda ss pokazuje aktywne połączenia sieciowe oraz porty, na których nasłuchują usługi. DNS tłumaczy nazwy domenowe, takie jak example.com, na adresy IP zrozumiałe dla komputerów. Zrozumienie tych podstaw pomaga później diagnozować problemy z Nginx, SSH, aplikacjami webowymi, domenami i certyfikatami HTTPS.
2. Przykłady komend
ping -c 4 1.1.1.1
Wysyła 4 pakiety testowe do adresu IP i sprawdza, czy host odpowiada.
$ ping -c 4 1.1.1.1
64 bytes from 1.1.1.1: icmp_seq=1 ttl=57 time=12.3 ms
ping -c 4 example.com
Sprawdza łączność z domeną i przy okazji pokazuje, czy nazwa została rozwiązana na adres IP.
$ ping -c 4 example.com
PING example.com (93.184.216.34)
curl https://example.com
Pobiera odpowiedź HTTP z podanego adresu.
$ curl https://example.com
curl -I https://example.com
Pobiera same nagłówki odpowiedzi HTTP, bez treści strony.
$ curl -I https://example.com
HTTP/2 200
curl -L https://example.com
Podąża za przekierowaniami HTTP, jeśli serwer je zwraca.
$ curl -L https://example.com
ss -tuln
Pokazuje porty TCP i UDP, na których system nasłuchuje, bez rozwiązywania nazw.
$ ss -tuln
Netid State Local Address:Port
ss -tn
Pokazuje aktywne połączenia TCP w formie numerycznej.
$ ss -tn
ss -tulpn
Pokazuje nasłuchujące porty razem z procesami, jeśli użytkownik ma odpowiednie uprawnienia.
$ ss -tulpn
getent hosts example.com
Sprawdza, na jaki adres IP system rozwiązuje podaną nazwę domenową.
$ getent hosts example.com
93.184.216.34 example.com
cat /etc/resolv.conf
Pokazuje konfigurację resolvera DNS używaną przez system.
$ cat /etc/resolv.conf
nameserver 1.1.1.1
3. Zadanie praktyczne
ping -c 4 1.1.1.1. Następnie sprawdź domenę przez ping -c 4 example.com i zwróć uwagę, czy domena została zamieniona na adres IP. Użyj curl -I https://example.com, aby zobaczyć nagłówki odpowiedzi HTTP. Potem sprawdź porty nasłuchujące poleceniem ss -tuln. Na końcu użyj getent hosts example.com oraz cat /etc/resolv.conf, żeby zobaczyć podstawowe informacje związane z DNS.
4. Typowe błędy
- Zakładanie, że brak odpowiedzi na ping zawsze oznacza, że serwer nie działa.
- Mylenie problemu z DNS z problemem samego połączenia sieciowego.
- Sprawdzanie domeny tylko przez przeglądarkę, bez użycia narzędzi terminalowych.
- Pomijanie kodów odpowiedzi HTTP zwracanych przez curl.
- Mylenie portu nasłuchującego z aktywnym połączeniem wychodzącym.
- Używanie ss bez opcji numerycznych i błędna interpretacja nazw usług.
- Zakładanie, że otwarty port oznacza poprawne działanie całej aplikacji.
- Ignorowanie pliku /etc/resolv.conf podczas diagnozowania problemów z DNS.
5. Podsumowanie
Podstawowa diagnostyka sieci w Linuxie zaczyna się od kilku prostych narzędzi. ping pomaga sprawdzić, czy host odpowiada w sieci. curl pozwala testować odpowiedzi HTTP i nagłówki serwera. ss pokazuje aktywne połączenia oraz porty, na których nasłuchują usługi. DNS odpowiada za tłumaczenie nazw domenowych na adresy IP, a komendy getent hosts i cat /etc/resolv.conf pomagają zobaczyć, jak system rozwiązuje nazwy domen.