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

Überprüfen Sie anschließend die Installation mit:

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:

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 ESTABLISHED eine 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 sudo erforderlich.

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.

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:

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:

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 wlp4s0 geroutet.
  • Das Standard-Gateway ist 192.168.1.1 und wird über die Schnittstelle wlp4s0 erreicht.
  • 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:

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 lo mit einer MTU von 65536 hat 6111 Pakete empfangen und gesendet. Es handelt sich um die Loopback-Schnittstelle, die aktiv ist.
  • Die Schnittstelle wlp4s0 mit 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:

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:

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:

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:

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:

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.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Passbolt auf Linux installieren & sicher konfigurieren

Security, Tutorial
Passbolt auf Linux-Distributionen installieren und einrichten Passbolt ist ein Open-Source-Passwortmanager, der die sichere Speicherung und Verwaltung von Passwörtern sowie sensiblen Daten mit Ende-zu-Ende-Verschlüsselung ermöglicht. Er funktioniert hauptsächlich als Browser-Erweiterung für…