NX: conexiones X11 remotas con software libre

Imaginen que en casa quieren usar su computadora pero su hermano menor está revisando sus redes sociales y a ti te urge realizar una tarea, para colmo el archivo que necesitas se encuentra en esa «ocupadisima» computadora.Pues, sencillo, desde cualquier PC de la casa accedes a tu cuenta de usuario que esta en la computadora que tu hermano está usando en ese momento y listo, tienes tu sesión con todo y lo que tengas en ella como si te encontraras frente al servidor y a trabajar, ¿genial no? Pues la tecnología NX permite esto y mucho más.


NX es una tecnología que permite ejecutar sesiones X11 remotas de manera rápida y con excelente calidad gráfica, fue desarrollada por la compañía francesa NoMachine, la cual ofrece aplicaciones cliente y servidor de manera gratuita (pero no libre) y también de manera comercial.

La velocidad del servicio NX es debida a la compresión y cacheo que realiza del protocolo X11, lo que minimiza la cantidad de información transferida entre cliente y servidor. Pero la vlocidad no es lo único en que se ha pensado, NX también provee de un servicio seguro ya que toda la información viaja a través de SSH. Es decir te puedes olvidar de LDAP, directorios seguros con Apache y SSL, Samba, NFS o cualquier otra solución para acceder a tus datos en la red, con NX será suficiente conectarte desde cualquier PC de la red a tu cuenta de usuario y tus datos estarán ahí.

NX a diferencia de VNC es considerado un servicio de Clientes Ligeros, pues no se limita a ofrecer visualización y control de un escritorio remoto, sino que permite el acceso a cuentas de usuario que se encuentren en el servidor sin interferir con otros usuarios que puedan estar accediendo en ese mismo momento a sus cuentas desde el propio servidor o cualquier otra computadora.

Otra ventaja es que para usar NX no es necesario adquirir hardware sofisticado, por ejemplo si planeas usar terminales ligeros usando PXE/LTSP deberás tener tarjetas de red que soporten arranque PXE lo que impide que puedan ser reutilizas computadoras antiguas además de el servidor  exige dos tarjetas de red para su funcionamiento, con la tecnología NX solo basta con tener una red local simple, sin necesidad de gastar dinero en hardware especifico.

Por si lo anterior fuera poco, imaginemos si tenemos una red local en la que varios usuarios están trabajando y de repente un clásico apagón, puedes prácticamente despedirte de tus trabajos si es que no los guardaste, usando un Servidor NX protegido con un No Break será suficiente, reiniciamos los clientes, acceder a la sesión que quedo abierta y continuamos con tu trabajo, ahorrando así en sistemas de alimentación ininterrumpida para todas las PC de tu red. (Creanme esto funciona y me dejo asombrado cuando realicé las pruebas y vi que funciona a la perfección).

Esquema de una red con tecnología NX

Como podrán apreciar en el esquema, si tienen una modesta red de área local será suficiente para poder implementar las soluciones con tecnología NX.

Los requerimientos son los siguientes:

Clientes:

  • Procesador mínimo de 400MHz
  • 128 MB de memoria RAM
  • 35 MB de espacio en disco (para instalar la aplicación cliente)
  • Una conexión de red

Servidor:

Para el servidor es variable el hardware necesario, dependiendo de la cantidad de clientes que se conecten a el y del tipo de aplicaciones que se vayan a ejecutar.

Para mi gusto las aplicaciones de NoMachine son muy buenas, pero afortunadamente existen alternativas de la misma calidad y también libres que han sido desarrolladas aprovechando que el núcleo de la tecnología NX esta bajo la licencia GPL 2, Google ha lanzado Neatx que es un servidor NX libre, como cliente sugiero usar OpenNX que también es Software Libre.

Como noticia, comento que NoMachine ha informado que la tecnologia NX a partir de la versión 4 dejará de ser Software Libre y pasara a tener una licencia privativa.

http://www.nomachine.com/news-read.php?idnews=331

¿En donde podemos usar NX?

  • Aulas o laboratorios de cómputo.
  • Oficinas
  • En el hogar
  • Bibliotecas
  • Y cualquier lugar donde tengamos un servidor con buenos recursos y computadoras antiguas para reciclar.

Instalar Neatx (Servidor)

Añadiremos el repositorio de Neatx al archvio /etc/apt/sources.list, pero antes haremos una copia de seguridad del archivo a modificar.

cp /etc/apt/sources.list /etc/apt/sources.list.original

Ahora si, procedemos a añadir el repositorio

nano /etc/apt/sources.list

y agregamos las siguientes lineas al final del archivo:

deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/freenx-team/ppa/ubuntu lucid main

guardamos y cerramos el archivo.

Actualizamos nuestros repositorios.

apt-get update

Instalamos.

apt-get install neatx-server

Recuerden que pueden crear varias cuentas para ser accedidas desde el cliente NX. En este ejemplo añadiremos a este servidor 3 cuentas neatx, neatx2 y neatx3, de preferencia crearlas de manera gráfica pues añadiendo los usuarios desde el terminal no ha funcionado al menos en Debian 6.

En Gnome 2.x

Sistema > Administración > Usuario y Grupos

En Gnome 3 y posteriores

en el panel superior donde aparece tu nombre de usuario > Configuración del Sistema > Cuentas de Usuario

una vez añadidas estará todo listo, es verdad, no hay nada más que hacer en el servidor ya esta todo configurado.

Instalar OpenNX (Cliente)

Agregamos el repositorio de OpenNX, al igual que con el servidor hacemos nuestra copia de respaldo y editamos el archivo pero ahora añadimos esta linea:

deb http://download.opensuse.org/repositories/home:/felfert/Debian_5.0 ./

guardamos y cerramos.

Añadimos la llave del repositorio, descargamos la llave desde aquí y en la terminal ubicándonos en el directorio donde descargamos la llave lanzamos el siguiente comando.

apt-key add Release.key

Actualizamos repositorios.

apt-get update

Instalamos.

apt-get install opennx

y estará todo listo.

También encontramos en su página oficial paquetes y repositorios para otras distros y diferentes Sistemas Operativos.

http://opennx.net/download.html

Aunque el repositorio de ejemplo es el que me ha funcionado correctamente tanto en Ubuntu como en Debian.

Ahora accederemos a nuestra sesión remota desde el cliente.

Aplicaciones > OpenNX client > OpenNX conection wizard

Aparece el asistente de OpenXN

Presionamos el boton «Siguiente».

Colocamos algún nombre para la sesión y la ip del servidor, cambiamos la velocidad hasta donde dice LAN.

Seleccionamos Unix como sistema y el escritorio que se encuentre instalado en el servidor, en este caso GNOME.

Dejamos habilitada la opción «Enable SSL encryption of all traffic», sin esta opción habilitada el servidor no funcionará, ya que no permite sesiones sin encriptar.

Dehabilitamos la opción «Create shortcut on desktop» ya que si queda habilitada funciona pero marca un error al crear el acceso directo en el escritorio.

Ahora veremos el cliente OpenNX

Colocamos el usuario al que queremos conectarnos en el servidor, la contraseña,
elegimos la sesión que anteriormente creamos y presionamos «Login».

Veremos que OpenNX establece la conexión con el servidor, autentica y descarga los datos necesarios para iniciar la sesión.

Si todo ha ido bien tendremos la conexión a una sesión en un servidor remoto, como ya se menciono, sin interferir con cualquier otro usuario que también acceda a su cuenta ya sea físicamente en el servidor o a través de OpenNX.

Un par de capturas.

Accediendo desde un cliente instalado en Ubuntu 11.10 a un Servidor NX también con Ubuntu 11.10.

En esta captura observamos que accedemos a un servidor NX instalado en Debian 6.0 desde un cliente en Ubuntu 11.10, se observa en la barra de titulo de la ventana que aparece «Neatx», seguido del usuario, el nombre del servidor y también de la sesión.

En las pruebas se accedió  a 3 cuentas de usuario simultáneamente en un servidor con un Athlon X2
con 2 GB de RAM  y funcionó a la perfección, cada cuenta fue accedida desde un cliente distinto en la red local con LibreOffice Writer y Firefox funcionando y ninguna presento inconvenientes.

Estos son los 3 PC cliente en los que se ejecuto OpenNX para acceder a la cuentas de usuario remotas.

Recuperar una sesión

Si por algún motivo el cliente ha perdido la conexión, ya sea por falla en el suministro eléctrico, por que alguien tropezó con el cable de alimentación de la computadora o tu hermanito se quedo pegado en el botón de encendido de tu PC, no te preocupes, tu sesión remota ha quedado ejecutándose en el servidor, solo basta con encender de nuevo el cliente e iniciar la sesión, aparecerá una pantalla como la siguiente

Seleccionas la sesión que estabas ejecutando pulsas el boton «Resume» y tendrás de nuevo tu sesión tal como la dejaste.

Según las especificaciones de la tecnología NX es posible también acceder al audio de manera remota, cosa que al menos hasta ahora no he podido hacer funcionar.

Bueno espero les sea de utilidad este tutorial, en verdad es una excelente herramienta al alcance de todos.


12 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Anonymous dijo

    Interesante pero yo prefiero utilizar xrdp ya que normalmente no es necesario instalar un cliente pues tanto gnome como windows lo traen integrado y funciona tambien con smartphones y thinclient.

  2.   Sam dijo

    Ojo, no es del todo cierto, con LTSP no es necesario tener tarjetas de red con PXE, se puede arrancar los clientes desde USB, CD, Disket …y no es necesario tener discos duros en el equipo cliente, nx cliente hay que instalarlo en un sistema con disco duro. NX está bien para sustituir a VNC o Rdesktop, pero si lo que se necesita es tener un servidor de clientes ligeros mejor LTSP o TCOS.

    Saludos.

  3.   Luis dijo

    Excelente tecnología y tutorial.

    Ojo, que deberías mencionar también a nivel de hardware, debes tener un switch con velocidad de por lo menos 10/100/1000 Mbps y también las computadoras cliente tener tarjetas de red que trabajen también a dicha velocidad.

    Con esto no tendremos clientes quejandose que la red está muy lenta y terminen pidiendo que mejor desechemos la idea de la tecnología NX.

  4.   gonza dijo

    Yo tengo mi red de área local con Samba… y utilizo solamente un Modem Router en el cual puedo conectar 4 pc’s.
    Lo utilizo para acceder y compartir archivos entre las pc’s.

    Muy buena la información del post, tal vez en algún momento lo pruebe.

    Muchas gracias!

    Saludos 🙂

  5.   Linugux dijo

    Mea caido de perlas !!!! estoy haciendo esto de las pruebas ! y no me a quedado con ltsp , solo he estado en ssh pero en eso de las aplicaciones compartidas y los usuarios pues estoy apenas aprendiendo pero ahora con este pues , espero que se me sea mejor poruqe ahora estoy con maquinas que ya pasan de sus 10 años y pues estoy haciendo que trabajen , !!! bueno !! probare esto !!!! ya que ando ya sobre la carrera !! se lee que esta re bueno si ya estoy sorprendido del ssh ahora esto …..bye

  6.   Mimail dijo

    Recomendaria que echarais un vistazo a esto http://theqvd.com/

  7.   Usemos Linux dijo

    Interesante… buen aporte.

  8.   Nacho dijo

    Recomendaria hechar un vistazo a x2go, tambien basado en la tecnologia NX.

  9.   pandacriss dijo

    creo k lo probare con mi nuevo raspberry pi
    http://www.tiaowiki.com/w/Install_NX_Server_on_Raspberry_Pi
    estoy emocionado!!!

  10.   pandacriss dijo

    acabo de instalar tanto el cliente como el server en la misma pc para hacer pruebas. no encuentro como iniciar el cliente x ningun lado. es ubunutu 10.04 alguna idea?

  11.   SynFlag dijo

    ssh -X ?

  12.   agt1729 dijo

    Les recomiendo Ammy Admin (http://www.ammyy.com) no requiere instalación o ajustes de configuración específicos. Funciona detrás de puertas de enlace NAT y en cualquier LAN.