Skip to main content

WIE MAN: So verwenden Sie den Netstat-Befehl auf einem Mac - 2021

The Complete Linux Course: Beginner to Power User! (Januar 2021).

Anonim

Der Befehl netstat unter macOS ist ein Terminalbefehl, mit dem detaillierte Informationen zur Netzwerkkommunikation Ihres Mac angezeigt werden. Die Netzwerkkommunikation umfasst alle Möglichkeiten, mit denen Ihr Mac über alle Anschlüsse und Anwendungen mit der Außenwelt kommuniziert. Nachdem sie netstat beherrscht haben, können Mac-Benutzer schnell erkennen, welche Verbindungen ihr Computer herstellt und warum.

Netstat ausführen

Der Befehl netstat ist standardmäßig auf Macs verfügbar. Es muss nicht heruntergeladen oder installiert werden.

Um netstat auszuführen, öffnen Sie ein Terminalfenster. Wenn Sie mit Terminal nicht vertraut sind, finden Sie es unter /Applications/Utilities/Terminal.app. Art netstat und drücken Sie die Eingabetaste, um den Befehl auszuführen.

Sie werden feststellen, dass eine große Menge an kryptischem Text auf Ihrem Bildschirm durchläuft. Das ist normal und erwartet. Ohne zusätzliche Optionen meldet netstat alle aktiven Netzwerkverbindungen auf Ihrem Mac. In Anbetracht der Anzahl der Funktionen, die ein modernes Netzwerkgerät ausführt, können Sie mit einer längeren Liste rechnen. Ein Standard-Netstat-Bericht kann weit über 1000 Zeilen umfassen.

Das Filtern der Netstat-Ausgabe ist wichtig, um zu verstehen, was auf den aktiven Ports Ihres Mac geschieht. Sie können die Ausgabe von netstat mit den integrierten Flags filtern. Mit diesen Flags können Sie Optionen festlegen, um den Umfang und die Ausgabe von netstat einzuschränken.

Netstat-Flags und -Optionen

Um alle verfügbaren Optionen von netstat anzuzeigen, geben Sie an der Eingabeaufforderung man netstat ein. Daraufhin wird die Manpage von netstat angezeigt. Sie können auch eine Online-Version der netstat-Manpage anzeigen.

netstat -AabdgiLlmnqrRsSvWx -c Warteschlange -f address_family -ICH Schnittstelle -p Protokoll -w warten

Netstat unter macOS funktioniert nicht genauso wie netstat unter Windows oder netstat unter Linux. Die Verwendung von Flags oder Syntax dieser Implementierungen von netstat führt möglicherweise nicht zu dem erwarteten Verhalten.

Spitze: Wenn die obige Abkürzung völlig unverständlich erscheint, lernen Sie, die Befehlssyntax zu lesen.

-r Zeigt die Routingtabelle an, die zeigt, wie Pakete im Netzwerk weitergeleitet werden.

-p Protokoll listet den mit einem bestimmten Netzwerkprotokoll verknüpften Verkehr auf. Die vollständige Liste der Protokolle finden Sie unter / etc / protocols. Die wichtigsten Protokolle sind udp und tcp.

-v erhöht die Ausführlichkeit, insbesondere durch Hinzufügen einer Spalte mit der Prozess-ID (PID), die jedem offenen Port zugeordnet ist.

-ICH Schnittstelle stellt Paketdaten für die angegebene Schnittstelle bereit. Alle verfügbaren Schnittstellen können mit der Markierung -i angezeigt werden, normalerweise ist jedoch en0 die ausgehende Netzwerkschnittstelle. Beachten Sie den Kleinbuchstaben.

-G Zeigt Informationen zu Multicast-Verbindungen an.

-s Zeigt die Netzwerkstatistik für alle Protokolle an, unabhängig davon, ob sie aktiv sind oder nicht.

-n unterdrückt die Beschriftung von Remote-Adressen mit Namen. Dadurch wird die Ausgabe von netstat erheblich beschleunigt, während nur begrenzte Informationen geopfert werden.

-ein fügt Serverports in die Ausgabe von netstat ein, die nicht in der Standardausgabe enthalten sind.

Netstat-Beispiele

Um unser Verständnis in die Praxis umzusetzen, betrachten wir einige Netstat-Beispiele.

netstat -apv TCP

Dieser Befehl gibt nur TCP-Verbindungen auf Ihrem Mac zurück, einschließlich offener Ports und aktiver Ports. Es wird auch eine ausführliche Ausgabe verwenden, in der die PIDs aufgelistet werden, die jeder Verbindung zugeordnet sind.

netstat -a | grep -i "hören"

Diese Kombination aus Netstat und Grep zeigt die offenen Ports auf Ihrem Mac. Offene Ports sind Ports, die auf eine Nachricht warten. Wenn Sie mit der Syntax nicht vertraut sind, das Pipe-Zeichen | wird verwendet, um die Ausgabe eines Befehls an einen anderen Befehl zu senden. Wir geben die Ausgabe von netstat an grep weiter, damit wir nach dem Stichwort "listen" suchen und unsere Ergebnisse finden können.

Zugriff auf netstat über das Netzwerkdienstprogramm

Einige Funktionen von netstat sind nicht nur über die Terminal-Befehlszeilenschnittstelle, sondern auch über die Network Utility-App verfügbar. Diese integrierte macOS-App finden Sie unter / Applications / Utilities / Network Utility.app. Öffnen Sie die App und klicken Sie auf Netstat Registerkarte, um auf die grafische Oberfläche von netstat zuzugreifen.

Die Optionen in Network Utility sind deutlich eingeschränkter als die über die Befehlszeile verfügbaren Optionen. Die vier Optionsschaltflächen führen einfach einen voreingestellten netstat-Befehl aus und zeigen die Ausgabe auf dem Bildschirm unten an.

Die netstat-Befehle für jedes Optionsfeld lauten wie folgt:

  • Zeigt Routing-Tabelleninformationen an führt netstat -r aus
  • Zeigen Sie umfassende Netzwerkstatistiken für jedes Protokoll an führt netstat -s aus
  • Multicast-Informationen anzeigen führt netstat -g aus
  • Zeigt den Status aller aktuellen Socket-Verbindungen an führt netstat aus

Ergänzung von netstat mit lsof

Tatsache ist, dass die macOS-Implementierung von netstat nicht viel von der Funktionalität umfasst, die Benutzer erwarten und benötigen. Netstat ist zwar unter MacOS nicht so nützlich wie unter Windows. Ein anderer Befehl, lsof, kann einen Großteil der fehlenden Funktionen ersetzen.

lsof zeigt alle Dateien an, die derzeit von Apps geöffnet werden. Dies kann auch zur Überprüfung offener Ports verwendet werden, die mit Apps verbunden sind. Wenn Sie lsof -i ausführen, wird eine Liste aller Anwendungen angezeigt, die über das Internet kommunizieren. Dies ist normalerweise das Ziel, wenn netstat auf Windows-Computern verwendet wird. Die einzig sinnvolle Möglichkeit, diese Aufgabe unter macOS zu erledigen, ist jedoch nicht mit netstat, sondern mit lsof.

Das Anzeigen jeder einzelnen geöffneten Datei oder Internetverbindung ist oft überwältigend.Aus diesem Grund enthält lsof eine Reihe von Flags zur Einschränkung der Ergebnisse mit bestimmten Kriterien. Es gibt viele nützliche Flags, die das Dienstprogramm des Befehls erweitern. Die wichtigsten sind unten. Weitere Informationen, einschließlich weiterer Flaggen und technischer Erklärungen zur Implementierung der einzelnen Flaggen, finden Sie in der Manpage von lsof Mann lsof an einer Terminal-Eingabeaufforderung.

lsof Flags und Optionen

-ich Zeigt alle offenen Netzwerkverbindungen und den Namen des Prozesses an, der die Verbindung verwendet. Hinzufügen einer 4 wie in -i4, zeigt nur IPv4-Verbindungen an. Stattdessen eine 6 hinzufügen (-i6) zeigt nur IPv6-Verbindungen an.

Das -ich Das Flag kann auch erweitert werden, um weitere Details anzugeben. -iTCP oder -iUDP geben nur TCP- und UDP-Verbindungen zurück. -iTCP: 25 gibt TCP-Verbindungen nur an Port 25 zurück. Ein Portbereich kann mit einem Bindestrich angegeben werden, da -iTCP: 25-50.

Bei Verwendung von [[email protected]] werden nur Verbindungen an die IPv4-Adresse 1.2.3.4 zurückgegeben. IPv6-Adressen können auf dieselbe Weise angegeben werden. Der @ -Vorläufer kann auch verwendet werden, um Hostnamen auf dieselbe Weise anzugeben, jedoch können sowohl Remote-IP-Adressen als auch Hostnamen nicht gleichzeitig verwendet werden.

-s zwingt lsof normalerweise zur Anzeige der Dateigröße. Aber wenn mit dem gepaart -ich Flagge, -s funktioniert anders. Stattdessen kann der Benutzer das Protokoll und den Status angeben, die der Befehl zurückgeben soll.

-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 die PID 456 ausdrücklich ausschließen würde.

-P Deaktiviert die Umwandlung 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 Nutzer gibt nur Befehle zurück, die dem benannten Benutzer gehören.

lsof Beispiele

Wie netstat wird es hilfreich sein, einige Beispiele von lsof zu sehen.

lsof -nP [[email protected]]: 513

Dieser komplex aussehende Befehl listet alle TCP-Verbindungen mit dem Hostnamen auf lsof.itap und der Hafen 513. Lsof wird auch ohne Verbindung von Namen zu IP-Adressen und -Ports ausgeführt, wodurch der Befehl merklich schneller ausgeführt wird.

lsof -iTCP -sTCP: HÖREN

Dadurch wird jede TCP-Verbindung mit dem Status zurückgegeben HÖR MAL ZU. Hier werden alle offenen TCP-Ports auf Ihrem Mac angezeigt. Es listet auch die Prozesse auf, die diesen offenen Ports zugeordnet sind. Dies ist ein erhebliches Upgrade gegenüber netstat, das höchstens PIDs enthält.

sudo lsof -i -u ^ $ (whoami)

Gibt alle Verbindungen zurück nicht im Besitz des aktuell angemeldeten Benutzers. Dieser Befehl unterscheidet sich ein wenig von den anderen, daher werden wir ihn im Detail aufschlüsseln.

Das Caret ^ wird für die Negation verwendet. Alles, was mit dem Text nach dem Caret übereinstimmt, wird aus den Ergebnissen entfernt. Wir erhalten den Namen des aktuell angemeldeten Benutzers durch Ausführen Wer bin ich innerhalb des Befehls lsof, umgeben von $() lsof auf seine Ausgabe als Text zugreifen lassen. Wenn Sie Sudo verwenden, können Sie Aufgaben sehen, die nicht Ihnen 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.