[Editor's note: This article was updated 18-Nov-2007 to remove URLs that were out of date and directed users to inappropriate sites. For the latest on VNC and remote control software, consult TidBITS articles on Apple Remote Desktop, Timbuktu Pro, LogMeIn.com, and Leopard's Screen Sharing and Back to My Mac.]
I walked into my office and was flabbergasted. My buddy Mitch, visiting from out of town, had been working at my Mac for a few minutes. When I saw the screen, I did a double-take. On my Mac's screen was a window that showed not the familiar Mac icons, but a Windows NT desktop. It was, in fact, the desktop of Mitch's computer some 350 miles away. Mitch was able to control his computer - running programs, switching between them, mousing around and typing commands - from my Mac. Because my jaw hadn't quite touched the floor yet, he accessed another computer running Linux: an X desktop appeared on the screen. The magic was due to a new tool called Virtual Network Computing (VNC) from ORL, the Olivetti and Oracle Research Lab. VNC is a free program that enables you to control an Internet-connected computer from anywhere else on the Internet.
Remote control software isn't new. Netopia's Timbuktu Pro has long been the standard for Mac users, and additional remote control programs exist for other platforms. The main difference is that VNC is totally free, whereas Timbuktu costs somewhere around $50 per machine.
There are two parts to VNC: the server, which runs on the computer that you want to access remotely; and the client, which creates your window to the remote computer. The server and client computers can be across the room or across an ocean, as long as both have an Internet connection. The server and client computers don't need to be running the same operating system. Server and client software are available for Windows 95/98 and NT, Linux, Solaris, and DEC Alphas. Clients are also available for Macintosh, Java, Windows CE, PalmPilot(!) and a handful of other platforms, some contributed by other programmers. Since there's no Mac server (one is planned but the makers of VNC have not committed to a release date) you can't access your desktop Mac while on the road. The Mac client is a fat binary that requires Mac OS 7.1 or greater, the Thread Manager, and either Open Transport 1.1.1 or later or MacTCP.
VNC servers are protected by passwords, so make them good, because they're all that stands between complete access to that machine and free access by every would-be cracker. In general, when thinking of good passwords, make them relatively long, and use uppercase and lowercase letters, numbers, and punctuation. A hint: try using the first letter in each word of a memorable phrase for your password. "Frosty the snowman was a jolly happy soul" might become "FTSwajhs!" When you connect to a VNC server by entering its IP number, a colon, and a session number (i.e. 127.0.0.1:0), you're prompted for a password, and once you enter it, you're controlling the other machine. VNC is stateless, making it easy to pick up work from just about any other machine with an Internet connection. You can be typing a sentence at your office computer, hop on a plane to Rio, log in with your PowerBook and type the rest of the sentence on the office machine. This assumes, of course, that you've installed the VNC server on your office computer, and that it's turned on and connected to the Internet with a known IP number.
Speed Demons -- Using VNC isn't quite like being there. The chief difference is speed of screen updates. Every time something on the remote computer's screen changes, the VNC server must send that information to the client computer. When it sends lots of screen changes, especially over a slow connection, the result is a sluggish interface. VNC works well with programs that display windows that don't change quickly - word processors, command line windows, even Web browsers work well. But, neither VNC nor other remote control software can keep up with fast-changing screens from games and screensavers.
The speed of the Internet connection of both computers is the biggest factor that affect's VNC's usability. Mitch has been using VNC for months to telecommute. He uses a computer running Linux at home to communicate with his Windows NT machine at work. Over a 28.8 Kbps modem, Mitch calls the system slow, but usable. "It would be painful to work on all the time, but it's great for those times when there is some utility on my computer at work that I just don't have at home. It's certainly better than a one- or two-hour commute."
Over a high bandwidth link like ISDN or my beloved cable modem, VNC is sluggish but bearable. If both computers are on the same Ethernet LAN, access is swift, though screen updates are still perceptibly slower than normal. My home office has two computers, a PC and a Mac, that share one monitor. Rather than switching cables or messing with a fussy monitor switch, I now use VNC to access the PC via from the Mac.
[Editor's note: After upgrading my PC to Windows 98, Timbuktu Pro for Windows 95 1.5 stopped being able to work with Timbuktu Pro for Mac OS 4.0. The only solution, according to Netopia, is to upgrade to Timbuktu Pro 32 for Windows NT and Windows 95/98, but that costs at least $70, just to return to the same level of functionality I had before. I've run into this situation with Timbuktu before, where the only way to get it to work was to buy an upgrade, so Kevin's article arrived at just the right time. I'm now happily using VNC to control my PC instead of Timbuktu Pro, with which I still control my remote Mac servers. -Adam]
The trick to squeezing the speediest screen updates from VNC is to set things up so VNC has to send as little information as possible. This means foregoing desktop pictures in favor of plain color backgrounds, setting the display to 256 colors rather than millions, and using a screensaver only to black the screen.
Not a Perfect Solution -- There's no denying that VNC is a kludge, albeit an elegant one. If you print within a VNC session, it will print - on the remote machine's printer. If you copy something to the clipboard in the VNC window, the program is supposed to copy that information to the clipboard on the client machine, although this doesn't always seem to work with the beta version of the Macintosh client. VNC doesn't make it easy to move information from one computer to another; unlike Timbuktu, it has no file transfer capabilities. The best solution I've found is to mail files from the remote computer to myself at the local one; swapping files back and forth on an FTP server could work equally as well, and perhaps someone could contribute code to integrate an FTP server and client into VNC.
One problem Mac-based remote control software faces is in handing multiple mouse buttons under other operating systems. In Windows, you need to right-click many things for basic functionality. VNC solves this problem by mapping Option-click and Command-click to emulate a two-or three-button mouse. Timbuktu Pro also uses the Command key to simulate the right mouse button in Windows, but VNC seems to simulate right-click and drag actions better. [Plus, if you have a multiple-button mouse or trackball, you can define a second button as Command-click, which works flawlessly in VNC. -Adam]
Finally, VNC lacks some polish. It doesn't remember its window position on your Mac, nor does it remember the IP numbers of machines you control, or enable you to save bookmarks to control specific machines. Occasional video glitches do occur, and rarely certain events like mouse clicks aren't registered the first time. Nonetheless, VNC is an extremely convenient tool that can give you access to an otherwise inaccessible computer. Even better, it does it for free, and that's a winning combination unless you need the additional features offered by a commercial program like Timbuktu Pro.
[Kevin Savetz writes about Macs and the Internet for Computer Shopper, MacAddict and other magazines. An avid collector of vintage computers, Kevin is as likely to be playing with an Atari 800 or Timex-Sinclair as with his Mac.]