I want to monitor each application's network/internet usage on my Mac.

Sort of like how Activity Indicator shows total upload/download usage -- but I also want to know particular application usages.

Is this possible?

migrated from stackoverflow.com Jul 6 '11 at 10:43

This question came from our site for professional and enthusiast programmers.

  • 1
    @koiyu What do you need that the existing answers don't provide? – Kyle Cronin Apr 1 '12 at 19:14
  • @KyleCronin It's not that the existing answers wouldn't work – I was merely interested if there were more alternatives. – Jari Keinänen Apr 8 '12 at 12:01

Another app I've used is RubbertNet. Also not free, but has a free trial available.


The app Little Snitch can do this. Among many other things, it shows traffic by app.

It costs $29, but there is a free trial available.


A combination of

HandsOff! and SurplusMeter

is my current solution. HandsOff is an advanced firewall which similar to LittleSnitch. It's not free, but a trial version is available. Surplusmeter on the other hand is free and open source.

Among the features which you need for monitoring network usage are:

  • monitoring network activity of every process (HandsOff!)
  • get the network usage of individual processes (HandsOff!)
  • log total network usage (SurplusMeter)

HandOff does only display the network usage since boot. It does not log the data which is why I need SurplusMeter. However, SurplusMeter only logs the total network usage for all applications.

enter image description here enter image description here

  • Sadly SurplusMeter has been discontinued :( – clami219 Sep 4 '15 at 15:58

You could look at WireShark. It may have a daunting interface, but once you learn it, you can track traffic by port.

You can also check out the built-in terminal utilities NetStat, TCPDump and PCap.

Using netstat -t -u will display the send and receive queue by process name.


If you are using iOS 5+ you can use the remote virtual interface

$ # 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

You should be able to use wireshark or tcpdump, or ngrep on the problem, via the mac.

EDIT: ipfw is deprecated, but you can just turn on logging and see which packets go where. I don't know how to do that with pf :(

EDIT: I don't know why I thought this was for iOS. Apologies

  • 1
    Truly interesting—but won't help me monitor the network usage of an OS X app on OS X. – Jari Keinänen Apr 8 '12 at 12:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .