miércoles, 14 de mayo de 2008

Artículo: VNC: Controlando el PC desde cualquier punto del mundo (Actualizado)

Desde hace muchos años, con la aparición de las redes aparece también una necesidad básica: El acceso a distancia a un equipo. En entornos unix siempre se ha usado utilidades como ssh, slogin, telnet... que nos permitían acceso remoto. Incluso como dijimos en otro manual, "Jugando con x11", es posible traer entornos gráficos desde la distancia. Esto en el mundo UNIX no es nuevo... y en windows tampoco.

Por supuesto, a veces tan solo es un juego el poder decir: "Mirar, soy capaz de acceder a mi PC desde cualquier parte del mundo". Otras veces en cambio es una necesidad, por ello usamos desde servidores web o FTP para poder acceder a dichos datos. Otras veces en cambio lo que deseamos es acceder a un archivo de texto, alguna imagen concreta, un recordatorio... o sumplemente echar un vistazo a nuestro equipo, y evidentemente por una imposibilidad espacial, necesitamos hacerlo a distancia.

De esta necesidad surgen terminos como "Escritorio Remoto". Ya no nos conformamos con traernos una aplicación a través de X11 ni un simple acceso por FTP o SSH. Necesitamos acceder a nuestro PC, usar nuestras aplicaciones, mirar nuestras cosas... como si delante del PC estuviésemos. Por ello, tanto Microsoft como Apple crearon aplicaciones para hacerlo posible de manera simple. Pero claro... para toda conexión hace falta dos programas. Un programa para quien hará de servidor y otro que hará de cliente. Y aquí está el problema. Al ser programas o sistemas propietarios, hay que ceñirse a lo que ellos te dan. De esta necesidad surgen muchos programas de acceso remoto, seguramente el más famoso de todos será siempre VNC, Virtual Network Computing, un sistema abierto que se ha portado seguramente ya a todas las plataformas, incluido iPhone/iPod, Windows, Unix, Mac...

Bueno, ya sabemos que es VNC y tenemos una idea vaga de para que sirve. Como hemos dicho, hacen falta siempre dos programas, uno que se ejecutará en la máquina servidor que aceptará las conexiones entrantes y uno que se ejecutará en el cliente, que se conectará al servidor. Para nosotros, para esta guía, el servidor será una máquina Windows Vista, mientras que el cliente será un iPod Touch.

Pero como interactuarán el cliente y el servidor VNC? Bueno, como hemos dicho VNC es una plataforma abierta muy extendida. Hay muchos servidores diferentes VNC y muchos clientes VNC, algunos de pagos y otros gratuitos. En teoría casi cualquier cliente VNC debería de funcionar perfectamente con casi cualquier servidor VNC, aunque siempre que se pueda será bueno usar el cliente del servidor asociado. Para nuestro manual he usado como servidor TightVNC, pesa muy poco y no tiene complicación alguna. Quizás no sea el servidor VNC más robusto, pero funciona perfectamente, es gratuito y disponible para varias plataformas. Lo podemos obtener desde su web:

http://www.tightvnc.com/download.html

El paquete completo incluye también el cliente, aunque necesitaremos otro cliente diferente para el iPod Touch (iPhone)


Por el lado del cliente, yo he usado VNsea, completamente gratuito, se puede descargar desde Cydia o desde el Installer. Por ahí hay otro, Touchpad pro 4 que es de pago, aunque se puede conseguir gratuitamente por inet, pero se puede usar perfectamente también. Las diferencias entre unos y otros son minusculas a la hora de manejarse, quizás Touchpad sea más suave al principio a la hora de desplazarnos por nuestro entorno, pero nada que VNsea no haga perfectamente también, y además es gratuito :)

Dicho esto ahora tan solo nos queda configurar los dos programas, el servidor TightVNC y el cliente VNsea. Vamos a comenzar por el más "complicado" El servidor, aunque como veremos apenas tenemos que cambiar nada.


TightVNC (Servidor)

Nada más ejecutar el programa o nos saltará la pequeña ventana de configuración o se irá inmediatamente al reloj de windows en forma de iconito. Si se ha ido al reloj pinchamos una vez para abrirlo:








No voy a explicar opción a opción que es lo que hace cada una, la mayoría son muy faciles de comprender, así que no creo que haya necesidad. Se pueden usar los mismos ajustes que están en esas pantallas. Lo que sí deberemos de modificar y establecer es la contraseña "primary Password" "view-only password". Contraseña para el control completo o contraseña para solo ver. pondremos la contraseña que queramos y listo

En la misma pestaña de server, otra cosa a tener en cuenta que si es recomendable modificar es el puerto. Por defecto el 5900 y el 80 para la interfaz web. Estos puertos son fáciles de escanear, si se quiere una seguridad extra siempre es conveniente modificarlo, aunque si se modifica habrá que recordar que puerto era, y a la hora de configurar el cliente tenerlo en cuenta.

En la pestaña Administración, podemos ver también una opción llamada Enable Built-in HTTP server. Esta opción nos permitirá acceder por cualquier página web a nuestro PC sin necesidad de un cliente, tanto desde un iphone como desde el PC de la universidad o... Así que puede ser también una buena opción el tenerla en cuenta.

El resto de las opciones no son tan interesantes.


VNsea (Cliente)

Al igual que configuramos en servidor deberemos hacer lo mismo con el cliente. Normalmente cualquier cliente VNC tan solo se limita a un nombre de usuario (en caso de existir), una contraseña, la dirección del servidor y el puerto al que conectarse. Y quitando la dirección del servidor, todos los demás datos son los que ya hemos configurado anteriormente en el servidor. Tan solo tendremos que abrir VNsea y configuraremos primero el programa en sí dándole a preferencias:




Y una vez configurado la aplicación en sí, tan solo tenemos que añadir los servidores que queramos. Le damos al botón + y añadimos según las preferencias de nuestro servidor:




Aquí hay que tener en cuenta algo. Es diferente si nos conectamos desde una LAN o desde WAN. Si queremos acceder desde LAN, tan solo deberemos de introducir nuestra IP privada, en el caso del ejemplo (no son datos reales) 192.168.0.2. Normalmente cuando realizamos conexiones mediante LAN tan solo deberemos de permitir nuestro cortafuegos de windows que permita el acceso, y no hay más problema. Como mi puerto de conexión lo dejé por defecto en 5900 no debo de cambiar nada más, pero si mi puerto lo cambié por ejemplo a 5901, a la hora de especificar el host debería de poner algo así: "192.168.0.2:5901" ello especificaría el puerto de conexión.


Pero como accedemos desde WAN?

En realidad se aplica el mismo concepto, pero hay que realizar algunos ajustes más. Por un lado está el problema del router. Al router hay que abrirle un puerto para que sepa que toda las conexiones entrantes desde WAN hacia el puerto 5900 (si está por defecto) debe de dirigirlas hacia el host en el que tenemos instalado el servidor VNC. Cada router es diferente y es imposible hacer una guía para cada router, pero rapidamente mirando la documentación del router no tendremos problema alguno en abrir el puerto necesario. La regla en el router debería de ser algo así:

Para todas las IPs entrantes, redirigir las conexiones al puerto 5900 al puerto 5900 del host 192.168.0.2 (en el caso de que esta sea la IP privada donde se encuentra el servidor VNC). Todos aquellos que alguna vez han abierto un puerto para el Emule o para jugar... esto es igual.

Con esto solucionamos uno de los dos problemas. El segundo problema puede ser desde un verdadero problema a una simple molestia.

La IP privada de una LAN puede ser más o menos conocida o conocida completamente, pero la IP real de uno es más complicado, sobre todo porque por ahora el 90% de todos los ISP de españa asignan IPs dinámicas, lo que quiere decir es que de cuando en cuando o cada vez que se reinicia el router o... la IP cambia. Pero necesitamos esta IP para configurar nuestro cliente VNC. Conocer la IP en un momento dado desde nuesto equipo es muy simple, desde poner en google: "cual es mi ip" a simplemente mirarla en el router o... pero conocer la IP desde fuera, además de ser peligroso en cuanto a seguridad se refiere, no es que sea muy simple. Sin un sistema más cómodo, tendríamos que reconfigurar nuestro cliente cada vez que quisiésemos conectarnos, y claro, esto no es que sea muy eficiente.

Incluso en el caso de tener contratado una IP fija a nuestro ISP, aprendernos algo como 80.212.125.3 tampoco es que sea muy intuitivo, aunque al menos tan solo tendríamos que configurarlo una sola vez.

La solución pasa por usar servicios de DDNS. Un servicio de DDNS lo que hace es asociar a tu IP siempre el mismo NS (nombre del servidor). Da igual la IP que tengamos cada vez, ya que siempre podremos referenciar nuestro PC con un nombre. Ya casi todos los routers implementan estos servicios directamente en ellos, y no hay que hacer otra cosa sino que registrarnos gratuitamente en uno de estos DDNS y rellenar la informacion del router con nuestros datos. El router así lo que hará es que al detectar un cambio de IP, tan solo reenviará la señal al servidor DDNS, este detectará que el usuario Pepito con IP XXX y NS "pepi" está actualizando su IP. Lo vemos mejor así:

Usuario Pepito sin DDNS se quiere conectar a casa por VNC a su PC desde el trabajo, lo intenta pero no puede. No sabe que su ISP le ha cambiado la IP en las ultimas horas y a él se le olvidó mirar la IP en su casa antes de irse

Usuario Pepito se registra en no-ip (un proveedor de DDNS gratuito) y registra una cuenta con el nombre de "Pepito" y registra el DDNS "pepi.no-ip.com"

Usuario Pepito configura su cliente VNC y en direción host pone "pepi.no-ip.com" y configura su router que permite el proveedor no-ip con sus datos de su cuenta.

Usuario Pepito está trabajando y se quiere conectar de nuevo a su PC desde el trabajo, no ha mirado la IP, pero no la necesita. Abre su cliente VNC y este se coneta sin problemas a su PC. ¿PQ? Pepito sabe que su router se reinició por la noche, con lo que la IP ha cambiado, pero para el no es problema, además le da igual que cambie o que no. Este es el proceso:

El router se inicia con la IP XXA
Nada más iniciarse, manda los datos de la cuenta de Pepito al servidor de DNS de no-ip y le dice: "Actualiza el registro DNS de "pepi.no-ip.com" a la IP XXA. Dado que el dominio pepi.no-ip.com pertenece al mismo servidor de ellos, ellos realizan el cambio y en pocos segundos las bases de datos de DNS actualizan sus entradas. Luego pepi.no-ip.com siempre estará apuntando a nuestro router, tengamos la IP que tengamos en cada momento. Ya será el router quien se encargará con el mapeo de puertos (NAT o PAT) a dirigir el tráfico a nuestro PC.

Existen muchos proveedores de DDNS, muchos routers soportan algunos de ellos. Y si nuestro router tampoco soporta ningún DDNS tampoco es un problema, cada proveedor suele tener un mini programa que se ejecuta en el PC que hace exactamente la misma función que el router.

Entre otros proveedores tenemos:

no-ip
dns.ns
...

http://www.technopagan.org/dynamic/

en esa web podemos encontrar un amplio listado de ellos, aunque lo ideal sería siempre usar uno que nuestro router acepte, y así evitamos tener más programitas, y el proceso será completmaente transparente para nosotros.

Una vez aclarado esto, la conexión se debería de establecer perfectamente ya sea a través de LAN o a través de WAN:





Una vez conectados podremos desde usar el ratón, escribir, usar la pantalla tanto en vertical como en horizontal, eliminar, mover, desplazarnos... lo que deseemos.


Hay clientes VNC como touchpad pro que además tienen funciones de control (botones directos) para winamp o itunes, para reproducción de música y demás. Bueno, como idea no está mal, pero sigo pensando que no merece pagar los precios abusivos por aplicaciones que ya existen y que son gratuitas. Y si se quiere ver como funcionan pues bueno, siempre queda el lado "oscuro" de la piratería.

Os dejo algunas imágenes de una conexión realizada por touchpad pro 4, como verenos es practicamente igual:







Como podemos ver en las imágenes, es prácticamente igual, algunos con algunas opciones más otros con menos. Lo único que han hecho los creadores de touchpad ha sido modificar el original VNsea ligeramente.

De todos modos he colgado el TouchPad Pro, a priori de pago, en el repositorio para quien quiera poder usarlo sin problema. Eso sí, para poder usar las funciones de Server es necesario instalar el Media Server en el PC. Para usar el Media server (el control remoto) es necesario además especificar en la configuración de TouchPad Pro el puerto al cual conectarse y del mismo modo evidentemente, si se desea acceder desde el exterior tal y como hemos comentado, habrá que abrir dicho puerto también en nuestro router. La versión en mi repo está desbloqueada, uan vez instalada hay que darle a activar y se activará sin problemas

Para poder usar tanto la función VNC como la función Media server será necesario tener arrancados sendos programas, el Media Server y el servidor VNC

El servidor Media Server de TouchPad Pro se puede descargar desde aquí:

Pulsa Aquí


Bueno, creo que no me he dejado nada.

Un saludo a todos.

9 comentarios:

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...

Gracias por la explicacion
yo sin ningun conocimiento
lo realize con exito
gracias por todo :)

Theliel dijo...

me alegra ver que ayuda a otros

KuRLiNg--TiTo dijo...

No encuentro el VSnea, además el repositorio donde estaba no me lo reconoce en sources el instaler, y en cydia no lo encuentro tampoco.
Sabes en que otro repositorio está?¿?
Gracias.

Theliel dijo...

VNsea esta en el repo de bigboss y en el ofi, luego está seguro

Anónimo dijo...

Muchas gracias por la info.Uso VNC para currar y desde el curro para mangonear mi pc. Ya solo me quedaba usar el iTouch, muahahah!!

Muchas gracias!!

JuLiOooO dijo...

Ayudame porfaa! e heco todo lo q me has pueto y lo q he visto en varias webs, youtube y todo pero al momento de poner click en mi usuario en el touchpad Pro 4.44, me dice " El sevidor VNC cerro la conexion",, ayudame xfa mi msn es julio.92@live.com

Theliel dijo...

no tendrás bien configurado algo. Por lo q me dices, me parecce a ami q es posible q tengas activado en touch pad pro Media Server y en el PC no lo tengas ejecutandose, no confundas media server con el servidor vnc. Si no tienes el media server desactivalo en los ajustes de touchpad pro

Jorge dijo...

Neta Neta Gracias brother estuve buscando quien me lo explicara y fue la mejor ayuda!

Gracias !

 
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.