Porty i usługi sieciowe
Poznasz rolę portów, podstawową różnicę między TCP i UDP oraz komendy do sprawdzania, które usługi nasłuchują w systemie.
Wróć do listy lekcji1. Krótka teoria
Adres IP wskazuje hosta, a port wskazuje konkretną usługę na tym hoście. Dzięki temu jeden serwer może jednocześnie obsługiwać SSH, DNS i stronę WWW. Port 22 jest typowo używany przez SSH, 53 przez DNS, 80 przez HTTP, a 443 przez HTTPS. TCP to protokół połączeniowy, który sprawdza dostarczenie danych i jest używany między innymi przez SSH oraz HTTPS. UDP jest prostszy i bezpołączeniowy, często używany tam, gdzie liczy się szybkość lub krótkie zapytania, na przykład w DNS. Port nasłuchujący oznacza, że proces czeka na połączenia lub datagramy. Nie oznacza jednak automatycznie, że cała aplikacja działa poprawnie. Komenda ss pokazuje gniazda sieciowe, lsof pomaga powiązać port z procesem, a nc pozwala wykonać prosty test połączenia. W praktyce diagnozę zaczyna się od pytania: czy usługa działa, czy nasłuchuje na właściwym adresie i porcie, czy firewall nie blokuje ruchu oraz czy aplikacja odpowiada zgodnie z oczekiwaniem.
2. Przykłady komend
ss -tuln
Pokazuje nasłuchujące porty TCP i UDP w formie numerycznej.
$ ss -tuln
ss -tulpn
Pokazuje porty wraz z procesami, jeśli użytkownik ma odpowiednie uprawnienia.
$ sudo ss -tulpn
ss -tn
Pokazuje aktywne połączenia TCP.
$ ss -tn
sudo lsof -iTCP -sTCP:LISTEN -P -n
Wyświetla procesy nasłuchujące na portach TCP bez zamiany numerów na nazwy.
$ sudo lsof -iTCP -sTCP:LISTEN -P -n
nc -vz example.com 443
Sprawdza, czy można nawiązać połączenie TCP z portem 443.
$ nc -vz example.com 443
nc -vzu 1.1.1.1 53
Wykonuje podstawowy test UDP portu 53, którego wynik wymaga ostrożnej interpretacji.
$ nc -vzu 1.1.1.1 53
3. Zadanie praktyczne
ss -tuln i odszukaj lokalne porty nasłuchujące. Jeśli masz uprawnienia, uruchom sudo ss -tulpn oraz sudo lsof -iTCP -sTCP:LISTEN -P -n, aby powiązać porty z procesami. Następnie sprawdź zdalny port HTTPS przez nc -vz example.com 443. Zapisz, czym różni się port nasłuchujący lokalnie od testu połączenia do portu na zdalnym serwerze.
4. Typowe błędy
- Mylenie adresu IP z portem usługi.
- Zakładanie, że otwarty port oznacza poprawną odpowiedź aplikacji.
- Pomijanie różnicy między TCP i UDP podczas diagnozy.
- Używanie ss bez opcji -n i mylenie nazw usług z numerami portów.
- Sprawdzanie tylko firewalla bez potwierdzenia, że proces naprawdę nasłuchuje.
- Nadmierne zaufanie do testów UDP, które nie zawsze dają jednoznaczną odpowiedź.
5. Podsumowanie
Port wskazuje usługę na hoście. SSH zwykle używa portu 22, DNS 53, HTTP 80, a HTTPS 443. TCP jest połączeniowy, UDP bezpołączeniowy. ss, lsof i nc pomagają sprawdzić nasłuchiwanie, procesy i podstawową dostępność portów.