Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: My network connection monitor for Mac (radiosilenceapp.com)
146 points by aparadja on Oct 8, 2011 | hide | past | favorite | 77 comments


Bandwidth usage would be nice. This is something that little-snitch doesn't already do and you can't see it in activity monitor as far as I know.

Any chance of right-clik "record traffic to file for X seconds"?

Apple does provide this in Activity Monitor. Click the "Network" tab and you'll see "Data received:" and "Data sent:". It tally's since the last reboot.

It would be nice to have a history feature though. Plus, there's no easy way to ask "How much bandwidth do I have left this payment period before Comcast starts billing me for going over my monthly limit?"

You'd have to tally total bandwidth, and then associate it with an internet connection. You could track internet connections via DNS/public-IP info, and possibly MAC address for WAPs. If you're a laptop user jumping from WAP-to-WAP, it would be nice to know when you're online at home, or in a Starbucks, and differentiate total bandwidth used for each.

To clarify.

Activity monitor does not show a bandwidth usage on a process to process basis.

Since the app in the link is a list of processes and where they are connecting it would be nice to see how much bandwidth each of these connections is using.

Bandwitdh measurement isn't trivial, but it's something I'd very much love to add. Thanks for the input.

nettop in the command line does it (added in Lion), maybe you can scrape it out of there or find the source to it to see how it's done.

Fantastic. Thank you for that.

Beyond bandwidth monitoring on a single machine, a simple snmp monitor would be amazing...

I like the minimalism of this, just a connection monitor, nothing else. Great work!

1 feature request tough: I've installed RadioSilence also, and it would be very handy to be able to drag&drop apps from PrivateEye to RadioSilence to be silenced. Lack of this doesn't stop me from using this, but would make life a bit easier.

Clever, thanks!

Radio Silence already supports drag & drop. Hadn't thought about the option to drag apps out of Private Eye. This just landed on my todo list.

I wonder how it works, i.e. what APIs it is using, etc. Any details?

Question on SO: http://stackoverflow.com/questions/7696890/macosx-how-to-cap...

Answered directly on SO.

It seems like you check for SYN packets, so there is no way to just see the connection currently active. This in my opinion limits the usefulness of the application, it would be cool to see an update that can have a tab for "live" connections and one for the "history". Thanks for the app anyway.

Java network traffic isn't listed. I tried both Minecraft and the Clojure REPL. Nothing.

It would also be useful to see the type of connection, TCP/UDP, port number, etc.

Thanks for the info. I'll look into the Java issue. Wonder if they do something unorthodox with their traffic.

The connection details is something I've pondered about. Port numbers, at least, might be useful. At some point, the user is better served by wireshark anyway. Drawing the line isn't a trivial problem. Any suggestions are appreciated.

Nice looking app! But why distributing it as PKG when it only creates Private Eye.app and com.radiosilenceapp.nke.PrivateEye.plist?

It has to install the plist to /Library and launch the kext after installation. I'm not sure if that can be done just by sharing an .app bundle.

How did VMware Fusion 4 do it though? They just distributed the whole VM as a single .app, with all kexts loads/unload dynamically on launch.

Good question. I honestly have no idea. The kext has to be owned by root:wheel for the system to accept it. Making a pkg installer was the simplest solution I knew of.

Out of curiosity: is there a downside to pkg's?

VMWare and most applications that do this use Authorization Services. It's what pops up the dialog asking you to enter your password. Feels pretty magic to use it.


The downside to packages (in users' minds) is that you have no idea where the pkg is going to install things, and also no idea how to clean it up later.

It's assumed that an .app, however, will remain self-contained.

I believe smcfancontrol installs its kext by demand from inside the Cocoa App. I don't know how it's done (I only do UNIX stuff on my Mac =/) but I believe it changes the .kext owner and invokes kextload. You can 'sudo' from inside a Cocoa App by using AuthorizationExecuteWithPrivileges:


About PKGs: I think that they're okay, but, historically, they're maligned for being "black boxes" that install files all over your system. App files, OTOH, are (99% of the time) clean, live on /Applications, and sometimes use ~/Library.

VMware launches a sudo script to do it's deeds ..

On Lion there is also a new useful shell command called nettop.

Too bad it doesn't want to work on my Snow Leopard system

I agree... Any reason why you don't want to support Snow Leopard?

I would love to support Snow Leopard, and it's something I'll work on next. Lion simply brought some much-needed upgrades to table based UI development, which I wanted to use. It cut down the development time by a significant amount.

Supporting Snow Leopard requires a rewrite for most of the UI logic. I wanted to get the first version out before crossing that bog.

Thanks for explaining, that makes a lot of sense.

BTW: If your firewall works on Snow Leopard and allows me to disable the P2P part of Spotify, I will buy it.

It works on SL, and I've heard people use it to block Spotify. There's a free trial, let me know if it doesn't work for you!

but does it just block the p2p part of spotify, and still permit the login and direct streaming?

If so that's a selling point right there.

Very nice looking program - can certainly see myself using it to keep track of what's going on on my Mac.

One thing I've noticed though, is that it doesn't seem to be catching network activity that's taking place from the command line. I'm running an SSH session, and just tried pinging a server from the terminal and it didn't see either of those. If you can add that as well, then it would be even more useful.

It should notice command line ssh connections (it only logs new connections, not already established ones).

Pings aren't really connections, so it doesn't list them. I understand that it's not perhaps the best choice for it to act this way. Putting this into consideration.

It's probably using some high-level Cocoa network framework, and not kernel-level functionality like netstat does. So my guess is only apps using the same high-level net framework are listed.

Actually, it does use kernel-level connection tracking.

why Lion-only then?

Because of the user interface. It's a dumb issue, but Lion changed the way table views work. Getting from 0 to MVP was about twice as fast with the new Lion features.

It's something I consider improving, though. Fundamentally, the same app should work on 10.6 too.

The bandwidth suggestions are good, but rather than suggest more, I'll just say I really like the way you've laid things out. The UI lets me see data via the angles I'd want to see it.

Thanks! I spent a decent chunk of notebook pages and pen ink to get it the way it currently is. It feels really good to hear someone appreciates the design.

Thanks for sharing! Any chance you share the source on Github?

My plan is to give the software away for free, but keep the distribution somewhat centralized and the source closed. The app is, on a business level, a marketing tool for my Radio Silence firewall. I hope it will drive traffic and links to the site by giving away a complementary product for free.

Sharing the source through github might work against that goal.

Or it might help you reach that goal. Opening up some of your source will give your more advanced customers more confidence in your coding abilities.

The open source approach surely has its benefits. However, I think/guess/believe the free closed-source app has more direct effects on my visitor traffic. Open sourcing the software would probably help me build some kind of personal branding, but it's not a goal I'm actively working for right now. Currently, my priority is to get radiosilenceapp.com more visibility and authority.

2 questions:

1. Why distribute as a pkg instead of a zipped .app or a dmg?

2. Why not put it on MAS?

edit: scratch that, I found the postflight script installing a kext.

Looks awesome - exactly what I've been after to be honest. I'd love you if you could make it work on 10.6 as well...

Ok what's 'helpd' and why does it call Akamai servers?


It's probably checking for updated help files. Apple regularly uses Akamai's CDN.

We do something similar in one of our app, although we also permit the user to block connections it doesn't want to.


this looks useful, so i had a look for the linux equivalent. turns out there's a command line utility called nethogs that does something similar (it shows bandwidth per process, but not addresses). for opensuse you can get it here - http://software.opensuse.org/search?q=nethogs&baseprojec...

another command, iftop, shows connections, but not processes (that's in the standard opensuse repos).

Great app.

One feature request though, it would be very useful to be able to view the complete URL of HTTP connections. God knows how many times I had to setup a local proxy to find out that information.

I think this app works at a lower level though, by intercepting TCP connections. To show you the URL it would have to proxy all the traffic and understand the HTTP protocol.

That's right. Of course, parsing the http requests isn't a monumental task, and it could be done. I'm just not sure whether it's worth it. Wireshark already exists, and I see no reason to compete with it.

I'm on Lion. Installed the app, launched, window comes up but connections are not listed.

Restarted the computer. Connections are still not listed.

Reinstalled as per FAQ. Still not working.

Am I doing something wrong?

No connections come up even if you let the window stay open for a while?

Could you run "kextstat" on the terminal and see if "com.radiosilenceapp.nke.PrivateEye" is listed?

It works for me. Thanks for making this, keep up the good work!

Now if you introduce the option of blocking applications, I'd uninstall LittleSnitch for this.


You can use Radio Silence to block apps. It's on the same domain, and linked in the sidebar and header.

Great, I just bought it. Any chance of incorporating Private Eye into Radio Silence, at least for the purpose of selecting the apps I want to block? Or being able to drag and drop an app from Private Eye into Radio Silence would be enough. It's just that selecting those apps is really painful from the file dialog, especially if they're obnoxious system services like helpd.

You're the second person to suggest that today. It's a great idea, and I'll implement it as soon as I can.

Radio Silence already supports drag & drop. You can drag apps into its window, if you don't like the file dialog.

Private Eye doesn't yet support dragging stuff out of it.

Update: The problem was related to 32 vs 64 bit kernels, and is fixed now. I also received an email confirmation from everyone who reported the issue that it works for them. Thanks!

I'm getting this issue of no connections showing..reinstall didn't help... any ideas? Thanks.

edit: second reinstall seemed to fix it..


Not listed

That is very strange. Did you move the app to a different folder after installation, or something like that?

Also, it might be better to swith to email to debug this. I'm available at contact@radiosilenceapp.com

Firstly, this looks very interesting and from the screenshots seems very impressive.

It doesn't work for me as well (Macbook / Lion 10.7.1). I DON'T see "com.radiosilenceapp.nke.PrivateEye" listed as well. I haven't moved the app to a different folder. Do let us know if this is resolved.

The problem seems to be about kernel architecture compatibility. I'm going through the build settings etc to see if there's some reason this happens. I'll keep this thread updated.

The downloadable package is now updated, and it should support 32 and 64 bit kernels. Please let me know if there are any more problems. Thanks for everyone's patience!

* Edit: I also emailed everyone who had contacted me about this.

Now it works! Thanks :-)

i get the following error in system.log:

com.apple.kextd[10]: Can't load /Applications/Private Eye.app/Contents/Resources/Private Eye.kext - no code for running kernel's architecture.

my MBP is from 2006 so my kernel is still 32-bit

Great work! I really like the nice clean interface.

It would be great if there would be an option to put it in the menu bar and hide it in the dock.

Is there something like this for Windows ? (Especially with ip resolution feature )

Private-Eye sounds like a good entry for Tractup: http://www.tractup.com a site for early product traction. :s

Tractup doesn't support dashes in the url :).

I've just fixed it =) please retry.

I already submitted the base domain, so no worries.

erf I really don't understand why your entry is in the beginning of my table.. I will fix this.


This post seems to not have been appreciated by all. I understand and I apologize for the inconvenience. It have never been my intention to abuse of this method. I will not do it again. Thx.

Why is the whole thing a big flash application?

Well just because I've a ready framework with flash.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact