Conexión Inversa en VNC

El modo de conexión tradicional del VNC es directo, la conexión es iniciada por el cliente (vncviewer) hacia un servidor (vncServer). En este modo se necesita lo siguiente.

Conocer como acceder servidor (Disponer de una IP fija, o una dinámica que conozcamos, o un nombre de dns) y el puerto.

En la realidad, no basta con ejecutar un servidor de vnc para conectarnos alegremente, antes tendremos que considerar varios problemas de red que nos podemos encontrar y que se tratarán en otros post.

En este, lo que nos interesa es analizar el modo de conexión inversa, es decir, un servidor se conecta a un cliente. El cliente es lanzado en modo "Listener" o "Escucha". Esto significa que el cliente se queda esperando a que un servidor le mande la invitación de conexión.

El servidor se lanza normalmente y se usa la opción "add new client" para "conectarlo" al equipo donde ya debe estar lanzado el vncviewer en modo listener. En este caso se necesita solo la IP o el nombre de dominio de la máquina donde se ejecuta el viewer. Este modo de conexión se muestra en la siguiente figura.

image

Al igual que con la conexión directa, podremos tener problemas de conexión por nats o firewalls intermedios.

La siguiente imagen muestra como se configura el cliente. Si lo desea, antes de seleccionar la opción "listening mode", escoja un perfil de conexión "connection profile". Como se mencionó en el post anterior, la selección depende de la distancia de separación y la calidad de los enlaces de red.

image

Cuando ejecuta el cliente en modo listener, aparece en la parte inferior derecha de la pantalla un icono rojo del VNC como se muestra en la siguiente figura.

image

Ahora procedemos con el servidor, lo ejecutamos como siempre y pulsamos el botón derecho sobre el icono del servidor vnc. Seleccionamos la opción "add new client" como se muestra en la siguiente imagen.

image

Tras esta acción, el servidor nos muestra una ventana para que entremos los datos del cliente, observemos que también podríamos ejecutar el vncviewer en otros puertos. Para ello, debe cambiar la configuración por defecto den vncviewer antes de ejecutarlo en modo listener.

image

Una vez entrado este dato y seleccionada la opción OK, si todo está correcto, en el equipo donde se ha ejecutado el vncviewer en modo "listening" o "listener" como le llamo yo, debe aparecer la imagen del servidor.

Eso es todo, muy sencillo de hacer y muy útil, sobretodo para hacer asistencia remota en la cual un cliente tiene instalado el vncserver y nosotros ejecutamos el viewer en modo listener, así, él no necesita configurar su nat ni firewall para nosotros poder acceder a su equipo. Igualmente, no necesita darnos su clave de acceso porque en la conexión inversa la autenticación básica es omitida.

Mas adelante hablaremos de los problemas de red y los modos de solucionarlos, y de otros elementos intermedios que pueden ser usados para realizar conexiones entre clientes y servidores vnc.

Conexión básica a un servidor VNC – Windows

Este manual explica el procedimiento de conexión básica hacia un servidor VNC, para ello lo primero que debemos tener en cuenta es.

1. Tener instalado un cliente vnc

2. Buscar la ruta del programa cliente

3. Tener la dirección de conexión y el puerto.

Si tenemos instalado el software de vnc, en este caso tighvnc, buscamos en Inicio->Todos los programas->tightvnc->Tightvnc viewer y lo ejecutamos.

image

NOTA: Buscar el viewer correspondiente a su instalación.

Al ejecutarlo, el vnc estandar muestra una ventana como la siguiente.

image

Donde dice VNC Server debemos poner la dirección y puerto o display del servidor.   Aqui podemos tener varias condiciones.

1. Que el servidor use el puerto estandar 5900: Si es así, con tener la IP o el nombre de dns es suficiente

2. Que el servidor utilice un puerto diferente o un número display estandar. Por ejemplo, si usa el puerto 5901, la url de conexión podría ser IP_del_server:5901 o simplemente IP_del_servidor:1

3. Que el servidor use un puerto no estandar: En este caso, usamos ‘::’ para indicar el puerto, es decir sería de la forma IP_del_puerto::puerto.

Una vez escrito la ip o nombre de donimio (vncserver.domain.com), seleccione el modo de conexión o profile, estos modos nos permiten seleccionar preconfiguraciones para anchos de banda de consumo de la comunicación bajos, medios o altos.

Normalmente se selecciona low-bandwidth para conexiones entre sitios muy lejanos y high-speed para conexiones de intranet.

Una vez seleccionado el perfil de ancho de banda, haga click en connect y eso es todo.

Listado de productos VNC

El siguiente es un listado de aplicaciones VNC que incluyen cliente y servidor. Se excluyen todos los programas que son solo clientes, reflectores, gestores de conexión, acceso seguro u otros.

Por no decir más, son implementaciones completas cliente y servidor ORIGINALES, con lo cual también se excluyen aplicaciones que usan estos por "debajo" para ofrecer acceso remoto.

 

image

Real VNC

Real VNC fue la primera implementación de VNC y a partir de esta se han implementado otras versiones.

URL: http://www.realvnc.com/

image

Tight VNC

Implementación de VNC que añade un codec de imagen llamado tight que permite disminuir el ancho de banda consumido.

URL: http://www.tightvnc.com/

image

Ultra VNC (uVNC)

Implementación de VNC que añadió inicialmente un potente driver llamado Mirror Driver que mejora sustancialmente la resuesta del VNC

URL: http://www.uvnc.com/

Nota Este listado irá creciendo en la medida que vaya encontrando más

VNC (Virtual Network Computing)

El VNC es la respuesta open source más extendida de las tecnologías de compartición de escritorio y es la base de muchas aplicaciones comerciales y no comerciales para ofrecer soluciones integradas de acceso remoto.

El VNC fue desarrollado en los laboratorios de AT&T en Cambridge y actualmente distribuido por RealVNC, una compañía fundada en el 2002 para desarrollar, mejorar y promocionar comercialmente el VNC.

image

El VNC está basado en el protocolo RFB (Remote Framebuffer) [TRIS 2002]desarrollado en los laboratorios de Olivetty y Oracle (ORL – Olivetty and Oracle Research Laboratory).

RFB es un protocolo simple de acceso a interfaces gráficas de usuario, debido a que trabaja a nivel de framebuffer es aplicable a todos los sistemas de ventanas y aplicaciones incluyendo X11, Windows 3.1/95/98/NT/XP y Macintosh.

Igualmente está diseñado para minimizar el número de peticiones y hacer los clientes sin estado [RICH 1998].

Actualmente, el protocolo está siendo modificado por terceros para introducir características como transferencia de ficheros, mensajería, impresión remota y reproducción de audio. Estas son modificaciones particulares que no hacen parte del estándar.

Igualmente, existen muchos clientes y servidores de VNC muchos de ellos open source o con licencias libres y de pago dependiendo de las capacidades adicionales ofrecidas como seguridad, atención al cliente, gestión de sesiones, etc.

De una manera simple, un entorno VNC se compone de un servidor VNC y un cliente VNC que se conectan vía sockets (puerto 5900 por defecto) y se comunican utilizando el protocolo RFB. Esto es ilustrado en la siguiente figura.

 

image

Las distribuciones tradicionales de VNC traen las dos aplicaciones y solo debemos lanzar la adecuada en cada sitio. Cabe destacar que no es necesario que los equipos tengan los mismos sistemas operativos e incluso, se puede acceder a un servidor desde una pda, un teléfono móvil u otros dispositivos.

El vnc server es un servidor multiusuario, lo que permitiría que varios clientes se conectaran al mismo tiempo, en un post futuro escribiré sobre topologías de conectividad con el VNC y las ventajas y desventajas de cada uno.

 

Referencias

[TRIS 2002] Tristan R, et al (2002). RFB Protocol Versión 3.3 Revision 2002

[RICH 1998] Richardson T. Stanford Q. Virtual Network Computing. IEEE Internet Computing, Vol2, No 1 January/Febrary 1998

El concepto "Que es la compartición de escritorio"

El término compartición de escritorio o sharing desktop hace referencia las tecnologías y mecanismos que nos permiten acceder a una máquina remotamente y manejarla como si estuviésemos en local.

 

Es decir, traemos la interfaz gráfica del pc remoto, ésta se despliega en nuestra pantalla local, y con el teclado y mouse local, "manejamos" el teclado y mouse remoto. La siguiente gráfica ilustra este concepto.

 

 

image

Esta tecnología también es conocida como tecnología de cliente liviano (Thin Client System) pues toda la inteligencia reside en el servidor, y el cliente solo se encarga de enviar comandos de teclado y mouse y recibir las imágenes para desplegarlas.

Existe un amplio rango de aplicaciones, frameworks y utilidades que permiten utilizar esta tecnología y seguro que muchos de ustedes las han escuchado, pero para el caso de esta introducción simple solo voy a referir dos básicas, ellas son el VNC (Virtual Network Computing) y Terminal Server. Estas dos aplicaciones y sus protocolos respectivos RFB y RDP constituyen la base fundamental de muchas otras aplicaciones que se describirán más adelante.

GTick.net

Este nombre de dominio ha tenido varios destinos, desde la idea de montar un gran blog tecnológico a otros más soñadores que no vienen al caso.

Después de por lo menos un año de pensarlo, bueno que decir pensarlo, de dedicarme a otros desarrollos y no dar importancia a cosas relevantes para mis objetivos personales me di a la tarea de reactivarlo antes de las vacaciones.

A esta fecha, 29/10/2008, he decidido que este portal se va a centrar en concentrar conocimiento alrededor de las tecnologías de compartición de escritorio o sharing desktop. Estas tecnologías hacen posible que se pueda acceder remotamente a un equipo y que se pueda obtener una imagen de su interfaz gráfica la cual es manejada con un teclado un mouse remoto.

Espero que los artículos aquí escritos sean de utilidad para aquellos que buscan información del tema.