ss

Wyświetla gniazda sieciowe, połączenia i nasłuchujące porty (szybszy następca netstat).

ss (skrót od socket statistics) to narzędzie do podglądania gniazd sieciowych w Linuksie: pokazuje otwarte połączenia TCP i UDP, porty, które nasłuchują, oraz to, kto na nich siedzi. Zastąpiło wysłużony netstat i robi to samo, tylko szybciej i dokładniej, bo czyta dane bezpośrednio z jądra. Kiedy chcesz sprawdzić, dlaczego port 8080 jest zajęty albo która usługa nasłuchuje na zewnątrz — ss jest pierwszym poleceniem, po które sięgasz.

Składnia i najważniejsze opcje

Podstawowa składnia: ss [opcje] [filtr]

  • -t — pokazuje gniazda TCP.
  • -u — pokazuje gniazda UDP.
  • -l — tylko gniazda nasłuchujące (domyślnie są pomijane).
  • -a — wszystkie gniazda: nasłuchujące i te z aktywnym połączeniem.
  • -n — nie tłumaczy numerów portów na nazwy usług (szybciej i czytelniej: :443 zamiast :https).
  • -p — pokazuje proces (PID i nazwę) trzymający gniazdo; zwykle wymaga sudo.
  • -s — zwięzłe podsumowanie statystyk (ile gniazd TCP, UDP itd.).
  • -4 / -6 — ogranicza wynik do IPv4 lub IPv6.

Przykłady użycia

  • ss -tulpn — klasyk na start: wszystkie porty TCP i UDP, które nasłuchują, z nazwami procesów i bez rozwijania nazw. To polecenie zapamiętaj na pamięć.
  • ss -t -a — wszystkie połączenia TCP, także te w stanie ESTABLISHED i TIME-WAIT.
  • sudo ss -tlnp — same nasłuchujące porty TCP z procesami; idealne, gdy szukasz, co blokuje port.
  • ss -t 'dport = :443' — filtruje połączenia TCP wychodzące na port 443 (HTTPS).
  • ss -tn state established '( dport = :22 or sport = :22 )' — aktywne sesje SSH, bez zbędnego szumu.

Częste błędy i pułapki

Najczęstsza wpadka: uruchamiasz ss -tlnp bez sudo i w kolumnie procesu widzisz pustkę zamiast PID-u. Jądro nie pokaże ci cudzych procesów bez uprawnień — dopisz sudo.

Druga pułapka to samo ss bez flag: domyślnie nie pokazuje gniazd nasłuchujących, więc jak szukasz otwartego portu, a widzisz tylko aktywne połączenia — dodaj -l albo -a. Pamiętaj też, że -a potrafi wypluć ścianę tekstu, więc łącz go z -t lub -u, żeby zawęzić.

I klasyk: mylenie -l (listening) z -a (all). To nie to samo — -l to wyłącznie nasłuch, -a to nasłuch plus reszta.

Powiązane komendy: netstat, lsof, ip, nmap, netcat (nc).