Reverse VNC for Mac OS X

2004-10-29

I've implemented the "reverse connect" features for the Mac OS X VNC server and client programs. If you don't know what VNC is, go read about it here, then come back here if you use Mac OS X.

In normal usage, the VNC viewer connects across the network to the VNC server. If this is across the internet requires that there be a hole in the firewall in front of the server:

Sometimes this firewall hole is difficult to set up. Say you're helping your mother in New York understand her Mac and you want to view and control her screen while talking on the phone. You don't want to talk her through all the steps to punch a hole in her firewall. It is much easier to punch one in yours. For just this occassion, VNC supports "reverse" connections where the VNC server is told to connect across the network to the VNC viewer:

Now the point of all this is that the Mac OS X implementations of VNC didn't support this. So this week I added the reverse connect feature to them. Until the changes are incorporated into these projects, the patches and built binaries are available here:

Server

Original project: OSXvnc
Source Patches: mgl-add-reverse.tgz (16k)
Built Application: OSXvnc.zip (248k)

Viewer

Original project: Chicken of the VNC
Source Patches: mgl-add-reverse.tgz (28k)
Built Application: Chicken of the VNC.zip (368k)

Let me know how it goes...


Update: Some people, working with VNC 4.0 viewer have experienced the viewer shutting down almost immediately after getting the reverse connection. The work around is to start the viewer with "-AutoSelect=0" or "-noauto" depending on your version. You may then need to also explicitly set the pixel depth and/or encoding to get the results you want. See the man page for vncviewer. If that doesn't fix it, let me know.