# 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.

Source: https://www.jpkc.com/db/cheatsheets/networking/ss/

<!-- PROSE:intro -->
`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.
<!-- PROSE:intro:end -->

## Grundlegende Verwendung

`ss` — Zeigt alle aktiven Verbindungen an.

```bash
ss
```

`ss -l` — Zeigt nur lauschende Sockets.

```bash
ss -l
```

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

```bash
ss -a
```

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

```bash
ss -s
```

## Protokoll-Filter

`ss -t` — Zeigt nur TCP-Verbindungen.

```bash
ss -t
```

`ss -u` — Zeigt nur UDP-Sockets.

```bash
ss -u
```

`ss -w` — Zeigt nur RAW-Sockets.

```bash
ss -w
```

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

```bash
ss -x
```

`ss -4` — Zeigt nur IPv4-Sockets.

```bash
ss -4
```

`ss -6` — Zeigt nur IPv6-Sockets.

```bash
ss -6
```

`ss -tl` — Zeigt lauschende TCP-Sockets.

```bash
ss -tl
```

`ss -ul` — Zeigt lauschende UDP-Sockets.

```bash
ss -ul
```

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

```bash
ss -tua
```

## Ausgabe-Optionen

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

```bash
ss -n
```

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

```bash
sudo ss -p
```

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

```bash
ss -e
```

`ss -m` — Zeigt den Speicherbedarf der Sockets.

```bash
ss -m
```

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

```bash
ss -ti
```

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

```bash
ss -to
```

`ss -Z` — Zeigt den SELinux-Sicherheitskontext.

```bash
ss -Z
```

## Häufige Kombinationen

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

```bash
sudo ss -tlnp
```

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

```bash
sudo ss -tulnp
```

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

```bash
sudo ss -tanp
```

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

```bash
ss -ti
```

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

```bash
sudo ss -tlnpe
```

## Filter nach Port

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

```bash
ss -tln sport = :80
```

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

```bash
ss -tn dport = :443
```

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

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

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

```bash
ss -tn 'sport gt :1024'
```

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

```bash
ss -tn 'sport lt :1024'
```

## Filter nach Adresse

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

```bash
ss -tn dst 8.8.8.8
```

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

```bash
ss -tn src 192.168.1.100
```

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

```bash
ss -tn dst 10.0.0.0/8
```

## Filter nach Zustand

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

```bash
ss -t state established
```

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

```bash
ss -t state listening
```

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

```bash
ss -t state time-wait
```

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

```bash
ss -t state close-wait
```

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

```bash
ss -t state fin-wait-1
```

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

```bash
ss -t state syn-sent
```

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

```bash
ss -t state syn-recv
```

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

```bash
ss -t state connected
```

## Praxisbeispiele

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

```bash
sudo ss -tlnp | grep :80
```

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

```bash
ss -tn state established | wc -l
```

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

```bash
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.

```bash
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).

```bash
ss -t state time-wait | wc -l
```

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

```bash
watch -n 1 'ss -s'
```

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

```bash
ss -tnp | grep ssh
```

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

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

<!-- PROSE:outro -->
## 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](https://man7.org/linux/man-pages/man8/ss.8.html) – alle Optionen im Überblick (englisch)
- [iproute2 – Wikipedia](https://de.wikipedia.org/wiki/Iproute2) – Hintergrund und Geschichte des Tool-Pakets
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [netstat](https://www.jpkc.com/db/cheatsheets/networking/netstat/) – Vorgänger von ss, auf vielen Systemen noch vorinstalliert
- [ip](https://www.jpkc.com/db/cheatsheets/networking/ip/) – Netzwerkinterfaces, Routen und Adressen verwalten
- [iftop](https://www.jpkc.com/db/cheatsheets/networking/iftop/) – Netzwerk-Bandbreite nach Verbindung anzeigen

