Der Befehl netstat ist ein wesentliches Werkzeug für die Netzwerkverwaltung. Sie zeigt Informationen zum Linux-Netzwerk-Subsystem einschließlich Daten zu offenen Netzwerkverbindungen, Routing-Tabellen und Statistiken zu den installierten Netzwerkschnittstellen an.

Der einfachste Befehl netstat ist nur, um das Werkzeug ohne Parameter auszuführen:

 Netstat 

Dadurch wird eine Liste der aktuellen offenen Verbindungen auf Ihrem Computer angezeigt. Die Ergebnisse können jedoch ein wenig unhandlich sein. Es ist daher besser, die Verbindungen nach Typ aufzuteilen. Verwenden Sie Folgendes, um alle offenen TCP-Verbindungen aufzulisten:

 netstat -t 

Das Ergebnis ist eine Liste der aktuellen Verbindungen zu Ihrem Computer. Im obigen Beispiel können Sie sehen, dass mein Testgerät einen SSH-Server ausführt und dass es etablierte SSH-Verbindungen gibt.

Beachten Sie die Zeile " Aktive Internetverbindung (ohne Server) ". Der letzte Teil bedeutet, dass netstat keine Liste von Servern enthält, die auf Ihrem Computer laufen. mit anderen Worten, es listet keine Programme auf, die auf TCP-Verbindungen warten, aber derzeit keine eingerichtet haben.

Um eine Liste der aktiven TCP-Verbindungen und eine Liste der Ports zu erhalten, die auf TCP-Verbindungen warten, fügen Sie das Flag -a :

 netstat -at 

Das -a steht für ALL und fügt den Satz von Listenports hinzu. Wenn Sie in der Liste nachsehen, können Sie sehen, dass mein Linux-Computer auch auf SSH-Verbindungen über IPv6 wartet.

Die gleichen Informationen können auch für UDP generiert werden mit:

 netstat -au 

Das Gegenteil des Flags -a ist das Flag -l, das Netstat die Listening-Ports auflistet, aber die aktiven Verbindungen weglässt.

Um eine Liste der Prozesse anzuzeigen, die offene Verbindungen haben oder auf Verbindungen warten, verwenden Sie das Flag -p :

 sudo netstat -atp 

Sie können -p mit -t für TCP oder -u für UDP verwenden. Beachten Sie auch, dass Sie den Befehl mit sudo ausführen müssen. Das Flag -p erleichtert das Interpretieren der Verbindungsliste. Im obigen Beispiel sehen Sie, dass nicht nur der SSH-Server ausgeführt wird (sshd), sondern dass auf dem Computer ein CUPS-Server zusammen mit dem DNSMasq-Miniserver ausgeführt wird.

Wenn Sie überprüfen müssen, ob ein bestimmter Dienst ausgeführt wird, können Sie netstat in Verbindung mit dem Befehl grep . Bei meinem Test-Setup habe ich beispielsweise einen E-Mail-Server (Postfix) installiert. Um zu überprüfen, dass es läuft, kann ich Folgendes verwenden:

 sudo netstat -ltp | grep smtp 

Das Flag -ltp weist netstat an, nur die TCP-Server -ltp (dh jene Prozesse, die auf Verbindungen -ltp ), und der Befehl grep filtert die Ausgabe, um nur die Zeilen mit der Zeichenfolge "smtp" anzuzeigen. Als Ergebnis sehen wir, dass der Prozess " master "(der Name des Hauptprozesses von Postfix) überwacht IPv4 und IPv6 auf eingehende SMTP-Verbindungen.

netstat ist in der Lage, eine Menge statistischer Informationen über das Netzwerk-Subsystem zu generieren. Probieren Sie die folgenden Befehle aus:

  • netstat -i, um Nutzungsinformationen zu den Netzwerkschnittstellen zu erhalten
  • netstat -ie um erweiterte Nutzungsinformationen zu erhalten
  • netstat -s, um Zusammenfassungsstatistiken für jedes der Netzwerkprotokolle (dh TCP, UDP, ICMP usw.) zu erhalten

Verwenden Sie zum Abrufen der aktuellen Kernel-Routing-Tabelle:

 netstat -rn 

Das Lesen von Routingtabellen erfordert ein geschultes Auge, aber im Wesentlichen zeigt das obige Beispiel, dass die Standardroute (0.0.0.0) für alle anderen Pakete als die für den lokalen Rechner an 192.168.1.254 gesendet wird, was in meinem Testsetup der Fall ist Standardgateway und mein Internet Modem / Router.

Sie können den Befehl ohne das Flag -n ausführen, was bedeutet, dass netstat versucht, die Adressen aufzulösen.

Die netstat man-Seite enthält eine vollständige Liste aller verfügbaren Optionen. Sie können sie lesen mit:

 Mann Netstat 

Wenn Sie Probleme mit den oben genannten Beispielen haben, können Sie gerne eine Frage in den Kommentaren stellen.