Some of you have seen this in action: You call tech support and they ask that you accept and install a small utility that will be sent within a few seconds. Once running, this utility allows tech support to see your desktop and control your computer. Quickly and efficiently, the support tech opens windows and control panels, adjusts settings, and makes right what once went wrong.
How do they do that? Virtual Network Computing. VNC is an established protocol that allows the host (server) computer— that's you— to be controlled by a guest (viewer)— that's the tech. There are several applications and utilities that can do that. Sacra Blue reviewed NetOp Remote Control in an earlier issue as an example of a comprehensive and secure system.
Unfortunately, host and guest licenses are typically purchased by the seat. And whatever system is implemented by the tech support departments of software and hardware vendors, odds are it cost them a significant chunk of change. But for quick fixes by your friendly SPCUG Answer Guys, here's a free utility that will help us help you fix your ailing system: WinVNC.
WinVNC makes the desktop of a PC available remotely. WinVNC (as well as other derivations of the parent VNC code) runs on Windows 95 or better without the need to add or replace any system files. It is a standard application that can run from the Start menu and be closed down just as easily.
VNC's various incarnations are released under the GNU license scheme. Anyone can create their own custom version based on the parent code, but any derivations must also be released under the GNU license. Essentially, GNU license programs are free.
WinVNC (information, documentation, and downloads at ATT Research, UK) is but one of several ports to other operating systems. Versions of the VNC host also exist for Unix, Mac, and a couple others, and viewers exist for Mac, Unix, Java, WinCE, DOS, OS/2, PalmPilot, Geos, BeOS, and more. RealVNC is a new venture founded and staffed by the original AT&T team who created VNC. The mission of RealVNC is to act as the focal point for open source VNC. For the most part, VNC is hosted by the University of Cambridge, Department of Engineering.
VNC is super-simple. There are no installation issues and communication between computers is over TCP/IP, the basic method of Internet data traffic movement. There are, however, issues that must be addressed when a VNC connection must go through a firewall and/or router. The following suggestions will help you make a successful connection.
If you are the viewer (the guest, invited into someone else's computer), there is really not much you have to do. When you start the VNC Viewer, your firewall will probably throw up an alert window announcing that VNC is attempting to send outgoing traffic. All you have to do is allow it, either temporarily or permanently. Your router should already be set up to track the private LAN IP address to the public IP address and manage the port.
If you are the server (the host, inviting someone else into your computer), your firewall might throw up two alerts. Allow both, either temporarily or permanently. The viewer is the half that first interrogates the server. Therefore, for your router to deliver the viewer's requests, you will have to "port forward" (aka "port redirect") from the public DSL/Cable address to the private IP address (e.g., 192.168.0.X). Consult your router's documentation to set that up.
VNC also can also start in reverse mode where the viewer (guest) is listening for invitations by servers (hosts). Servers can start as a "service," an aspect of remote control beyond the scope of this article. WinVNC transmits data unencrypted, but survives being wrapped in SSH and VPN layers.
With a few exceptions, what the viewer sees is exactly what appears on the server's desktop. In order to minimize the overhead, the server can turn off certain desktop properties— the background wallpaper can be eliminated and any changes to inactive windows can be ignored. The server can disallow control by the viewer, disallow any connection attempts by any viewers, and restrict access via password protection.
As with any networking application, VNC is most usable when both machines are networked to broadband connections. A modem connection causes the viewer to seriously lag behind the server's screen display updates.
 |
| A VNC Daisy-Chain |
| Click the thumbnail for full image. (54K) |
The machine acting as guest can have several viewers open at once. You can even have a daisy-chain: The screenshot shows the desktop of PEER4 being viewed by PEER2, in turn being viewed by PEER5. A server can only communicate with one viewer with controls enabled. Any other viewer that wishes to control the server will cause that server to disengage the prior viewer's connection— like tossing one guest out of the house when another wants in. I'm not sure how one prevents that automatic switch-over.
A particular derivation of the base VNC code is "TightVNC," an enhanced version optimized to work over slow connections such as low-speed modem. With TightVNC, you can work remotely almost in real time in most environments. Besides bandwidth optimizations, such as JPEG compression of the desktop, TightVNC also includes many other improvements, optimizations and bug fixes over standard VNC. As mentioned above, the GNU license requires that TightVNC also be free. There are ports for several operating systems, it is cross-platform and compatible with the standard VNC.
RealVNC (WinVNC is the name given to the Windows-specific version) is small and quick to install. There is nothing inherent about it that will cause your system to be any more unstable and prone to crash than it is already. I urge all SPCUG members and the general public we serve to consider installing VCN. The motto of the Sacramento PC Users Group is, "Computer Users Helping Computer Users." Help us help you through this invaluable utility.