# netstat — Netzwerkverbindungen und Statistiken im Überblick

> Praxis-Guide zu netstat – Verbindungen, lauschende Ports, Routing-Tabelle und Schnittstellenstatistiken mit den wichtigsten Optionskombinationen.

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

<!-- PROSE:intro -->
netstat ist das klassische Werkzeug, um aktive Verbindungen, lauschende Ports, die Kernel-Routing-Tabelle und Schnittstellen-Statistiken auf der Kommandozeile einzusehen. Es funktioniert auf Linux, macOS und Windows und ist auf vielen Systemen vorinstalliert. Auf modernen Linux-Distributionen gilt `ss` aus dem `iproute2`-Paket als direkter Nachfolger – schneller und mit aktivem Upstream. Für gelegentliche Diagnosen und plattformübergreifende Szenarien bleibt netstat der bewährte erste Griff.
<!-- PROSE:intro:end -->

## Verbindungen auflisten

`netstat` — Zeigt alle aktiven Verbindungen (TCP und Unix-Sockets) an.

```bash
netstat
```

`netstat -a` — Zeigt alle Verbindungen und lauschende Ports an.

```bash
netstat -a
```

`netstat -l` — Zeigt nur lauschende Sockets an.

```bash
netstat -l
```

`netstat -t` — Zeigt ausschließlich TCP-Verbindungen an.

```bash
netstat -t
```

`netstat -u` — Zeigt ausschließlich UDP-Verbindungen an.

```bash
netstat -u
```

`netstat -x` — Zeigt ausschließlich Unix-Domain-Sockets an.

```bash
netstat -x
```

`netstat -w` — Zeigt RAW-Sockets an.

```bash
netstat -w
```

## Ausgabe-Optionen

`netstat -n` — Numerische Ausgabe – zeigt IP-Adressen und Portnummern statt Namen an.

```bash
netstat -n
```

`netstat -p` — Zeigt PID und Programmname für jede Verbindung an (Root-Rechte erforderlich).

```bash
sudo netstat -p
```

`netstat -e` — Zeigt erweiterte Informationen an (Benutzer, Inode).

```bash
netstat -e
```

`netstat -o` — Zeigt Timer-Informationen an.

```bash
netstat -o
```

`netstat -c` — Aktualisiert die Ausgabe kontinuierlich jede Sekunde.

```bash
netstat -c
```

`netstat --wide` — Verkürzt IP-Adressen in der Ausgabe nicht.

```bash
netstat --wide
```

## Häufige Kombinationen

`netstat -tlnp` — Zeigt TCP-Listening-Ports mit Portnummern und Prozessen – die häufigste Verwendung.

```bash
sudo netstat -tlnp
```

`netstat -tulnp` — Zeigt alle TCP- und UDP-Listening-Ports mit Prozessen.

```bash
sudo netstat -tulnp
```

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

```bash
sudo netstat -tanp
```

`netstat -anp` — Zeigt alle Verbindungen mit numerischen Adressen und Prozessinformationen.

```bash
sudo netstat -anp
```

`netstat -ltpe` — Zeigt lauschende TCP-Ports mit Prozessen und erweiterten Informationen.

```bash
sudo netstat -ltpe
```

## Routing-Tabelle

`netstat -r` — Zeigt die Kernel-Routing-Tabelle an.

```bash
netstat -r
```

`netstat -rn` — Zeigt die Routing-Tabelle mit numerischen Adressen (ohne DNS-Auflösung).

```bash
netstat -rn
```

## Schnittstellen-Statistiken

`netstat -i` — Zeigt eine Tabelle aller Netzwerkschnittstellen mit Statistiken.

```bash
netstat -i
```

`netstat -ie` — Zeigt Schnittstellen mit erweiterten Informationen an (ähnlich wie ifconfig).

```bash
netstat -ie
```

`netstat -I INTERFACE` — Zeigt Statistiken für eine bestimmte Schnittstelle.

```bash
netstat -I eth0
```

## Protokoll-Statistiken

`netstat -s` — Zeigt Protokoll-Statistiken an (TCP, UDP, ICMP, IP).

```bash
netstat -s
```

`netstat -st` — Zeigt ausschließlich TCP-Statistiken an.

```bash
netstat -st
```

`netstat -su` — Zeigt ausschließlich UDP-Statistiken an.

```bash
netstat -su
```

## Multicast

`netstat -g` — Zeigt Multicast-Gruppenmitgliedschaften an.

```bash
netstat -g
```

## Praktische Beispiele

`netstat -tlnp | grep :80` — Zeigt, welcher Prozess auf Port 80 lauscht.

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

`netstat -an | grep ESTABLISHED | wc -l` — Zählt etablierte Verbindungen.

```bash
netstat -an | grep ESTABLISHED | wc -l
```

`netstat -an | grep TIME_WAIT | wc -l` — Zählt Verbindungen im TIME_WAIT-Status.

```bash
netstat -an | grep TIME_WAIT | wc -l
```

`netstat -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head` — Zeigt die häufigsten Remote-IPs nach Verbindungsanzahl.

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

`netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c | sort -rn` — Zeigt die Anzahl der Verbindungen nach TCP-Status.

```bash
netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c | sort -rn
```

`netstat -tulnp | grep -v 127.0.0.1 | grep -v ::1` — Zeigt lauschende Ports, die von außen erreichbar sind (nicht nur localhost).

```bash
sudo netstat -tulnp | grep -v 127.0.0.1 | grep -v ::1
```

<!-- PROSE:outro -->
## Fazit

Für schnelle Diagnosen – welcher Prozess hört auf Port 80, wie viele ESTABLISHED-Verbindungen gibt es gerade, was zeigt die Routing-Tabelle? – ist netstat nach wie vor erste Wahl. Auf modernen Linux-Systemen solltest du `ss` kennen: es liefert dieselben Informationen schneller und zeigt sogar TCP-interne Zustände, die netstat verbirgt.

## Weiterführende Links

- [netstat – Wikipedia](https://de.wikipedia.org/wiki/Netstat) – Hintergrund und Geschichte
- [netstat(8) – Linux man page](https://linux.die.net/man/8/netstat) – vollständige Optionsreferenz (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [ss](https://www.jpkc.com/db/cheatsheets/networking/ss/) – schnellerer Nachfolger von netstat auf modernen Linux-Systemen
- [ip](https://www.jpkc.com/db/cheatsheets/networking/ip/) – Routen, Adressen und Schnittstellen auf der Kommandozeile verwalten
- [iftop](https://www.jpkc.com/db/cheatsheets/networking/iftop/) – Netzwerkbandbreite in Echtzeit nach Verbindung anzeigen

