Suche nach Befehl zum Anzeigen der Netzwerknutzung unter macOS

ifconfigkann unter Linux verwendet werden, um über das Netzwerk übertragene Bytes in jeder Schnittstelle wie folgt zu überprüfen:

eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:05  
          inet addr:172.17.0.5  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20782 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16290 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:28527924 (28.5 MB)  TX bytes:1386216 (1.3 MB)

die RX-Bytes und TX-Bytes zeigen die aktuellen Daten, die in der eth0Schnittstelle übertragen werden. Auf dem Mac werden diese Informationen jedoch ifconfignicht für mich angezeigt.

Gibt es einen entsprechenden Befehl auf dem Mac? Ich suche nach einem nativen Befehl, ohne eine Bibliothek von Drittanbietern zu installieren.

Antworten (1)

Absolut gibt es.
Ich wollte die GUI-Alternative über die Registerkarte „Info“ des Netzwerkdienstprogramms oder das Option+ Clickauf das WLAN-Symbol in der Menüleiste vorschlagen, um aktuelle Statistiken anzuzeigen. Eine Reihe einfach zu befolgender Schritte, die in diesem Artikel gut dokumentiert sind .

Sie fragen jedoch nach einem "nativen Befehl" und interessieren sich daher für Folgendes:

  • Befehl: netstat -i: enthält Incomingund OutgoingPakete (nur ein anderer Name für RXund TX). Standardmäßig gibt jede Schnittstelle ihre Daten zurück, aber Sie können sie einfach eingrenzen, indem Sie entweder netstat -i | grep en0.
  • Befehl: netstat -I en1(beachten Sie das Großbuchstaben- -IFlag) erzeugt eine Ausgabe nur für die angegebene Schnittstelle (hier en0). Dies ist ein direkterer Ansatz, der keine weitere Filterung wie die grepobige Operation erfordert.

Lassen Sie mich wissen, wenn Sie mit einer der oben genannten Kombinationen Erfolg haben oder wenn Sie etwas nicht verstehen/verfeinern möchten.


Zusätzliche Erklärung
In einem Kommentar erwähnen Sie, dass Sie beim Abfragen der Schnittstelle mit drei Ausgabezeilen sehen netstat -I, und fragen, wie mit diesen Daten umgegangen werden soll. Sie sind alle dieselben Werte, weil sie auf dieselbe Schnittstelle zurückgreifen, nur eine Zeile lesen (normalerweise die erste) und sie nicht alle zusammenzählen, wie Sie vorgeschlagen haben.

Warum?
In der Terminalausgabe beziehen sich diese 3 Zeilen auf dieselbe Schnittstelle, da ihr mehrere Adressen zugeordnet sind. Einfach ausgedrückt ist es so, als würden mehrere Telefonnummern ihre Anrufe an Ihr Mobiltelefon weiterleiten, anstatt an ihrem physischen Standort zu klingeln.

In meinem Fall (auf einem iMac, Abfrage en1) zeigt die Adressspalte der ersten Zeile die MAC-Adresse meiner (Ethernet-) Netzwerkkarte. Welcher wird normalerweise als der zuverlässigste der drei Einträge bezeichnet, da er fest codiert und für die Netzwerkkarte selbst einzigartig ist (daher ändert sich nichts, es sei denn, die physische Einheit wird ersetzt).
Die zweite Zeile ist (zumindest in meinem Fall) mit einer IPv6-Adresse verbunden, während die dritte eine IPv4-Adresse ist. Diese können sich abhängig von Ihrer Netzwerkkonfiguration und Ihrem Standort ändern. Deshalb ist die erste Zeile normalerweise die zuverlässigste von allen. Stellen Sie sich Leitung 1 als Ihr Mobiltelefon vor, an das die Leitungen 2 und 3 die Anrufe weiterleiten - es ist auch der einzige Eintrag mit Fehler- ( Ierrsund Oerrs) Protokollierung.

Warum werden die Fehler nur dort protokolliert?
Betrachten Sie es als direkte Referenz / Verknüpfung. Wenn das alles ist (logische Verbindungen), existieren sie physisch nicht - die einzige physische Schnittstelle ist die MAC-Adresse und somit der einzige Ort, an dem Pakete verifiziert und Fehler angezeigt werden Berichterstattung erfolgen.

Ich hoffe wirklich, das hat Sinn gemacht, ich weiß, du warst gerade nach der Prozedur oben, aber ich dachte, eine kleine Erklärung schadet nicht. Ist das irgendwie hilfreich?

macOS verwendet nicht e,g eth0oder eth1, es verwendet eg en0oder en1usw.
Ich sehe diese Befehlsausgaben Ipktsund Opkts. Meinen sie Input und Output? Ich konnte keine Erklärung von seinem Mann finden.
Es sind eingehende (RX) und ausgehende (TX) Pakete.
Ich meine, die Ausgabe des Befehls hat kein RX oder TX. es hat nur Ipkts und Opkts. Meinst du, diese beiden sind die, die ich mir ansehen muss?
@ZhaoYi Richtig, Sie müssen sich diese Werte ansehen. Wie ich bereits erwähnt habe, Ipktsist es ein Synonym für 'Eingehende Pakete' oder RXwährend Opktses ein Synonym für 'Ausgehende Pakete' oder TX. Beantwortet das Ihre Frage oder haben Sie weiteren Klärungsbedarf?
Wenn ich diesen Befehl auf einer Netzwerkschnittstelle ausführe, "netstat -I en0 , it returns three lines output with different Network", aber dieselben Werte für eingehende und ausgehende. Lese ich nur einen davon oder fasse ich alle drei zusammen?
@ZhaoYi Bitte beachten Sie die Ergänzung zu meinem Beitrag, sie geht etwas detaillierter ein und beantwortet Ihre Frage. Dann lassen Sie mich wissen, ob es für Sie sinnvoll ist.
@ProGrammer Vielen Dank für Ihre ausführliche Erklärung.
@ProGrammer Kennst du die Einheit für Ipkts, byteoder KB? Ich habe eine große Datei aus dem Internet heruntergeladen, aber es scheint, dass sich dieser Wert nicht zu stark verändert hat.
@ZhaoYi Das hängt vom Wert in der MTU- Spalte ab, er ist normalerweise auf 1500 eingestellt. Nach meinem besten Wissen stellt dies die maximale Größe eines einzelnen Pakets dar, da sich die Größe der Pakete unterscheidet und die MTU pro Übertragung angepasst wird , schwer zu sagen. Korrigieren Sie mich, wenn ich falsch liege, aber ich glaube, dass die eingehenden und ausgehenden Größen in Bytes aufgeführt sind. Von dort aus können Sie die übliche Umrechnung in die gewünschte Einheit vornehmen.