Remote Control applications




TeamViewer is free for non-commercial use. The customer downloads the QuickSupport server which displays an ID and password, and the support person downloads the TeamViewer client before typing the ID and password provided by the customer. Both applications connect out through TCP80 to TeamViewer's servers, which act as a repeater between the two hosts.

Note: Ports 80 and 5938 are used by default for TeamViewer's DirectIn -feature, which enables faster connection openings by trying to configure a NAT route automatically by using UPnP. You can disable the DirectIn performance optimizations from TeamViewer's options menu in Extras -> Options -> Advanced -> Show advanced options and by unchecking the "Enable DirectIn Performance optimization".


One of the open source derivatives from the venerable VNC, and available here. What makes VNC stand out from other remote control softwares, is that, in case a NAT router stands in front of the server, you can have the server connect out to the client; Typically, other remote control softwares require opening a TCP port on the server's router, which just isn't possible most of the time. If you need help, a forum is available.

As of June 2007, here's the gist of what UltraVNC is and can do for you:

The server, winvnc.exe, can either be run as is with no other file required, be installed using an installer, or be ran with some of its files through the SingleClick option. For help desk support, SingleClick is the recommended solution, as the user simply downloads and runs an EXE that will connect out to support's viewer, ie. there's no need to run an installer and specify the viewer's IP or hostname.

The server listens on either TCP5900 (standard mode), or TCP5800 (embedded Java web server, so the viewer can connect to out with a regular web browser)

The viewer, vncviewer.exe can either connect out to the server listening on TCP5900, or be launched in listening mode so that it waits for an incoming connection from the server on TCP5500. Once the two hosts are connected, the viewer can drive the server

When used on a LAN, you can get higher performance by installing a video driver (a.k.a. "video hook driver", or "mirror driver") on the server. It is available for W2K and XP; For 9x hosts, you'll install hookdll and ddi. Is performance also higher when used over a WAN connection?


As explained, there are different ways to the server and viewer to be connected, depending on whether the server waits for incoming viewer connections, and whether there's a NAT router standing in front of the server (and the viewer):


Building and Using the SingleClick server

Note: SC doesn't work well with Vista. Use PcHelpware instead (see below)

Here's how to build a basic, no-thrill SingleClick server that will connect out to your viewer with no effort by the user other than downloading and running the SC EXE:

  1. Launch your favorite text editor, and copy/paste the following text (comments start with --; Unused sections must be present and left empty)

    Support Acme

    Support Person #1
    -connect -noregistry
    -- support #1

    Support Person #2
    -connect -noregistry
    -- support #2

    -- Important : leave an empty line after each unused section




    Double-click to connect

    Support Acme

  2. Save this file as helpdesk.txt, and zip it as a unique file name (important! Otherwise, it might be replaced with someone else's file on the UVNC server in the next step)
  3. Aim your browser to UltraVNC's Online Creator, upload your zip file...
  4. ... and download the compiled EXE that you'll provide to customers. Note: This EXE is actually a self-decompressing ZIP file (just change the extension from EXE to ZIP) that contains vnchooks.dll, msrc4plugin.dsm, winvnc.exe, icon1.ico, and your helpdesk.txt

More information on building a custom SC:

Building and Using the PcHelpware server

June 2009: UVNC Server is supposed to work OK on Vista, and could be used when building a SingleClick server.

PcHelpware is a rewrite of the UltraVNC server to replace the SingleClick server. Its protocol is incompatible with UltraVNC, so provides its own server and viewer. A step-by-step document is available here.

Here's a breakdown of what the PCHW zip file contains:

As of Feb 2009, a PCHW server can show a login/password screen (that the user can fill out, or can has its fields greyed out), or connect out silently to a viewer.

Here's how to build a server that shows the login/password fields greyed out:

  1. Launch PcHelpWare_viewer.exe
  2. Fill the login/password settings, and port (5500)
  3. Click on Save, followed by Create Server
  4. When prompted, click either on Yes (to prompt the user for the password), or No (to have this field greyed out)
  5. The output server can be found under "myservers\" in a sub-directory named after the login that you chose above

Here's how to build a server that tries to connect out directly, without showing the login/password screen:

  1. Launch PcHelpWare_viewer.exe, and create the EXE per the instructions above
  2. Go to the sub-directory "create_server\custom"
  3. Edit its helpdesk.txt to add the "-direct" option
  4. Go up one level to the parent sub-directory "create_server", and launch Create.bat to create a new EXE
  5. The output PcHelpWare_server.exe with the -direct switch can be found in \myservers

Confusingly, PcHelpWare_viewer.exe is used both to create a server, and to run as the viewer to wait for incoming connections from the server.

To run this application as viewer, select a server configuration in the list on the right (eg. test.phw), and click on Start.

A couple of tricks to increase performance under Vista:


It's pretty slow even on a 100Mbps LAN. What about WAN performance?

Let the server with default settings ("System HookDLL" checked, and "Video hook driver" unchecked).

Can I launch VNCVIEWER.EXE in /listen mode at boot time?

... besides creating a batch file and include it in either the Registry's Run section, or the user's Start folder?

What are SingleClick II and III?

"UltraVnc SCII is the version that can be found with the online creator. SC III is a Single click version that make use of the repeater in mode (III). SCIII require a repeater(SSL),  a special viewer(SSL) or a Java(SSL) viewer."

How to build my own server install?

Either run the standard server installer in unattended mode, or build my own installer; Must run "setupdrv.exe install" to install mirror driver

Does the video driver...

Why not use UDP and STUN?

Generally speaking, why have the client connect to the server, instead of the server connecting out, and why use TCP instead of UDP?

Why does the viewer listen on both TCP 5500 and TCP 5400?

TCP 5400 is legacy code. More information here.

When launching the server in outoing mode, "No existing instance of WinVNC could be contacted"?

Server and viewer on same host

When distributing the server myself, what files do I need besides winvnc.exe, if any?

As options...

Depending on the language you've chosen, you can get one off several

How to launch the server and connect to a remote listening client automatically?

Here's how to avoid having a customer launch the WinVNC server on his side, and then select "Add new client" to connect out to your VNC client running in listen mode (put this in a batch file):

winvnc -run
rem VNC client running on host, and listening on the non standard port TCP 5503
winvnc -connect

What is the difference between the repeater and the VNC Reflector?

You run vnc_repeater.exe on a host that is already running the VNC server, and from there, you can drive other servers.


TightVNC . Open-source derivative from VNC; Offers better performance (although I haven't used it over a 33.6Kbps connection yet); Supports hosts located behind a firewall thanks to the viewer's ability to run in listening mode (ie. the customer launches an outgoing connection to your computer so you can drive it.)

You have to turn off the "tight" protocol in your client or it will actually be slower (trying to compress what's already compressed).

Installing the managed host

We will install the server part, ie. the one that needs to be installed on the customer's host. If the host is hidden behind a firewall and uses a private IP address, thus making the host unaccessible directly, we will also add a client connection, ie. tell VNC to launch an outgoing connection to your host so you can drive the customer's host:

  1. Download and run the TightVNC server (actually the EXE and DLL that I got from Joel's site, and combined into a single EXE thanks to PEBundle)
  2. Right-click on the VNC icon in the taskbar, and select Add Client
  3. Input the hostname or IP address of the remote computer that will drive this computer

Installing the driver host

  1. Download the VNC viewer (ie. client) from here, open a DOS box, and run it in listening mode with "vncviewer.exe /install". You can view the available switches using "vncviewer.exe /?"
  2. Wait for the customer to connect to the viewer, and work their computer once it's connected to you







A little-known feature is that VNC comes with a web server, which, once launched, gives you access to the user's host through a web browser, eg., where is the drivee's address.

If the drivee is located behind a firewall, VNC supports so-called listening mode, ie. the drivee host will connect to the driver host instead of the other way around.

VNC Reflector


NetSupport Manager

Windows Terminal Services client/RDP

Moved here

Remote Admin

Doesn't seem to allow the server to connect out, so customers must open their firewall and forward connections to the server you wish to manage.

Users say:


DameWare MiniRemote


Vector Networks Remote Control

NetOp Remote

eGain Control

Windows XP Pro

Ships with a built-in remote control package: Remote Desktop and Remote Assistance, but can only be used to drive XP and W2K Server hosts.

Lotus SameTime

Using SSH

By Marty: "I'd separate the firewall issue from the remote control issue by having the customer's machine instantiate an ssh connection to a server at Fog Creek, with a remote port forward.

The remote port forward essentially works like this:  Connect from machine A to machine B using TCP, listen for TCP connections on machine B port X, and forward all those connections through the secure tunnel to machine A port Y.

You could then use VNC or a variety of other TCP-based remote control tools through this tunnel.  The server at Fog Creek just needs to run an ssh daemon, which is quite easy to set up.

An example command line for ssh would be "ssh -R 1234:".  This forwards connections to port 1234 on to port 5900 (vnc default) on the customer's machine. can be configured to only accept connections on port 22 (ssh) from the outside, so only Fog Creek employees could connect to port 1234 and ultimately the customer's computer.

If you want to experiment with the tunnelling, I suggest you try putty and plink, both available at "


Web-based remote control application

Back Orifice 2000

ExpertCity's GotoMyPC

Citrix Online's GoToAssist

MS NetMeeting



A user says: "I have used WebEx from the customer end, and I really was impressed.  We have a firewall and there was no problem getting connected.  Especially important to me is that I was in control of the process; the connection was initiated and broken from MY end."

Joel answers: "I actually tried Webex and literally could not get the client to set up on my machine. Combined with the per-minute billing, I gave up on this idea, but I know many other people are using it happily."

"Just wanted to offer another vote for WebEx. It's expensive, but very, very good"


Timbuktu Pro


Laplink Gold

Symantec PCAnywhere


Remotely Possible

Remotely Anywhere

Remote Task Manager


Funk Software Remote Control

To check

Currently we implement this in VB6 with an IE Web control that hosts the VNC Java viewer.  However, in order to use the "session recording" feature of the java viewer, we would have to sign the java applet because it needs access to the local file system.