Iniciando sesión remota


Estas tres últimas semanas han sido poco menos que un infierno. Hace unos días estuvimos aprendiendo a usar el puerto paralelo, e igual estoy adelantando acontecimientos, pero después de conseguir encender luces, no ha sido nada difícil controlar también un par de motores (ya veras cómo en el próximo post). Y después de poder controlar motores, tampoco ha sido muy difícil ponerles ruedas a esos motores.

Total que ahora se me ha metido en la cabeza ponerle ruedas a un portátil y hacer que se mueva él solito. Porque claro, tenemos una red wifi que cubre toda nuestra casa, así que, teóricamente, podríamos acceder a ese portátil, y pilotarlo remotamente desde cualquier lugar del mundo (a través de internet en primera instancia y luego a través de nuestra red local).

Y fijate que no es tan difícil, oye. Tenemos a nuestra disposición herramientas como telnet o SSH que permiten iniciar sesión en un equipo remoto como si se estuviera ejecutando en nuestro equipo local. Podemos pues pasarle comandos por red a nuestro portátil usando otro ordenador como mando a distancia. El problema con estos sistemas es que sólo permiten iniciar sesion en modo texto. Y si bien no es muy problemático para pasarle información al cochecillo (después de todo sólo queremos que reaccione a la pulsación de ciertas teclas), sí que lo es para que el vehículo nos pase información a nosotros. Porque la información que puede transmitir una consola de texto es bastante limitada, y si estás intentando conducir un cochecillo que está en Madrid desde Cuenca necesitas que te den alguna pista.

Lo primero que se me ocurre para evitarnos este problema es añadirle una webcam al invento. Ahora, si iniciamos una sesión gráfica en ese ordenador podemos usar cualquier programilla que nos muestre las imágenes que está captando la webcam, como camorana. Ergo, si iniciamos una sesión gráfica remota podremos ver lo que está viendo la webcam remotamente.

Parece fácil, ¿verdad? Y es que, además, disponemos de varias formas de hacer esto en linux. Está XDMCP, que vendría a ser el protocolo que usa linux por defecto para estos menesteres, y que casi seguro que ya tienes instalado. Y está VNC, que casi seguro que también tienes instalado (prueba a escribir «vinagre» en la consola) y que permite iniciar sesiones no sólo en otro ordenador con linux, sino en un ordenador con cualquier sistema operativo (suponiendo que le hayas instalado un servidor de VNC, claro).

Bueno, pues no es tan fácil. El problema con estos dos sistemas es que consumen muchísimo ancho de banda. Date cuenta que tienen que enviar la información que tiene que mostrar la pantalla en cada instante.  Pueden funcionar en una red local, pero cuando tienes que mandar ese chorro de datos por internet el sistema se satura y se vuelve inmanejable. Incluso dentro de la red local, en cuanto arrancas la webcam todo se vuelve leeeento y la imagen se mueve a saltos.

Afortunadamente el mundo es grande e internet es pequeño, y una empresa Italiana llamada Nomachine ya se ha encargado de sacarnos las castañas del fuego. En concreto, esta compañía creo hace un par de años la tecnología NX, que para que nos entendamos te permite ejecutar un escritorio virtual igual que con XDMCP o VNC, pero que, entre otras cosas,  cuenta con un potente algoritmo de compresión de datos.

En teoría la tecnología NX permite trabajar remotamente incluso con una conexión de modem. Yo no diría tanto. Pero sí es verdad que con velocidades de DSL permite ver las captura de la webcam con una tasa de refresco aceptable. Y en red local, con la conexión wifi de casa va suficientemente fluido como para poder jugar al MAME.

Entonces ¿cómo le mete uno el NX ese al ordenador? En primer lugar, NX canaliza todas sus comunicaciones a través de SSH, así que necesitaras instalar OpenSSH para que todo funcione (en Debian o Ubuntu esto es tan fácil como poner «apt-get install ssh» en una consola con permisos de administrador). Despues de eso sólo tienes que descargarte los tres paquetes de NX de la página de NoMachine. En la máquina que vaya a funcionar como servidor (la máquina a la que te vas a conectar) tienes que instalar los tres paquetes (nxclient, nxnode y nxserver). En el cliente (el ordenador que vas a estar manoseando) sólo hace falta instalar el paquete nxclient.

Y ya estamos listos. «NX Client for Linux» debería haber aparecido en el menu de tu escritorio. Si lo pulsas aparecerá una ventana como ésta para que introduzcas los datos de la nueva conexión:

NXclient

Como ves, nada del otro mundo. Sólo tienes que introducir la dirección del servidor al que quieres conectarte (el puerto por defecto es el 22), el tipo de sistema al que vas a conectarte, la velocidad de la conexión y el tamaño que quieres que tenga tu escritorio remoto. Bastante fácil.

Por cierto, el NX de NoMachine para linux es gratuito, pero si te va la marcha existe una versión totalmente libre llamada FreeNX, aunque resulta algo más complicada de instalar.

Y eso es todo. Nada demasiado expectacular, pero creo que este programa puede suponer una muy buena herramienta contra la obsolescencia ya que nos permite rescatar las máquinas más limitadas para usarlas como terminales de conexión a nuestro nuevo y gordo servidor, tal como apuntó hace tiempo erseco en uno de sus comentarios.

,