ss — Socket-Statistiken und Netzwerkverbindungen inspizieren

Praxis-Guide zu ss — Socket-Statistiken, lauschende Ports, Protokoll-Filter und TCP-Zustände aus dem Kernel abfragen, mit Beispielen für den Serveralltag.

ss ist der schnelle, moderne Ersatz für netstat auf Linux: Statt durch Proc-Dateisysteme zu iterieren, liest es Socket-Statistiken direkt aus dem Kernel-Netlink-Interface – und liefert dir aktive Verbindungen, lauschende Ports und TCP-Zustände in Millisekunden. Dieser Guide zeigt dir, wie du mit einem Befehl prüfst, was auf deinem System lauscht, welcher Prozess dahintersteckt und welche Verbindungszustände gerade aktiv sind.

Grundlegende Verwendung

ss — Zeigt alle aktiven Verbindungen an.

ss

ss -l — Zeigt nur lauschende Sockets.

ss -l

ss -a — Zeigt alle Sockets (lauschend und verbunden).

ss -a

ss -s — Zeigt eine Zusammenfassung der Socket-Statistiken (TCP-, UDP- und RAW-Anzahl).

ss -s

Protokoll-Filter

ss -t — Zeigt nur TCP-Verbindungen.

ss -t

ss -u — Zeigt nur UDP-Sockets.

ss -u

ss -w — Zeigt nur RAW-Sockets.

ss -w

ss -x — Zeigt nur Unix-Domain-Sockets.

ss -x

ss -4 — Zeigt nur IPv4-Sockets.

ss -4

ss -6 — Zeigt nur IPv6-Sockets.

ss -6

ss -tl — Zeigt lauschende TCP-Sockets.

ss -tl

ss -ul — Zeigt lauschende UDP-Sockets.

ss -ul

ss -tua — Zeigt alle TCP- und UDP-Sockets.

ss -tua

Ausgabe-Optionen

ss -n — Numerische Ausgabe – löst weder Dienstnamen noch Hostnamen auf.

ss -n

ss -p — Zeigt den Prozess, der den Socket nutzt (erfordert root für fremde Prozesse).

sudo ss -p

ss -e — Zeigt erweiterte Socket-Informationen (UID, Inode, Cookie).

ss -e

ss -m — Zeigt den Speicherbedarf der Sockets.

ss -m

ss -ti — Zeigt interne TCP-Informationen (Staukontrolle, RTT, Fenstergrößen).

ss -ti

ss -to — Zeigt Timer-Informationen (Keepalive, Retransmit-Timer).

ss -to

ss -Z — Zeigt den SELinux-Sicherheitskontext.

ss -Z

Häufige Kombinationen

ss -tlnp — Zeigt lauschende TCP-Ports mit Portnummern und Prozessinfos. Die häufigste Kombination.

sudo ss -tlnp

ss -tulnp — Zeigt alle lauschenden TCP- und UDP-Ports mit zugehörigen Prozessen.

sudo ss -tulnp

ss -tanp — Zeigt alle TCP-Verbindungen mit Portnummern und Prozessen.

sudo ss -tanp

ss -ti — Zeigt TCP-Verbindungen mit internen Infos (Congestion-Window, RTT, MSS).

ss -ti

ss -tlnpe — Zeigt lauschende TCP-Ports mit Prozess, numerischer Ausgabe und erweiterten Infos.

sudo ss -tlnpe

Filter nach Port

ss -tln sport = :PORT — Zeigt Sockets, die auf einem bestimmten Port lauschen.

ss -tln sport = :80

ss -tn dport = :PORT — Zeigt Verbindungen zu einem bestimmten Ziel-Port.

ss -tn dport = :443

ss -tln sport = :PORT1 or sport = :PORT2 — Filtert nach mehreren Ports mit ODER-Verknüpfung.

ss -tln 'sport = :80 or sport = :443'

ss -tn sport gt :1024 — Zeigt Verbindungen mit Source-Port größer 1024.

ss -tn 'sport gt :1024'

ss -tn sport lt :1024 — Zeigt Verbindungen mit privilegierten Source-Ports (< 1024).

ss -tn 'sport lt :1024'

Filter nach Adresse

ss -tn dst ADDRESS — Zeigt Verbindungen zu einer bestimmten Zieladresse.

ss -tn dst 8.8.8.8

ss -tn src ADDRESS — Zeigt Verbindungen von einer bestimmten Quelladresse.

ss -tn src 192.168.1.100

ss -tn dst NETWORK/CIDR — Zeigt Verbindungen zu einem bestimmten Netzwerk.

ss -tn dst 10.0.0.0/8

Filter nach Zustand

ss -t state established — Zeigt nur aktive TCP-Verbindungen (ESTABLISHED).

ss -t state established

ss -t state listening — Zeigt nur lauschende TCP-Sockets.

ss -t state listening

ss -t state time-wait — Zeigt nur TIME-WAIT-Verbindungen.

ss -t state time-wait

ss -t state close-wait — Zeigt nur CLOSE-WAIT-Verbindungen (kann auf Applikationsprobleme hinweisen).

ss -t state close-wait

ss -t state fin-wait-1 — Zeigt Verbindungen im FIN-WAIT-1-Zustand.

ss -t state fin-wait-1

ss -t state syn-sent — Zeigt Verbindungen im SYN-SENT-Zustand (ausgehende Verbindungsversuche).

ss -t state syn-sent

ss -t state syn-recv — Zeigt Verbindungen im SYN-RECV-Zustand (eingehende Verbindungsversuche).

ss -t state syn-recv

ss -t state connected — Zeigt alle verbundenen (nicht lauschenden) Sockets.

ss -t state connected

Praxisbeispiele

ss -tlnp | grep :80 — Prüft, welcher Prozess auf Port 80 lauscht.

sudo ss -tlnp | grep :80

ss -tn state established | wc -l — Zählt die Anzahl aktiver TCP-Verbindungen.

ss -tn state established | wc -l

ss -tn state established dst :443 | wc -l — Zählt aktive HTTPS-Verbindungen.

ss -tn state established dst :443 | wc -l

ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head — Zeigt die 10 Remote-IPs mit den meisten Verbindungen.

ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head

ss -t state time-wait | wc -l — Zählt TIME-WAIT-Verbindungen (hohe Zahlen können auf häufigen Verbindungsauf- und -abbau hinweisen).

ss -t state time-wait | wc -l

watch -n 1 'ss -s' — Überwacht die Socket-Statistiken kontinuierlich.

watch -n 1 'ss -s'

ss -tnp | grep ssh — Findet alle SSH-Verbindungen.

ss -tnp | grep ssh

ss -lnp | grep -E ':(80|443|8080|8443) ' — Prüft alle gängigen Webserver-Ports.

sudo ss -lnp | grep -E ':(80|443|8080|8443) '

Fazit

ss hat netstat auf modernen Linux-Systemen endgültig abgelöst – mit direktem Kernel-Zugriff, präzisen Filter-Ausdrücken und deutlich kürzeren Antwortzeiten. Für den Alltag reicht meist sudo ss -tlnp, um zu sehen, was wo lauscht; für Diagnosen gibt dir -i tiefen Einblick in TCP-Internals, den netstat nie bieten konnte.

Verwandte Kommandos

  • netstat – Vorgänger von ss, auf vielen Systemen noch vorinstalliert
  • ip – Netzwerkinterfaces, Routen und Adressen verwalten
  • iftop – Netzwerk-Bandbreite nach Verbindung anzeigen