Can anyone introduce me a Mac OS X application that monitors all network activity such as what applications are now connected to the internet and how much bandwidth they use (I mean show bandwidth separately for each application)?
If you don't want to buy any fancy GUI software, you can try
Use the arrow keys or w or s keys for scrolling. Use
-n option to disable IP address reverse resolution.
Example of an output:
interface state packets in bytes in iTunes.35506 0 0 B tcp6 *.3689<->*.* Listen tcp4 *:3689<->*:* Listen tcp4 *:57929<->*:* Listen Last.fm.35511 0 0 B tcp4 127.0.0.1:33367<->*:* lo0 Listen tcp4 127.0.0.1:32213<->*:* lo0 Listen Spotify.35589 380 227 KiB tcp4 192.168.2.18:57621<->192.168.2.15:52137 en1 Established 194 34 KiB tcp4 *:57621<->*:* Listen tcp4 *:49858<->*:* Listen tcp4 192.168.2.18:58339<->22.214.171.124:4070 en1 Established 186 192 KiB tcp4 127.0.0.1:4371<->*:* lo0 Listen tcp4 127.0.0.1:4381<->*:* lo0 Listen
Pretty awesome right? Best of all,
nettop is embedded in OSX (well at least in Mountain Lion).
Rubbernet looks good.
Rubbernet provides a breakdown of per-app network usage, so you can quickly detect apps that phone home, connect to certain servers without your knowledge, or blame the app that's slowing down your network.
A firewall protects your computer against unwanted guests from the Internet. But who protects your private data from being sent out? Little Snitch does!
Rubbernet is something that does everything you ask for. HOWEVER be warned. It is expensive, and it does not come with the features you'd expect for in basic freeware, let alone an expensive piece of software for monitoring usage. Limitations include:
- loses all measured data when laptop sleeps
- loses all measured data when VPN status changes
- no "total measure" on the summary page: only the individual amounts used per app
In OSX 10.9 simply use the built in Activity Monitor:
If you have some Command Line know how, there are some Unix tools you may be able to take advantage of.
iftop: Won't give you a per application breakdown but it will give you a breakdown by remote host. This means that you can at least see who you're sending information too and how much. It's also installable via DarwinPorts.
nethogs: This one may not run on OS X, though it would be more informative. Unfortunately, it's probably a moot point.
You can also check out this other question for more information: Bandwidth Usage in Linux.
As of version 4, iStat Menus shows the bandwidth usage of the top 5 applications.
I just tried out Little Snitch, having the same basic problem (it seems) as the OP, and having been so disappointed with rubbernet (I weep for my $40).
Little Snitch is exactly what the OP asks for, and has every feature I can dream of in exploring related problems to those implied by the OP's question.
It does report the total bandwidth used by each application individually, and even presents a graph of any selected application or group of applications! Once you realise that you can select one or more rows in the Network Monitor graph, and ask for the collated info of those by presing the info button, it is simple to use. It survives changes of network status seamlessly.
It has a demo that lasts 3 hours, so you can't go wrong.
I think it is the perfect answer to the OP's question.
Hard to use, originally called Ethereal, there's Wireshark.
I never used it myself, but I've tried in the past and it does just about anything.
If you want just to see general bandwidth, use Activity Monitor.