VMware ESXi and vSphere Cluster Management

Netzwerkstatus unter Linux mit netstat überwachen

Lerne, mit netstat offene Ports, TCP- und UDP-Verbindungen, Prozesse, Statistiken, Schnittstellen und Routingtabellen unter Linux zu prüfen.

netstat ist ein Kommandozeilenwerkzeug zur Untersuchung von Netzwerkverbindungen, Sockets, lauschenden Ports, Schnittstellenstatistiken und Routingtabellen. Damit lässt sich beispielsweise feststellen, ob ein Dienst läuft, welcher Prozess einen Port verwendet oder ob Netzwerkfehler und überfüllte Socket-Warteschlangen auftreten.

Auf vielen aktuellen Linux-Systemen gilt netstat als veraltet. Für neue Arbeitsabläufe ist ss aus dem Paket iproute2 meist die bessere Wahl. netstat bleibt dennoch nützlich, wenn ältere Dokumentationen, Skripte oder minimale Umgebungen darauf aufbauen.

Wofür wird netstat verwendet?

Ein Socket ist ein Kommunikationsendpunkt. Er wird unter anderem durch ein Transportprotokoll, eine IP-Adresse und einen Port beschrieben. Ein Port ist ein nummerierter Endpunkt, an dem ein Dienst Verbindungen oder Datagramme entgegennimmt. Ein Listening Socket wartet auf neue Verbindungen.

Mit netstat können Linux-Anwender unter anderem folgende Fragen beantworten:

  • Welche TCP- und UDP-Sockets sind aktiv?
  • Welche Ports lauschen lokal?
  • Ist ein Dienst nur auf localhost oder auch über das Netzwerk erreichbar?
  • Welcher Prozess und welche PID gehören zu einem Port?
  • Welche TCP-Verbindungszustände treten besonders häufig auf?
  • Gibt es auffällige Empfangs- oder Sendewarteschlangen?
  • Zeigen Protokoll- oder Schnittstellenzähler auf Paketverluste und Fehler?
  • Ist eine passende Standardroute zum externen Netzwerk vorhanden?

Installation und Verfügbarkeit prüfen

Auf Linux wird netstat üblicherweise durch das Paket net-tools bereitgestellt. Zuerst lässt sich prüfen, ob der Befehl bereits vorhanden ist:

command -v netstat
netstat --version

Fehlt der Befehl, kann das Paket je nach Distribution so installiert werden:

# Debian und Ubuntu
sudo apt update && sudo apt install net-tools

# Fedora und RHEL-kompatible Systeme
sudo dnf install net-tools

# Arch-basierte Systeme
sudo pacman -S net-tools

Optionen und einzelne Ausgabefelder können sich abhängig von Distribution und net-tools-Version geringfügig unterscheiden.

Grundausgabe und numerische Anzeige

Ohne Optionen zeigt netstat einen Überblick über einen Teil der aktiven Netzwerk-Sockets:

netstat

Mit -a werden alle Verbindungen und lauschenden Endpunkte einbezogen:

netstat -a

Standardmäßig versucht netstat häufig, IP-Adressen oder Ports in Namen aufzulösen. Das kann die Ausgabe verlangsamen und bei DNS-Problemen irritieren. Die Option -n erzwingt eine numerische Ausgabe, also IP-Adressen und Portnummern ohne DNS- oder Servicenamenauflösung:

netstat -an

Für eine schnelle Übersicht über TCP- und UDP-Sockets ist folgende Kombination besonders praktisch:

netstat -atun

TCP ist verbindungsorientiert und besitzt Zustände wie LISTEN oder ESTABLISHED. UDP ist verbindungslos und zeigt normalerweise keine TCP-artige Zustandsfolge.

Wichtige netstat-Optionen

OptionWirkungTypischer EinsatzzweckBeispiel
-aAlle Sockets und Listener anzeigenVollständigen Überblick erhaltennetstat -an
-tTCP-Sockets anzeigenTCP-Zustände untersuchennetstat -tan
-uUDP-Sockets anzeigenUDP-Bindungen prüfennetstat -uan
-nAdressen und Ports numerisch ausgebenNamensauflösung vermeidennetstat -tun
-pPID und Programmnamen anzeigenPort einem Prozess zuordnensudo netstat -tulpn
-cAnzeige fortlaufend aktualisierenVeränderungen beobachtennetstat -atnc
-sProtokollstatistiken ausgebenFehler- und Verkehrsindikatoren prüfennetstat -s
-stTCP-Statistiken ausgebenTCP-Probleme eingrenzennetstat -st
-iSchnittstellenstatistiken anzeigenPakete, Fehler und Drops vergleichennetstat -i
-rRoutingtabelle anzeigenGateway und Routen prüfennetstat -rn

Nach TCP und UDP filtern

TCP-Sockets

Mit -t wird die Anzeige auf TCP beschränkt. Die Kombination mit -a und -n umfasst auch Listener und vermeidet Namensauflösung:

netstat -t
netstat -tan

Aktive Sitzungen erscheinen typischerweise als ESTABLISHED. Ein Server-Socket, der auf neue Verbindungen wartet, erscheint als LISTEN.

UDP-Sockets

Mit -u werden UDP-Sockets angezeigt:

netstat -u
netstat -uan

Da UDP keinen TCP-artigen Verbindungsaufbau besitzt, sind Zustände wie ESTABLISHED oder LISTEN hier normalerweise nicht auf dieselbe Weise vorhanden. Entscheidend sind vor allem lokale Adresse und lokaler Port.

Lauschende Ports und lokale Bindungen untersuchen

Alle TCP- und UDP-Listener mit Prozessinformationen lassen sich typischerweise so anzeigen:

sudo netstat -tulpn

In der Spalte Local Address stehen lokale IP-Adresse und Port. Eine Bindung an 127.0.0.1 oder ::1 ist auf den lokalen Rechner beschränkt. Ein Dienst ist dadurch nicht direkt über andere Netzwerkgeräte erreichbar.

Adressen wie 0.0.0.0, :: oder je nach Ausgabe ein Stern-Platzhalter bedeuten meist, dass der Socket auf mehreren oder allen passenden Interfaces lauscht. Das kann gewollt sein, erhöht aber die Bedeutung von Firewall- und Dienstkonfiguration.

Die Prozessspalten helfen, einen Port einem Programm zuzuordnen. Beispiel: Ein unerwarteter Listener auf Port 8080 wird mit sudo netstat -tulpn einem Programmnamen und einer PID zugeordnet. Danach können Prozessdetails, Paketquelle, Dienstdefinition und Logs geprüft werden.

Felder einer Verbindungsanzeige verstehen

FeldBedeutungWorauf bei der Diagnose achten
ProtoVerwendetes Transportprotokoll, etwa TCP oder UDPProtokoll mit der erwarteten Dienstkonfiguration vergleichen
Recv-QDatenmenge, die am Socket eingegangen, aber noch nicht von der lokalen Anwendung gelesen wurdeDauerhaft hohe oder wachsende Werte können auf eine zu langsame Anwendung hindeuten
Send-QDatenmenge im Sendepfad, deren genaue Bedeutung je nach Sockettyp und Toolversion variiertDauerhaft hohe oder wachsende Werte können auf fehlende Bestätigungen, Überlastung oder ein nicht antwortendes Ziel hinweisen
Local AddressLokale IP-Adresse und PortPrüfen, ob die Bindung nur auf localhost oder auf externen Interfaces erfolgt
Foreign AddressIP-Adresse und Port der GegenstelleUnerwartete Ziele und externe Verbindungen untersuchen
StateTCP-VerbindungszustandHäufungen bestimmter Zustände im zeitlichen Kontext bewerten
PID/Program nameProzesskennung und ProgrammnamePortbelegung und unbekannte Dienste identifizieren

Recv-Q- und Send-Q-Werte von null oder nahe null sind in vielen Situationen unauffällig. Aussagekräftiger als ein einzelner Messwert ist die Entwicklung über mehrere Abfragen.

TCP-Zustände diagnostisch nutzen

StatusPhaseBedeutungMögliche Diagnosehinweise
LISTENWartenEin Server-Socket wartet auf neue VerbindungenErwarteten Port, lokale Bindung und Prozess prüfen
ESTABLISHEDAktive SitzungDie TCP-Verbindung ist aufgebautGegenstelle und Anzahl aktiver Sitzungen bewerten
SYN_SENTAufbauDer lokale Host hat einen Verbindungsaufbau begonnenViele Einträge können auf fehlende Erreichbarkeit, Firewall-Blockade oder ein falsches Ziel hindeuten
SYN_RECV oder SYN_RECEIVEDAufbauEine Verbindungsanfrage wurde empfangen, der Aufbau ist noch nicht abgeschlossenViele Einträge können auf Überlastung oder unvollständige Handshakes hinweisen
FIN_WAIT_1AbbauDer lokale Host hat das Schließen eingeleitetDauer und Häufigkeit im Anwendungskontext prüfen
FIN_WAIT_2AbbauDie lokale Seite hat das Ende signalisiert und wartet auf die GegenstelleLange Verweildauer kann auf eine nicht sauber schließende Gegenstelle hindeuten
CLOSE_WAITAbbauDie Gegenstelle hat geschlossen; die lokale Anwendung muss noch schließenViele dauerhafte Einträge können auf einen Fehler in der Anwendung hinweisen
LAST_ACKAbbauDie lokale Seite wartet auf die letzte BestätigungBei Häufungen Gegenstelle und Anwendung untersuchen
TIME_WAITNach dem AbbauDer Host hält Informationen kurzzeitig zurück, damit verspätete Pakete nicht störenViele Einträge sind bei kurzlebigen TCP-Verbindungen häufig normal
CLOSEDInaktivKeine aktive VerbindungNur beachten, sofern die verwendete Ausgabe diesen Zustand zeigt

Praktische Diagnosebefehle

Schneller Überblick

netstat -atun

Damit werden aktive und lauschende TCP- sowie UDP-Endpunkte numerisch angezeigt. Lokale Adresse, Port, Gegenstelle und TCP-Status können mit dem erwarteten Betrieb verglichen werden.

Port und Prozess ermitteln

sudo netstat -tulpn

Die Ausgabe verbindet Listener mit PID und Programmnamen. Root-Rechte sind häufig erforderlich. Ohne ausreichende Rechte sind nicht alle Prozesse anderer Benutzer sichtbar.

Verbindungen fortlaufend beobachten

netstat -atnc

Die Anzeige wird regelmäßig aktualisiert. So lassen sich neue Sitzungen, kurzlebige Verbindungen und wachsende Queues beobachten. Beendet wird die laufende Anzeige mit Strg+C.

Protokollstatistiken auswerten

netstat -s
netstat -st

-s zeigt Statistiken unter anderem für IP, TCP, UDP und ICMP. -st begrenzt die Ausgabe auf TCP. Relevant können Retransmits, fehlgeschlagene Verbindungsversuche, zurückgesetzte Verbindungen, verworfene Pakete und Empfangsfehler sein. Einzelne Zähler sind nur im zeitlichen Vergleich aussagekräftig, weil viele kumulativ sind.

Schnittstellenstatistiken

netstat -i

Die Ausgabe enthält Zähler für empfangene und gesendete Pakete sowie Fehler und verworfene Pakete. Hohe oder schnell wachsende Fehler- und Drop-Werte können auf Treiberprobleme, Verkabelung, WLAN-Probleme, Überlastung, eine ungeeignete MTU oder fehlerhafte Konfiguration hinweisen. Historische Zähler sollten über einen Zeitraum verglichen werden.

Routingtabelle anzeigen

netstat -rn

-r zeigt die Routingtabelle, -n verhindert die Namensauflösung. Typische Spalten beschreiben Netzwerkziel, Gateway, Netzmaske oder Präfix, Flags und ausgehendes Interface. Die Standardroute wird oft als 0.0.0.0 für IPv4 oder ::/0 für IPv6 dargestellt. Sie wird verwendet, wenn keine spezifischere Route zum Ziel existiert.

Typische Fehlerbilder eingrenzen

Webdienst ist von außen nicht erreichbar

  1. Mit sudo netstat -tulpn prüfen, ob der erwartete TCP-Port lauscht.
  2. Kontrollieren, ob der Dienst nur an 127.0.0.1 oder ::1 gebunden ist.
  3. Bei fehlendem Listener Dienststatus und Logs prüfen.
  4. Bei vorhandenem Listener zusätzlich Dienstkonfiguration, Host-Firewall und externe Sicherheitsgruppen kontrollieren.

Mögliche Ursachen sind ein nicht laufender Dienst, ein falscher Port, eine ausschließliche Loopback-Bindung, ein Portkonflikt oder eine blockierende Firewall.

Unerwarteter lokaler Port

  1. Mit sudo netstat -tulpn PID und Programmnamen ermitteln.
  2. Den Prozess mit ps oder dem Service-Manager untersuchen.
  3. Paketquelle, Dienstdefinition, Konfiguration und Logs prüfen.
  4. Eine unnötige externe Bindung entfernen oder den Dienst durch Firewall-Regeln schützen.

Der Listener kann zu einem legitim installierten Dienst, einer vergessenen Testanwendung oder einem unbekannten Prozess gehören. Ein unbekannter Prozess erfordert eine weitergehende Sicherheitsuntersuchung.

Verbindungen bleiben hängen

netstat -tan
netstat -st

Wiederholt hohe Recv-Q-Werte können bedeuten, dass die Anwendung Daten nicht schnell genug liest. Hohe Send-Q-Werte können auf fehlende Bestätigungen oder ein langsames beziehungsweise nicht erreichbares Ziel hindeuten. Viele CLOSE_WAIT-Einträge sprechen möglicherweise dafür, dass eine Anwendung Sockets nicht sauber schließt. Viele SYN_SENT-Einträge können durch Firewall-Blockaden, falsche Ziele oder fehlende Erreichbarkeit entstehen. Viele TIME_WAIT-Einträge sind dagegen bei vielen kurzlebigen TCP-Verbindungen oft normal.

Externe Ziele sind nicht erreichbar

netstat -rn
netstat -i
ip route

Fehlt eine Standardroute, kann das System lokale Netze erreichen, aber nicht automatisch externe Ziele. Gateway und ausgehendes Interface müssen zur Netzwerkkonfiguration passen. Zusätzlich sollten Schnittstellenfehler und Drops geprüft werden.

Moderne Alternative: ss

ss wird über iproute2 bereitgestellt und ist auf modernen Linux-Systemen das bevorzugte Werkzeug. Es wird aktiv gepflegt und kann Socket-Abfragen häufig schneller durchführen.

AufgabenetstatssEmpfehlung
Alle TCP- und UDP-Socketsnetstat -atunss -tunFür neue Systeme bevorzugt ss verwenden
Lauschende Ports mit Prozessensudo netstat -tulpnsudo ss -tulpnss verwenden, wenn verfügbar
TCP-Verbindungen numerisch anzeigennetstat -tanss -tanNumerische Ausgabe für schnelle Diagnosen nutzen
UDP-Sockets numerisch anzeigennetstat -uanss -uanLokale UDP-Bindungen vergleichen
Routingtabelle anzeigennetstat -rnip routeFür Routen moderne ip-Befehle bevorzugen
Moderne StandardwerkzeugeFür ältere Umgebungen und DokumentationenAktuelle Socket-DiagnoseNeue Skripte möglichst mit ss und ip erstellen

Die Werkzeuge sind nicht in jeder Option vollständig identisch. Bei der Migration sollten Skripte und erwartete Ausgabefelder geprüft werden.

Sicherheits- und Datenschutzaspekte

  • Offene Ports zeigen, welche Dienste potenziell erreichbar sind. Nicht benötigte Dienste sollten beendet oder deaktiviert werden.
  • Eine Bindung an alle Interfaces sollte nur erfolgen, wenn sie erforderlich ist. Andernfalls ist eine Bindung an eine konkrete Adresse oder localhost sicherer.
  • Bei unbekannten Prozessen auf unerwarteten Ports sollten Eigentümer, Paketquelle, Dienstdefinition und Logs geprüft werden.
  • PID, Programmnamen, interne IP-Adressen und Gegenstellen können vertrauliche Informationen enthalten.
  • Vollständige Produktionsausgaben sollten nicht ungeschützt weitergegeben werden. Vor dem Teilen können interne Adressen und Verbindungsdaten anonymisiert werden.

Prüfungsrelevante Merksätze

  • -t steht für TCP, -u für UDP, -n für numerische Ausgabe und -p für Prozessinformationen.
  • LISTEN bedeutet, dass ein TCP-Server-Socket auf Verbindungen wartet; ESTABLISHED bezeichnet eine aufgebaute TCP-Verbindung.
  • 0.0.0.0, :: oder ein Stern-Platzhalter können eine Bindung an mehrere oder alle passenden Interfaces anzeigen.
  • Recv-Q beschreibt ungelesene eingegangene Daten; Send-Q beschreibt ausstehende Daten im Sendepfad.
  • Dauerhaft hohe Queues sowie wachsende Fehler- und Drop-Zähler verdienen eine Untersuchung.
  • CLOSE_WAIT kann auf nicht sauber geschlossene Sockets in einer Anwendung hinweisen; TIME_WAIT ist bei kurzlebigen Verbindungen oft normal.
  • ss und ip route sind auf aktuellen Linux-Systemen die bevorzugten Alternativen.

Eine kompakte Referenz für dieses Thema findest du unter Netzwerkstatus mit netstat überwachen.