Beherrschen des Befehls „netstat“ unter Linux
Der Befehl netstat
ist ein wesentliches Werkzeug für die Netzwerkadministration. Es zeigt Informationen über das Linux-Netzwerksubsystem an, einschließlich Daten zu offenen Netzwerkverbindungen, Routing-Tabellen und Statistiken über die installierten Netzwerkschnittstellen.
Der einfachste Netstat-Befehl besteht darin, das Tool einfach ohne Parameter auszuführen:
netstat
Dadurch wird eine Liste der aktuell offenen Verbindungen auf Ihrem Computer angezeigt. Allerdings können die Ergebnisse etwas unhandlich sein. Daher ist es besser, die Verbindungen nach Typ aufzuschlüsseln. Um alle offenen TCP-Verbindungen aufzulisten, verwenden Sie:
netstat -t
Das Ergebnis ist eine Liste der aktuellen Verbindungen, die zu Ihrem Computer hergestellt werden. Im obigen Beispiel können Sie sehen, dass auf meinem Testcomputer ein SSH-Server läuft und dass bestehende SSH-Verbindungen bestehen.
Beachten Sie die Zeile mit der Aufschrift „Aktive Internetverbindung (ohne Server)“. Der letzte Teil bedeutet, dass netstat keine Liste aller auf Ihrem Computer laufenden Server enthalten hat; Mit anderen Worten, es wurden nicht die Programme aufgelistet, die auf TCP-Verbindungen warten, aber derzeit keine hergestellt haben.
Um eine Liste der aktiven TCP-Verbindungen und eine Liste der Ports zu erhalten, die auf TCP-Verbindungen lauschen, fügen Sie das Flag -a
hinzu:
netstat -at
Das -a
steht für ALL und fügt den Satz der Überwachungsports hinzu. Wenn Sie die Liste durchgehen, 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 dafür sorgt, dass Netstat die Überwachungsports auflistet, aber die aktiven Verbindungen auslä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
sowohl mit -t
für TCP als auch mit -u
für UDP verwenden. Beachten Sie außerdem, dass Sie den Befehl mit sudo
ausführen müssen. Das Flag -p
erleichtert die Interpretation der Verbindungsliste erheblich. Aus dem obigen Beispiel können Sie ersehen, dass nicht nur der SSH-Server (sshd) läuft, sondern dass auf dem Computer neben dem DNSMasq-Miniserver auch ein CUPS-Server läuft.
Wenn Sie überprüfen müssen, ob ein bestimmter Dienst ausgeführt wird, können Sie netstat in Verbindung mit dem Befehl grep
verwenden. Bei meinem Testaufbau habe ich beispielsweise einen E-Mail-Server (Postfix) installiert. Um zu überprüfen, ob es läuft, kann ich Folgendes verwenden:
sudo netstat -ltp | grep smtp
Das Flag -ltp
weist netstat an, nur die TCP-Server aufzulisten (d. h. die Prozesse, die auf Verbindungen warten), und der Befehl grep
filtert die Ausgabe, um nur die Zeilen mit der Zeichenfolge „ anzuzeigen. smtp." Als Ergebnis können wir sehen, dass der Prozess „Master“ (so der Name des Hauptprozesses von Postfix) auf IPv4 und IPv6 auf eingehende SMTP-Verbindungen lauscht.
netstat ist in der Lage, zahlreiche statistische Informationen über das Netzwerksubsystem zu generieren. Probieren Sie die folgenden Befehle aus:
netstat -i
, um Nutzungsinformationen über die Netzwerkschnittstellen abzurufennetstat -ie
, um erweiterte Nutzungsinformationen zu erhaltennetstat -s
, um zusammenfassende Statistiken für jedes der Netzwerkprotokolle (z. B. TCP, UDP, ICMP usw.) zu erhalten.
Um die aktuelle Kernel-Routing-Tabelle abzurufen, verwenden Sie:
netstat -rn
Das Lesen von Routing-Tabellen erfordert ein geschultes Auge, aber das obige Beispiel zeigt im Wesentlichen, dass die Standardroute (0.0.0.0) für alle Pakete außer denen für den lokalen Computer an 192.168.1.254 gesendet wird, was in meinem Testaufbau der ist Standard-Gateway und mein Internetmodem/Router.
Sie können den Befehl ohne das Flag -n
ausführen, was bedeutet, dass Netstat versucht, die Adressen aufzulösen.
Die Netstat-Manpage enthält eine vollständige Liste aller verfügbaren Optionen. Sie können sie lesen mit:
man netstat
Wenn Sie Probleme mit den oben genannten Beispielen haben, können Sie gerne in den Kommentaren unten eine Frage stellen.