He encontrado muy útil este artículo:
Raymond.CC Blog -
Free and Easy Remote Access with VNC Reverse Connections. He hecho una traducción aproximada, para los que les fatigue leer el idioma de la
pérfida albión:
A veces puede ser muy complicado realizar una conexión vía
VNC para ayudar a un amigo/familiar/cliente, por culpa de todos los routers/NAT/Firewalls implicados. No es fácil porque es necesario enseñarle a tu tío, por ejemplo, a deshabilitar el firewall del windows, el anti-virus, y subir el servicio (Si lo tienes deshabilitado por seguridad). Además, debes haber reconfigurado el router para que deje pasar el trafico VNC hacia el servidor, que le has instalado y configurado previamente.
Demasiados pasos y demasiado complicado cuando lo único que tu tío te estaba preguntando era como enviar una foto de un ornitorrinco por correo electrónico.
La forma normal de establecer una comunicación una conexión remota es la siguiente: El cliente sólo debe saber la direccion IP del servidor. El servidor, por otro lado, simplemente está esperando a que alguien se conecte (normalmente a través de un
router que hace de intermediario). Realizando una
conexión inversa, los papeles se invierten. El servidor solo necesita saber la dirección IP del cliente, y el cliente será el que se quede esperando una solicitud de conexión (también normalmente a través de un
router).
La ventaja de este enfoque es que los ajustes complicados, especialmente la redirección de puertos, las haces tú en tu router; no tu tío en el suyo.
Las instrucciones para realizar una conexión inversa con VNC son las siguientes:
A realizar en tu casa/oficina/tugurio
- Redirige el puerto 5500 en tu router a tu PC. Si tienes problemas en esta parte quiza está pagina te pueda ayudar: PortForward.com - Free Help Setting up Your Router or Firewall.
- Descargar el ejecutable tightvnc-1.2.9_x86_viewer.zip (O su versión más reciente)
- Descomprime el programa vncviewer.exe a tu carpeta favorita
- Abre una ventana de línea de comandos, vete a tu carpeta favorita y escribe vncviewer -listen. Dale al enter. Aparecerá en la barra de tareas un pequeño icono tal que así:

Ya está todo por tu parte. El cliente está en tu ordenador esperando una conexión.
A realizar en casa de tu tio/cliente/amigo
- Descargarse tightvnc-1.2.9_x86.zip (O su versión más reciente). Nótese que este archivo es diferente del anterior.
- Extraer los ficheros WinVNC.exe y VNCHooks.dll a una carpeta.
- Que tu tío ejecute el WinVNC.exe. Debería aparecer una pantalla como la que se muestra a continuación. Introducir una contraseña y pulsar OK.

- Aparecerá un icono en la barra de tareas. Hacer click con el botón derecho del ratón y seleccionar la opción Add New Client.

- Introducir la dirección IP o el nombre de tu router. Al pulsar click, obtendras el control del ordenador remoto.

Al terminar, simplemente haz click en el icono del VNC de tu tío y elige
Close.
Este sistema tiene la ventaja de que, una vez has terminado, no te puedes volver a conectar a no ser que realizes todos los pasos anteriores.
Añadido el 3/mayo/2007
Gracias a un comentario en menéame.org, una explicación usando GNU/Linux (En inglés):
Reverse VNC.
Ver comentarios