Netstat: Installation und Nutzung unter Linux
Netstat („network statistics“) ist ein Befehlszeilen-Werkzeug zum Analysieren von Netzwerkproblemen und zum Sammeln von Netzwerkstatistiken. Unter Linux zeigt der Befehl netstat aktive TCP-, UDP- und UNIX-Domain-Socket-Verbindungen sowie lauschende Sockets an, listet zugehörige Ports auf, liefert grundlegende Statistiken zu Netzwerkschnittstellen und gibt die Routing-Tabelle des Kernels aus. So können Sie Verbindungen überwachen, offene Ports identifizieren und Netzwerkprobleme diagnostizieren.
Diese Anleitung erklärt, wie Sie netstat installieren und verwenden, um Linux-Netzwerke zu überwachen und zu analysieren.
Netstat unter Linux installieren
Das Werkzeug netstat gehört zum Paket net-tools, das in den Paketquellen gängiger Linux-Distributionen standardmäßig verfügbar ist. Um den Befehl netstat zu nutzen, installieren Sie das Paket net-tools auf Ihrem System.
So installieren Sie net-tools:
Debian/Ubuntu
$ sudo apt install net-tools -y
RHEL
$ sudo dnf install net-tools -y
Arch Linux
$ sudo pacman -Sy net-tools
SUSE Linux
$ sudo zypper install net-tools -y
Alpine Linux
$ sudo apk add net-tools
Überprüfen Sie anschließend die Installation mit:
$ netstat --version
Erwartete Ausgabe:
net-tools 2.10
…
Netstat Befehls-Syntax
Die Grundsyntax lautet:
netstat [OPTIONEN]
Mit den Optionen steuern Sie das Verhalten des Befehls. Ohne zusätzliche Parameter zeigt netstat eine Liste offener Sockets an.
Ausgabe des Netstat Befehls verstehen
Führen Sie den Befehl aus, um alle aktiven Verbindungen des Systems anzuzeigen:
$ netstat
Beispielausgabe:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 hostname:49922 example.com:https ESTABLISHED
tcp 0 0 hostname:44568 cdn-1-0-0-127:https ESTABLISHED
…
…
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 3 [ ] STREAM CONNECTED 7931 /run/user/1050/bus
unix 3 [ ] STREAM CONNECTED 7835 /run/dbus/system_bus_socket
Die Ausgabe enthält zwei Hauptabschnitte:
- Active Internet connections: Zeigt TCP- und UDP-Verbindungen zwischen dem lokalen Hostnamen und entfernten Hosts wie example.com.
- Active UNIX domain sockets: Listet lokal geöffnete Unix-Sockets auf.
Bedeutung der Spalten in der Ausgabe:
- Proto: Aktives Protokoll (TCP, UDP oder UNIX-Socket).
- Recv-Q (Receive Queue): Bytes, die der Kernel empfangen hat, die aber von der Anwendung noch nicht gelesen wurden.
- Send-Q (Send Queue): Bytes, die die Anwendung zum Senden vorgemerkt hat und die noch nicht vom Ziel bestätigt wurden.
- Local Address: Hostname, IP-Adresse und Port des lokalen Systems.
- Foreign Address: Reverse Lookup des entfernten Hosts.
- State: Verbindungsstatus, z. B. bedeutet
ESTABLISHEDeine aktive Verbindung. - RefCnt (Reference Count): Anzahl der Benutzer oder Verbindungen, die mit dem Socket verknüpft sind.
- Flags: Flags, die sich auf UNIX-Sockets beziehen.
- Type: Socket-Typ wie STREAM, DGRAM, SEQPACKET oder RAW.
- I-Node: Die dem UNIX-Socket zugeordnete Inode-Nummer.
- Path: Dateisystempfad, der dem UNIX-Socket zugeordnet ist.
Standardmäßig zeigt netstat ohne Optionen nur nicht-lauschende Sockets an.
Häufig genutzte Netstat Optionen
Oft verwendete Optionen sind:
- –listening oder -l: Zeigt lauschende Sockets an.
- –all oder -a: Zeigt sowohl etablierte als auch nicht-etablierte Verbindungen.
- –tcp oder -t: Zeigt Sockets mit dem TCP-Protokoll.
- –udp oder -u: Zeigt Sockets mit dem UDP-Protokoll.
- –numeric oder -n: Zeigt Portnummern anstatt Portnamen und IP-Adressen anstatt Hostnamen.
- –program oder -p: Ergänzt die Ausgabe um eine Spalte PID/Program name und zeigt den Prozess, der den Socket nutzt. Für systemweite Prozesse ist
sudoerforderlich.
Die folgenden Unterabschnitte zeigen verschiedene Anwendungsfälle dieser und anderer Flags, auch in Kombination.
Hinweis
netstat listet lauschende Sockets nur mit den Optionen -l oder -a auf.
Die Option -p zeigt nur Prozesse an, die dem aktuellen Benutzer gehören. Um alle Prozesse anzuzeigen (auch solche, die Ihnen nicht gehören), verwenden Sie sudo zusammen mit dem netstat Befehl.
Offene Verbindungen mit Prozess-IDs (PIDs) anzeigen
Führen Sie netstat mit der Option -p bzw. --program aus, um offene Verbindungen zusammen mit der zugehörigen PID (Process ID) bzw. dem Programmnamen darzustellen.
$ sudo netstat -p
Beispielausgabe:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 hostname:55604 2.0.0.127.in-a:https ESTABLISHED 2320/firefox
tcp 0 0 hostname:40128 3.0.0.127.i:https ESTABLISHED 33638/app –st
…
…
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 3 [ ] STREAM CONNECTED 12358 750/pipewire /run/user/1050/pipewire-0
unix 3 [ ] STREAM CONNECTED 31580 3898/speech-dispatc /run/user/1050/speech-dispatcher/speechd.sock
Die Spalte PID/Program name zeigt für jede Verbindung die PID sowie den zugehörigen Programmnamen.
Offene Ports unter Linux mit Netstat anzeigen
Verwenden Sie die Option -ltup, um offene Ports für die Protokolle TCP und UDP aufzulisten:
$ sudo netstat -ltup
Beispielausgabe:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:mshvlm 0.0.0.0:* LISTEN 763/mpd
udp 0 0 0.0.0.0:35069 0.0.0.0:* 1451/firefox
Routing-Tabelle in Linux mit Netstat anzeigen
Nutzen Sie die Option -r bzw. --route zusammen mit netstat, um die Kernel-Routing-Tabelle anzuzeigen und das Standard-Gateway zu prüfen:
$ netstat -r
Beispielausgabe:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 enp1s0
192.168.10.2.ch _gateway 255.255.255.255 UGH 0 0 0 enp1s0
192.168.10.1 0.0.0.0 255.255.254.0 U 0 0 0 enp1s0
_gateway 0.0.0.0 255.255.255.255 UH 0 0 0 enp1s0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlp4s0
…
Spaltenbeschreibungen:
- Destination: Ziel-IP oder Hostname.
- Gateway: Nächster Hop auf dem Routing-Pfad.
- Genmask: Netzmaske eines Eintrags.
- Flags: Zeigt die Routing-Flags:
- U: Route ist aktiv (UP).
- H: Ziel ist ein konkreter Host.
- G: Ziel ist ein Gateway.
- MSS: „Maximum Segment Size“, also die maximale Nutzlastgröße, die der Socket empfangen kann.
- Window: TCP-Fenstergröße.
- irtt: „Initial Round Trip Time“ – anfängliche Laufzeit von Paketen für eine Verbindung.
- Iface: Netzwerkschnittstelle des Eintrags.
Erklärung des letzten Eintrags:
- Traffic zu 0.0.0.0 wird über das Gateway
wlp4s0geroutet. - Das Standard-Gateway ist
192.168.1.1und wird über die Schnittstellewlp4s0erreicht. - Das Flag U kennzeichnet eine aktive Route, G markiert ein Gateway.
Statistiken der Netzwerkschnittstellen anzeigen
Starten Sie netstat mit -i bzw. --interface, um Statistiken zu den Netzwerkschnittstellen auszugeben:
$ netstat -i
Beispielausgabe:
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
lo 65536 6111 0 0 0 6111 0 0 0 LRU
wlp4s0 1500 1164542 0 0 0 822802 0 38 0 BMRU
Aus der obigen Ausgabe:
- Die Schnittstelle
lomit einer MTU von 65536 hat 6111 Pakete empfangen und gesendet. Es handelt sich um die Loopback-Schnittstelle, die aktiv ist. - Die Schnittstelle
wlp4s0mit einer MTU von 1500 hat 1.164.542 Pakete empfangen, 822.802 Pakete gesendet und 38 Pakete verworfen. Sie ist aktiv, Broadcast ist gesetzt und Multicast ist aktiviert.
Erklärung der einzelnen Spalten:
- Iface: Name der Netzwerkschnittstelle.
- MTU: „Maximum Transmission Unit“ in Bytes.
- RX-OK: Anzahl erfolgreich empfangener Pakete.
- RX-ERR: Anzahl empfangener Fehlerpakete (mögliche Ursachen: physische Verbindungsprobleme, Hardwarefehler, Netzwerküberlastung).
- RX-DRP: Anzahl von der Schnittstelle verworfener Pakete.
- RX-OVR: Anzahl von Datenpaketen, die die Schnittstelle nicht verarbeiten konnte.
- TX-OK: Anzahl erfolgreich gesendeter Pakete.
- TX-ERR: Anzahl fehlerhaft gesendeter Pakete (z. B. durch Hardwarefehler oder falsche Paketformatierung).
- TX-DRP: Von der Sende-Warteschlange verworfene Pakete.
- TX-OVR: Sendeüberläufe, analog zu RX-OVR für gesendete Daten.
- Flg (Flags): Zustand und Fähigkeiten der Schnittstelle:
- B: Broadcast-Adresse gesetzt.
- L: Loopback-Schnittstelle.
- M: Promiscuous Mode aktiviert.
- R: Schnittstelle läuft.
- U: Schnittstelle ist aktiv (Up).
Alle aktiven Netzwerkverbindungen anzeigen
Verwenden Sie netstat mit der Option -apn, um sämtliche aktiven Verbindungen auszugeben:
$ sudo netstat -apn
Erwartete Ausgabe:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6600 0.0.0.0:* LISTEN 724/mpd
tcp 0 0 192.168.1.6:49928 172.6.0.4:443 ESTABLISHED 1148/firefox
…
…
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 3 [ ] STREAM CONNECTED 13452 893/dbus-broker /run/user/1050/at-spi/bus_0
unix 2 [ ACC ] STREAM LISTENING 10355 724/mpd /home/ndlr/.config/mpd/socket
Erläuterung der Optionen:
- -a bzw. –all: Zeigt lauschende und nicht lauschende Verbindungen.
- -p bzw. –program: Gibt PID und Programmnamen aus.
- -n bzw. –numeric: Stellt die Ausgabe numerisch dar.
Aktive TCP-Verbindungen anzeigen
Ergänzen Sie -t bzw. --tcp, um alle aktiven TCP-Verbindungen zu sehen:
$ sudo netstat -aptn
Beispielausgabe:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6600 0.0.0.0:* LISTEN 724/mpd
tcp 0 0 192.168.1.6:49928 172.6.0.4:443 ESTABLISHED 1148/firefox
Aktive UDP-Verbindungen anzeigen
Ergänzen Sie -u bzw. --udp, um alle aktiven UDP-Verbindungen auszugeben:
$ sudo netstat -apun
Beispielausgabe:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:47697 0.0.0.0:* 1148/firefox
udp 0 0 192.168.1.6:68 192.168.1.1:67 ESTABLISHED 601/NetworkManager
Netzwerk-Timer-Daten anzeigen
Mit der Option -o bzw. --timer lassen sich Netzwerk-Timer ausgeben. Diese helfen beim Analysieren von Verbindungs-Timeouts:
$ netstat -ano
Beispielausgabe:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN off (0.00/0/0)
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN off (0.00/0/0)
…
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 3 [ ] STREAM CONNECTED 8613 /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 8929 /run/dbus/system_bus_socket
…
Die Spalte Timer enthält die Timer-Daten für jeden Socket.
Lauschende Sockets anzeigen
Mit -l bzw. --listening listen Sie lauschende Sockets auf. Um TCP- und UDP-Sockets mit numerischen Adressen zu prüfen, verwenden Sie:
$ netstat -tuln
Beispielausgabe:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 127.0.0.54:53 0.0.0.0:*
udp 0 0 127.0.0.53:53 0.0.0.0:*
Fazit
Dieser Artikel hat gezeigt, wie Sie den Befehl netstat unter Linux zum Überwachen, Diagnostizieren und Sammeln von Netzwerkstatistiken einsetzen. Damit können Sie die Netzwerkleistung analysieren und Störungen beheben. Weitere Details erhalten Sie mit man 8 netstat oder in der offiziellen Netstat-Dokumentation.


