Der Befehl netstat in macOS ist ein Terminalbefehl, der detaillierte Informationen zur Netzwerkkommunikation Ihres Computers anzeigt. Die Netzwerkkommunikation umfasst alle Arten der Kommunikation Ihres Mac mit der Außenwelt über alle Ports und alle Anwendungen hinweg. Netstat erobern kann Ihnen helfen, die Verbindungen zu verstehen, die Ihr Computer herstellt, und warum.
Netstat ausführen
Der Befehl netstat ist standardmäßig auf Macs verfügbar. Sie müssen es nicht herunterladen oder installieren.
Öffnen Sie zum Ausführen von netstat ein Terminalfenster unter Anwendungen > Utilities > Terminal. Art netstat und drücken Sie Weiter um den Befehl auszuführen.
Wakila / Getty Images
Auf Ihrem Bildschirm wird eine große Menge Text gescrollt. Wenn Sie keines der verfügbaren Flags verwenden (siehe unten), netstat meldet alle aktiven Netzwerkverbindungen auf Ihrem Mac. Angesichts der Anzahl der Funktionen, die ein modernes Netzwerkgerät ausführt, können Sie davon ausgehen, dass die Liste lang ist. Ein Standardbericht kann weit über 1000 Zeilen umfassen.
Das Filtern der Ausgabe von netstat ist wichtig, um zu verstehen, was an den aktiven Ports Ihres Mac geschieht. Mit den integrierten Flags können Sie Optionen festlegen und den Umfang des Befehls einschränken.
Netstat Flags und Optionen
Geben Sie Folgendes ein, um alle verfügbaren Optionen von netstat anzuzeigen Mann netstat an der Eingabeaufforderung, um die Manpage von netstat anzuzeigen. Sie können auch eine Online-Version der Manpage von netstat anzeigen.
"Mann" ist die Abkürzung für "manuell".
Syntax
Verwenden Sie die folgende Syntax, um netstat Flags und Optionen hinzuzufügen:
netstat [-AabdgiLlmnqrRsSvWx] [-c Warteschlange] [-f Adressfamilie] [-I Schnittstelle] [-p Protokoll] [-w Wartezeit]
Netstat unter macOS funktioniert nicht so wie netstat unter Windows und Linux. Die Verwendung von Flags oder Syntax aus diesen Implementierungen von netstat führt möglicherweise nicht zum erwarteten Verhalten.
Wenn die obige Kurzform völlig unverständlich erscheint, lernen Sie, wie Sie die Befehlssyntax lesen.
Nützliche Flaggen
Hier sind einige der am häufigsten verwendeten Flags:
- -a Enthält Server-Ports in der Ausgabe von netstat, die nicht in der Standardausgabe enthalten sind.
- -g Zeigt Informationen zu Multicast-Verbindungen an.
- -I Schnittstelle stellt Paketdaten für die angegebene Schnittstelle bereit. Alle verfügbaren Schnittstellen können mit dem angezeigt werden -i Flagge, aber en0 ist normalerweise die standardmäßige ausgehende Netzwerkschnittstelle. (Beachten Sie den Kleinbuchstaben.)
- -n unterdrückt die Beschriftung von entfernten Adressen mit Namen. Dies beschleunigt die Ausgabe von netstat erheblich und opfert nur begrenzte Informationen.
- -p Protokoll listet den Verkehr auf, der einem bestimmten Netzwerkprotokoll zugeordnet ist. Die vollständige Liste der Protokolle finden Sie unter / etc / Protokolle, aber die wichtigsten sind UDP und TCP.
- -r Zeigt die Routing-Tabelle an und zeigt, wie Pakete im Netzwerk weitergeleitet werden.
- -s Zeigt die Netzwerkstatistik für alle Protokolle an, unabhängig davon, ob sie aktiv sind oder nicht.
- -v Erhöht die Ausführlichkeit, insbesondere durch Hinzufügen einer Spalte mit der Prozess-ID (PID), die jedem offenen Port zugeordnet ist.
Netstat-Beispiele
Betrachten Sie diese Beispiele:
netstat -apv TCP
Dieser Befehl gibt nur TCP-Verbindungen auf Ihrem Mac zurück, einschließlich offener und aktiver Ports. Außerdem wird eine ausführliche Ausgabe verwendet, in der die jeder Verbindung zugeordneten PIDs aufgelistet sind.
netstat -a | grep -i "hör zu"
Diese Kombination von netstat und grep zeigt offene Ports an - Ports, die auf eine Nachricht warten. Der Pipe-Charakter | sendet die Ausgabe eines Befehls an einen anderen Befehl. Hier ist die Ausgabe von netstat Rohre zu grepSo können Sie nach dem Schlüsselwort "listen" suchen und die Ergebnisse finden.
Zugriff auf Netstat über das Netzwerkdienstprogramm
Sie können auch auf einige von zugreifen netstat's Funktionalität über die Network Utility App unter System > Bibliothek > Kernleistungen > Anwendungen.
Klicken Sie auf die Netstat Registerkarte, um auf die grafische Oberfläche zuzugreifen.
Die Optionen innerhalb des Netzwerkdienstprogramms sind weitaus eingeschränkter als die über die Befehlszeile verfügbaren. Für jede der vier Optionsfelder wird ein voreingestellter Netzstatus ausgeführt Befehl und zeigt die Ausgabe an.
Die netstat-Befehle für jedes Optionsfeld lauten wie folgt:
- Routing-Tabelleninformationen anzeigen läuft netstat -r.
- Zeigen Sie umfassende Netzwerkstatistiken für jedes Protokoll an läuft netstat -s.
- Multicast-Informationen anzeigen läuft netstat -g.
- Zeigt den Status aller aktuellen Socket-Verbindungen an läuft netstat.
Netstat mit Lsof ergänzen
Die macOS-Implementierung von netstat enthält nicht viele der Funktionen, die Benutzer erwarten und benötigen. Obwohl es seine Verwendung hat, ist netstat unter macOS nicht so nützlich wie unter Windows. Ein anderer Befehl, lsof, ersetzt einen Großteil der fehlenden Funktionalität.
Lsof zeigt alle Dateien an, die derzeit in Apps geöffnet sind. Sie können es auch verwenden, um App-verknüpfte offene Ports zu überprüfen. Lauf lsof -iund Sie sehen eine Liste aller Anwendungen, die über das Internet kommunizieren. Dies ist normalerweise das Ziel bei der Verwendung von netstat auf Windows-Computern. Der einzig sinnvolle Weg, diese Aufgabe unter macOS zu erledigen, ist jedoch nicht mit netstat, sondern mit lsof.
Lsof Flags und Optionen
Das Anzeigen jeder einzelnen geöffneten Datei oder Internetverbindung ist normalerweise ausführlich. Aus diesem Grund wird lsof mit Flags geliefert, um die Ergebnisse nach bestimmten Kriterien einzuschränken. Die wichtigsten sind unten.
Informationen zu weiteren Flags und technischen Erklärungen finden Sie in der Manpage von lsof oder auf run Mann lsof an einer Terminal-Eingabeaufforderung.
- -i Zeigt alle offenen Netzwerkverbindungen und den Namen des Prozesses an, der die Verbindung verwendet. Hinzufügen von a 4, Wie in -i4zeigt nur IPv4-Verbindungen an. Hinzufügen von a 6 stattdessen (-i6) zeigt nur IPv6-Verbindungen an.
- Die -i Das Flag kann auch erweitert werden, um weitere Details anzugeben. -iTCP oder -iUDP geben nur TCP- und UDP-Verbindungen zurück. -iTCP: 25 gibt nur TCP-Verbindungen an Port 25 zurück. Eine Reihe von Ports kann mit einem Bindestrich angegeben werden, da -iTCP: 25-50.
- Wenn Sie [email protected] verwenden, werden nur Verbindungen zur IPv4-Adresse 1.2.3.4 zurückgegeben. IPv6-Adressen können auf die gleiche Weise angegeben werden. Der @ -Vorläufer kann auch verwendet werden, um Hostnamen auf dieselbe Weise anzugeben, aber sowohl Remote-IP-Adressen als auch Hostnamen können nicht gleichzeitig verwendet werden.
- -s Erzwingt normalerweise, dass lsof die Dateigröße anzeigt. Aber wenn mit dem gepaart -i Flagge, -s funktioniert anders. Stattdessen kann der Benutzer das Protokoll und den Status für die Rückgabe des Befehls angeben.
- -p beschränkt lsof auf eine bestimmte Prozess-ID (PID). Mehrere PIDs können mithilfe von Commons festgelegt werden, z. B. -p 123,456,789. Prozess-IDs können auch mit einem ^ ausgeschlossen werden, wie in 123, ^ 456, was PID 456 ausdrücklich ausschließen würde.
- -P Deaktiviert die Konvertierung von Portnummern in Portnamen, wodurch die Ausgabe beschleunigt wird.
- -n Deaktiviert die Konvertierung von Netzwerknummern in Hostnamen. Bei Verwendung mit -P oben kann es die Ausgabe von lsof erheblich beschleunigen.
- -u Benutzer gibt nur Befehle zurück, die dem benannten Benutzer gehören.
Beispiele
Hier sind einige Möglichkeiten, lsof zu verwenden.
lsof -nP [email protected]: 513
Dieser komplex aussehende Befehl listet alle TCP-Verbindungen mit dem Hostnamen auf lsof.itap und der Hafen 513. Es wird auch lsof ausgeführt, ohne Namen mit IP-Adressen und Ports zu verbinden, wodurch der Befehl spürbar schneller ausgeführt wird.
lsof -iTCP -sTCP: HÖREN
Dieser Befehl gibt jede TCP-Verbindung mit dem Status zurück LISTENund zeigt alle offenen TCP-Ports auf Ihrem Mac an. Außerdem werden die Prozesse aufgelistet, die diesen offenen Ports zugeordnet sind. Dies ist ein bedeutendes Upgrade netstat, die höchstens PIDs auflistet.
sudo lsof -i -u ^ $ (whoami)
Dieser Befehl gibt alle Verbindungen zurück, die nicht dem aktuell angemeldeten Benutzer gehören.
Das Caret (^) ist für die Verneinung. Die Ergebnisse enthalten nichts, was mit dem Text nach dem Caret übereinstimmt. Sie können den Namen des aktuell angemeldeten Benutzers durch Ausführen abrufen whoami innerhalb der lsof Befehl, umgeben von $ () lassen lsof Zugriff auf die Ausgabe als Text. Wenn Sie mit sudo arbeiten, können Sie Aufgaben sehen, die Ihnen nicht gehören. Wenn Sie diesen Befehl ohne sudo ausführen, wird eine leere Liste zurückgegeben.
Andere Netzwerkbefehle
Andere Terminal-Netzwerkbefehle, die für die Untersuchung Ihres Netzwerks von Interesse sein könnten, sind arp, ping und ipconfig.