FreeNX Imprimir
SOFTWARE - Servidores
Viernes, 21 de Diciembre de 2007 13:04
Detrás del software FreeNX está la arquitectura de computación distribuida NX, un conjunto de tecnologías y herramientas comerciales diseñadas por NoMachine...

FreeNX

 

Introducción.

Detrás del software FreeNX está arquitectura de computación distribuida NX, en inglés Distributed Computing Architecture NX DCA), un conjunto de tecnologías y herramientas comerciales diseñadas por NoMachine.

NX es una tecnología que permite ejecutar sesiones X11 remotas sobre conexiones con poco ancho de banda disponible una conexión sobre ADSL, RTB o RDSI, incluso en una red de área local con muchas sesiones remotas. Las bases de FreeNX están construidas sobre dos estándares abiertos muy extendidos, SSH y el X-Window System.

El protocolo de compresión NX deriva de DXCP. El protocolo de compresión diferencial de X, en inglés, Differential X Protocol compressor, lanzado en 1995 por Brian Pane ya incluía cerca de 160 llamadas y respuestas codificadas lo que constituía la parte central del protocolo X. El desarrollo de dxcp continúa activo hoy en día y son un gran número las distribuciones que lo incluyen como paquetes (Edubuntu, Debian, etc).

La potencia del protocolo NX no sólo se basa en la compresión del tráfico X, también son importantes en la labor del proxy de nx (nxproxy), cachear los datos transmitidos entre el servidor y el cliente, así como reducir al máximo el número de peticiones X para mejorar el funcionamiento en entornos de gran latencia. La codificación del protocolo X permite reducir el tamaño de los mensajes ya que se descartan las partes no significativas y para la parte de datos que no tienen codificación propia se utiliza compresión ZLIB. También se comprimen las imágenes transmitidas llegando a utilizar compresión con pérdidas, por ejemplo JPEG. Finalmente, después de utilizar todas estas técnicas para reducir el tráfico, se comprime el stream a emitir utilizando de nuevo ZLIB.

Para terminar, cabe destacar que aunque el servidor de FreeNX se ejecuta de forma habitual sobre un sistema Linux. Existen versiones del cliente para Linux, Windows, MacOS, etc. Esto permitirá que pueda ver el resultado de la ejecución de aplicaciones en su servidor sobre otro equipo, incluso aunque tenga distinto sistema operativo.

En la práctica.

El servidor de FreeNX

Práctica 1: Instalación del servidor de FreeNX

  1.  
    1. Visite la URL: http://www.nomachine.com

    2. Sitúese en el panel Download y descargue los archivos NX Free Edition DEB for Linux y sus dependencias NX Node for Linux y NX Client for Linux.

    3. Ejecute como root los siguientes comandos:

      # apt-get update
      # apt-get install ssh libaudiofile0 libstdc++2.10-glibc2.2

      con lo que instalará en el sistema los paquetes anteriormente citados.

    4. Instale los paquetes descargados anteriormente
  2. # dpkg -i nxnode_[versión]_i386.deb
    # dpkg -i nxclient_[versión]_i386.deb
    # dpkg -i nxserver_[versión]_i386.deb

El cliente de FreeNX

Práctica 2: Instalación del cliente FreeNX (Edubuntu)

  1.  
    1. Visite la URL: http://www.nomachine.com

    2. Sitúese en el panel Download y descargue el archivo NX Client for Linux.

    3. Ejecute como root los siguientes comandos:

      # apt-get update

      # apt-get install ssh libaudiofile0 libstdc++2.10-glibc2.2

      con lo que instalará en el sistema los paquetes anteriormente citados.

    4. Instale los paquetes descargados anteriormente
  2. # dpkg -i nxclient_[versión]_i386.deb

Práctica 2.bis [Opcional]: Instalación del cliente FreeNX (Windows)

  1.  
    1. Visite la URL: http://www.nomachine.com

    2. Sitúese en el panel Download y descargue el archivo NX Client for Windows.

    3. Ejecute como Administrador el fichero de instalación nxclient-[versión].exe.

    4. Le aparecerá el siguiente cuadro de diálogo. Haga clic sobre Next para continuar.


  1.  
    1. Seleccione la carpeta de instalación y haga clic sobre Next para continuar.


    2. Escriba el nombre de carpeta del menú de Inicio donde se mostrarán los iconos de FreeNX. Haga clic sobre Next para continuar.

    3. Marque la casilla de selección Create desktop icon si desea que el programa de instalación le cree un atajo en el escritorio . Haga clic sobre Next para continuar.



    4. Verifique los parámetros de la instalación y haga clic sobre Install para continuar.


  1.  
    1. Termine la instalación haciendo clic sobre Finish.


Configuración de una conexión FreeNX

La primera vez que se inicia el cliente de FreeNX, este lo hace en modo asistido, o en inglés wizard mode.


Para empezar la configuración deberá lanzar el asistente o wizard desde el menú de inicio (Aplicaciones -> Internet -> NX Client for Linux -> NX Connection Wizard), o desde la consola con el comando:

/usr/NX/bin/nxclient --wizard

Sólo hay dos opciones disponibles. Haga clic sobre Next para continuar, de este modo se iniciará el asistente de conexiones de freeNX.


  1. Asigne un nombre a la sesión que está creando en el cuadro de edición Session. Este nombre se utilizará para crear un fichero $PWD/.nx/[nombresesión].nxs. Si por algún motivo, el asistente le indica que el nombre de sesión ya existe, puede eliminar el anterior archivo para poder utilizar de nuevo este nombre de sesión.

  2. Introduzca la dirección IP o el nombre de máquina (DNS) del servidor FreeNX al que quiera conectarse en el nombre de la sesión en el cuadro de edición Session. Este nombre se utilizará posteriormente para identificar la sesión entre todas las disponibles.

  3. Escriba el puerto del servidor FreeNX donde está escuchando el demonio SSH (generalmente el 22).

  4. Seleccione el tipo de conexión utilizada para acceder al servidor. Por lo general puede utilizar MODEM aunque esté conectado a través de RDSI o ADSL. Tenga en cuenta que si selecciona LAN, no se utilizará la compresión en la conexión creada.

  5. Para continuar haga clic sobre Next.


En el cuadro de dialogo emergente podremos configurar el tipo de sesión que vamos a utilizar en la conexión creada en el punto anterior.

  1. Seleccione en la lista de tipo de conexión Unix, de las disponibles (UNIX, Windows y VNC).

  2. En la siguiente lista de selección, elija el tipo de escritorio que se utiliza en el servidor FreeNX (si utiliza Edubuntu con el escritorio por defecto seleccione GNOME) de los disponibles (KDE, GNOME, CDE, XDM y Custom).

  3. Dependiendo de la selección realizada en el punto 2 tendrá activo el botón de configuración de la sesión, Settings. Sólo las sesiones Windows, VNC y Unix/Custom permiten una personalización.

  4. En el siguiente cuadro de selección, Select size of your remote desktop, elija un tamaño de ventana que sea manejable en su escritorio local (menor a la resolución disponible) si no quiere conectarse a pantalla completa. Las opciones disponibles son:

    1. Avaliable Area Utiliza todo el espacio de escritorio disponible.

    2. Fullscreen Pantalla completa.

    3. Custom Le permitirá personalizar la resolución mediante las dos cajas que aparecen a la derecha (W, Horizontal y H, Vertical). En cualquier caso, las ventanas se pueden redimensionar de forma interactiva.

  5. (7) Haga clic sobre el cuadro de selección Enable SSL encryption of all trafic (sólo es aconsejable dejar de seleccionada la encriptación en caso de clientes FreeNX con poca potencia de proceso).
  6. Haga clic sobre Next.


Este último cuadro de diálogo ofrece la opción de elegir entre crear o no un enlace en el escritorio y mostrar o no las opciones avanzadas. Por facilidad y para poder cambiar la configuración posteriormente marque las dos opciones y haga clic sobre Finish.

Configuración avanzada


El panel General añade a las opciones anteriormente revisadas:

  1. La casilla de selección Recordar el password (Remember my password). El password del usuario queda almacenado en el fichero de configuración de la conexión.

  2. El botón Clave (Key ...) que permite comprobar la clave privada DSA así como importar una existente.

  3. El grupo Displace, ahora permite la selección de la codificación de imágenes (por defecto o personalizada). Simplemente se trata de elegir el tipo de compresión de imágenes, y se elige pulsando sobre el botón Modify... tras lo cual aparecerá el siguiente cuadro de dialogo:


  1.  
    1. Grupo: Codificación.

      1. Use JPEG image compression. Permite utilizar una calidad de imagen personalizada al seleccionar Use custom image quality.

      2. Use RGB image encoding. Utilizará codificación RGB de las imágenes.

      3. Use plain X bitmaps. Sin compresión.

    2. Grupo: Prestaciones. Por omisión dejará sin seleccionar las opciones ya que hacerlo supone des habilitar algunas de las ventajas proporcionadas por el protocolo (sólo se hace para solucionar problemas). Por ejemplo: Disable render extension, deshabilita cualquier tipo de aceleración. Disable backing-store, hará que se deshabiliten las mejoras en el inicio de la sesión.

El panel Advanced le permitirá configurar las opciones avanzadas. Existen tres secciones:


  1. La sección Network:

  •  
    • Disable no-delay o­n TCP connection. Desahabilita el que se trate que los eventos sean en tiempo real

  •  
    • Disable ZLIB stream compression. Desactiva la compresión ZLIB durante toda la conexión (y no sólo las imágenes como se podía hacer anteriormente)

    • Enable SSL encryption of all traffic. Cifrar toda la conexión con SSL

    • Connect throungh HTTP proxy. Permite la conexión del cliente a través de un proxy HTTP.

  1. La sección Cache. Podrá configurar tanto la caché residente en memoria RAM, como la que se pueda guardar en el disco duro. Para eliminar la caché de sesiones anteriores haga clic sobre el botón Remove all cache files.

  1. La sección Keyboard permite como opciones: Mantener la configuración del host donde se ejecuta el servidor o imponer otra distribución de teclado según el país seleccionado.

En el siguiente panel de Services indicamos de que servicios queremos disponer:


  1. Grupo Printer and file sharing.

  •  
    • Enable SMB printing and file sharing. Activa la compartición de archivos e impresión a través de SAMBA. Es necesario tener el servidor de SAMBA instalado en el sistema.

  •  
    • Enable CUPS printing. Activa la impresión a través de CUPS.

  1. Grupo Multimedia Support.

  •  
    • Enable multimedia support. Habilita el soporte multimedia en el cliente remoto. Es necesario tener habilitado el servidor de sonido esd y configurar en el entorno gráfico la sesión de usuario para que utilice el esd (Enlightened Sound Daemon) para generar el sonido.

En el panel Environment puede configurar las variables de entorno, como son, el directorio del usuario, del sistema, el comando del demonio de impresión CUPS (cupsd) y de los tipos de letras utilizados.


Para terminar haga clic sobre Save para guardar las opciones o directamente OK si no le interesa guardarlas para posteriores sesiones.

Otras prácticas.

En esta sección va a configurar el sistema para poder realizar pruebas de FreeNX.  

Práctica 3: Creación de un usuario local. 

  1. En el servidor de FreeNX haga clic  sobre Sistema -> Administración -> Usuarios y grupos  .

  2. Se abrirá un cuadro de diálogo solicitando la contraseña del usuario con privilegios administrativos. Una vez aceptada se lanza la aplicación 'users-admin'.

  3. En la ventana User settings , haga clic sobre Añadir usuario (Add user).

  4. Establezca el Nombre de usuario (Username) pruebanx y escriba la Contraseña (password) pruebanx confirmandola de nuevo.

  5. Haga clic sobre OK para confirmar la creación del usuario y a continuación sobre Close para terminar.

Práctica 4: Creación de conexiones y ejecución de las pruebas.

  1. En la máquina que va a actuar como cliente de FreeNX, haga clic consecutivamente sobre Aplicaciones -> Internet -> NX Client for Linux -> NX Session Administrator . Se abrirá la ventana de la aplicación.

  2. Haga clic sobre el menú File . A continuación seleccione New NX session ...

  3. Se abrirá la ventana de NX que le permitirá abrir una sesión tras otra [tantas como pruebas desee hacer]. Antes de terminar cada sesión vuelva al NX Session Manager y visualice las estadísticas (las encontrará en el menú Session )

NOTA: Sería recomendable abrir una sesión con un enlace LAN y trabajar durante un periodo. A continuación cierre la sesión y cambie la velocidad del enlace a MODEM y continúe trabajando un tiempo.

Práctica 5: Instalación del NX Server Manager.

  1. En el servidor de FreeNX haga clic sobre Sistema -> Administración -> Gestor de paquetes Synaptic .

  2. Se abrirá un cuadro de diálogo solicitando la contraseña del usuario con privilegios administrativos. Una vez aceptada se lanza la aplicación 'synaptic'.

  3. Haga clic sobre Search. /EM> En la ventana emergente escriba apache2 y haga clic sobre Search .

  4. Una vez encontrado el paquete seleccionelo haciendo clic sobre la casilla de selección que está situada a la izquierda del nombre y a continuación, en el menú contextual, haga clic sobre Mark for installation.

  5. Se abrirá una nueva ventana para confirmar la instalación de las dependencias de apache2. Haga clic sobre Mark para continuar.

  6. Para empezar con la instalación de Apache2 haga clic sobre Apply.

  7. Visite la URL: http://www.nomachine.com

  8. Sitúese en el panel Download y descargue el archivo NX Server Manager Beta DEB for Linux e instalelo con la orden

    # dpkg -i nxmanager_[versión]_i386.deb
  1. Edite el fichero de configuración de apache2 y añada la siguiente lineas antes de la sección Global Environment

    Include /usr/NX/etc/manager.conf
  1. Fijar los permisos adecuados para el administrador del servidor

    # /usr/NX/bin/setup/nxmanager -- update
  1. Añadir un usuario como administrador del servidor

    # /usr/NX/bin/nxserver -- useradd [nombreusuario] -- administrator
  1. Modificar permisos

    # chown -R www-data:www-data /usr/NX/var/db/nxmanager
  1. Ahora ya puede acceder con el usuario administrador creado o con nxmanager y contraseña nxmanager (no olvide cambiarla) al NX Server Manager abriendo la URL:

http://ipservidor/nxmanager

Conclusiones

NoMachine ha conseguido con su gama de productos FreeNX que el acceso remoto gráfico a una máquina Linux sea fiable, sencillo y que tenga unas enormes prestaciones. Todo ello con las enormes posibilidades que brinda al usuario tener clientes disponibles para varias plataformas.