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.
ssss -l — Zeigt nur lauschende Sockets.
ss -lss -a — Zeigt alle Sockets (lauschend und verbunden).
ss -ass -s — Zeigt eine Zusammenfassung der Socket-Statistiken (TCP-, UDP- und RAW-Anzahl).
ss -sProtokoll-Filter
ss -t — Zeigt nur TCP-Verbindungen.
ss -tss -u — Zeigt nur UDP-Sockets.
ss -uss -w — Zeigt nur RAW-Sockets.
ss -wss -x — Zeigt nur Unix-Domain-Sockets.
ss -xss -4 — Zeigt nur IPv4-Sockets.
ss -4ss -6 — Zeigt nur IPv6-Sockets.
ss -6ss -tl — Zeigt lauschende TCP-Sockets.
ss -tlss -ul — Zeigt lauschende UDP-Sockets.
ss -ulss -tua — Zeigt alle TCP- und UDP-Sockets.
ss -tuaAusgabe-Optionen
ss -n — Numerische Ausgabe – löst weder Dienstnamen noch Hostnamen auf.
ss -nss -p — Zeigt den Prozess, der den Socket nutzt (erfordert root für fremde Prozesse).
sudo ss -pss -e — Zeigt erweiterte Socket-Informationen (UID, Inode, Cookie).
ss -ess -m — Zeigt den Speicherbedarf der Sockets.
ss -mss -ti — Zeigt interne TCP-Informationen (Staukontrolle, RTT, Fenstergrößen).
ss -tiss -to — Zeigt Timer-Informationen (Keepalive, Retransmit-Timer).
ss -toss -Z — Zeigt den SELinux-Sicherheitskontext.
ss -ZHäufige Kombinationen
ss -tlnp — Zeigt lauschende TCP-Ports mit Portnummern und Prozessinfos. Die häufigste Kombination.
sudo ss -tlnpss -tulnp — Zeigt alle lauschenden TCP- und UDP-Ports mit zugehörigen Prozessen.
sudo ss -tulnpss -tanp — Zeigt alle TCP-Verbindungen mit Portnummern und Prozessen.
sudo ss -tanpss -ti — Zeigt TCP-Verbindungen mit internen Infos (Congestion-Window, RTT, MSS).
ss -tiss -tlnpe — Zeigt lauschende TCP-Ports mit Prozess, numerischer Ausgabe und erweiterten Infos.
sudo ss -tlnpeFilter nach Port
ss -tln sport = :PORT — Zeigt Sockets, die auf einem bestimmten Port lauschen.
ss -tln sport = :80ss -tn dport = :PORT — Zeigt Verbindungen zu einem bestimmten Ziel-Port.
ss -tn dport = :443ss -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.8ss -tn src ADDRESS — Zeigt Verbindungen von einer bestimmten Quelladresse.
ss -tn src 192.168.1.100ss -tn dst NETWORK/CIDR — Zeigt Verbindungen zu einem bestimmten Netzwerk.
ss -tn dst 10.0.0.0/8Filter nach Zustand
ss -t state established — Zeigt nur aktive TCP-Verbindungen (ESTABLISHED).
ss -t state establishedss -t state listening — Zeigt nur lauschende TCP-Sockets.
ss -t state listeningss -t state time-wait — Zeigt nur TIME-WAIT-Verbindungen.
ss -t state time-waitss -t state close-wait — Zeigt nur CLOSE-WAIT-Verbindungen (kann auf Applikationsprobleme hinweisen).
ss -t state close-waitss -t state fin-wait-1 — Zeigt Verbindungen im FIN-WAIT-1-Zustand.
ss -t state fin-wait-1ss -t state syn-sent — Zeigt Verbindungen im SYN-SENT-Zustand (ausgehende Verbindungsversuche).
ss -t state syn-sentss -t state syn-recv — Zeigt Verbindungen im SYN-RECV-Zustand (eingehende Verbindungsversuche).
ss -t state syn-recvss -t state connected — Zeigt alle verbundenen (nicht lauschenden) Sockets.
ss -t state connectedPraxisbeispiele
ss -tlnp | grep :80 — Prüft, welcher Prozess auf Port 80 lauscht.
sudo ss -tlnp | grep :80ss -tn state established | wc -l — Zählt die Anzahl aktiver TCP-Verbindungen.
ss -tn state established | wc -lss -tn state established dst :443 | wc -l — Zählt aktive HTTPS-Verbindungen.
ss -tn state established dst :443 | wc -lss -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 | headss -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 -lwatch -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 sshss -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.
Weiterführende Links
- ss(8) – Manpage – alle Optionen im Überblick (englisch)
- iproute2 – Wikipedia – Hintergrund und Geschichte des Tool-Pakets