Überwachung der Netzwerknutzung einzelner Anwendungen?

Ich möchte die Netzwerk-/Internetnutzung jeder Anwendung auf meinem Mac überwachen.

Ähnlich wie der Aktivitätsindikator die gesamte Upload-/Download-Nutzung anzeigt - aber ich möchte auch bestimmte Anwendungsnutzungen wissen.

Ist das möglich?

@koiyu Was brauchst du, was die vorhandenen Antworten nicht bieten?
@KyleCronin Es ist nicht so, dass die vorhandenen Antworten nicht funktionieren würden - ich war nur daran interessiert, ob es mehr Alternativen gibt.

Antworten (6)

Die App Little Snitch kann das. Neben vielen anderen Dingen zeigt es den Verkehr per App.

Es kostet $29, aber es gibt eine kostenlose Testversion.

Eine andere App, die ich verwendet habe, ist RubbertNet (Site ist nicht verfügbar, verlinkt über archive.org). Auch nicht kostenlos, hat aber eine kostenlose Testversion zur Verfügung.

Eine Kombination aus

Hände weg! und SurplusMeter

ist meine aktuelle Lösung. HandsOff ist eine fortschrittliche Firewall, die LittleSnitch ähnelt. Es ist nicht kostenlos, aber eine Testversion ist verfügbar. Surplusmeter hingegen ist kostenlos und Open Source.

Zu den Funktionen, die Sie für die Überwachung der Netzwerknutzung benötigen, gehören:

  • Überwachung der Netzwerkaktivität jedes Prozesses (HandsOff!)
  • die Netzwerkauslastung einzelner Prozesse abrufen (HandsOff!)
  • gesamte Netzwerknutzung protokollieren (SurplusMeter)

HandOff zeigt nur die Netzwerknutzung seit dem Booten an. Es protokolliert die Daten nicht, weshalb ich SurplusMeter benötige. SurplusMeter protokolliert jedoch nur die gesamte Netzwerknutzung für alle Anwendungen.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

SurplusMeter wurde leider eingestellt :(

Apple enthält eine angepasste Version von tcpdumpals Teil von MacOS/OSX, die die Anzeige/Filterung von Paketerfassungs-Metadateninformationen ermöglicht – die eine Reihe von Elementen enthält (siehe Manpage-Auszug unten) und Prozessinformationen enthält. So könnten Sie es beispielsweise ausführen, um den Datenverkehr nur von Firefox ( -Q proc=firefox) zu erfassen und alle Paket-Metadateninformationen auszudrucken ( -k):

sudo tcpdump -Q proc=firefox -k

Oder Sie könnten es nur mit den Optionen -k ausführen und Daten pro Prozessname/PID extrahieren und analysieren. Weitere Details finden Sie man tcpdumpin den entsprechenden Abschnitten (obwohl es in der Manpage mehr über die PKTAP-Filter gibt):

  -k Control  the  display  of packet metadata via an optional metadata_arg argument.
     This is useful when displaying packet saved in the pcap-ng file format  or  with
     interfaces that support the PKTAP data link type.

     By default, when the metadata_arg optional argument is not specified, any avail-
     able packet metadata information is printed out.

     The metadata_arg argument controls  the  display  of  specific  packet  metadata
     information  using  a  flag  word, where each character corresponds to a type of
     packet metadata as follows:

                 I     interface name (or interface ID)
                 N     process name
                 P     process ID
                 S     service class
                 D     direction
                 C     comment
                 C     flags
                 U     process UUID (not shown by default)
                 A     display all types of metadata

     This is an Apple modification.

   -Q expression
     To  specify a filter expression based on packet metadata information like inter-
     face or process name.  Packet with matching packet metadata will be displayed or
     saved  to  a  file.  See section PACKET METADATA FILTER for the syntax of packet
     metadata filter expressions.  This is an Apple addition.

Du könntest dir WireShark anschauen . Es mag eine entmutigende Oberfläche haben, aber sobald Sie es gelernt haben, können Sie den Datenverkehr nach Port verfolgen.

Sie können auch die integrierten Terminal-Dienstprogramme NetStat , TCPDump und PCap ausprobieren .

Mit netstat -t -uwird die Sende- und Empfangswarteschlange nach Prozessnamen angezeigt.

Wenn Sie iOS 5+ verwenden, können Sie die virtuelle Remote-Schnittstelle verwenden

$ # First get the current list of interfaces.

$ ifconfig -l

lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0

$ # Then run the tool with the UDID of the device.

$ rvictl -s 74bd53c647548234ddcef0ee3abee616005051ed



Starting device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]



$ # Get the list of interfaces again, and you can see the new virtual

$ # network interface, rvi0, added by the previous command.

$ ifconfig -l

lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0 rvi0

Sie sollten in der Lage sein, über den Mac Wireshark oder tcpdump oder ngrep für das Problem zu verwenden.

BEARBEITEN: ipfw ist veraltet, aber Sie können einfach die Protokollierung einschalten und sehen, welche Pakete wohin gehen. Ich weiß nicht, wie das mit pf geht :(

EDIT: Ich weiß nicht, warum ich dachte, das wäre für iOS. Entschuldigung

Wirklich interessant – hilft mir aber nicht dabei, die Netzwerknutzung einer OS X-App unter OS X zu überwachen.