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::443zamiast:https).-p— pokazuje proces (PID i nazwę) trzymający gniazdo; zwykle wymagasudo.-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 stanieESTABLISHEDiTIME-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.