Está en: » Blog »

FreeNX – Algo más que un ‘Términal Server’ mejorado (alternativa a vnc server en Linux)

FreeNX – Algo más que un ‘Términal Server’ mejorado (alternativa a vnc server en Linux)

freeNX (pantallazo de ejecución)

freeNX (pantallazo de ejecución)

La empresa Italiana nomachine hace ya bastante tiempo, liberó gran parte del código de su servidor “NX Server”, el cual viene a ser algo parecido a un servidor vnc pero con una integración nativa con el servidor Xorg, de forma que brinda un espectacular rendimiento con un bajísimo consumo de recursos. A partir de esta liberación del código, se creo el proyecto freenx, que nos brinda esta tecnología totalmente libre.

En openSuse, la instalación del servidor biene a ser bien fácil:

Método automático (recomendado)

  • openSuse 11.2 – One click install - instalación con un simple click
  • openSuse 11.1 – One click install - instalación con un simple click

Método manual (consola)

Para las versiones posteriores a openSuse 11.1 (incluida), hay que añadir el repositiorio http://download.opensuse.org/repositories/X11:/RemoteDesktop/ + la versión de openSuse que se utilice.

  • Nos pasamos a superusuario (root):
    su
  • Instalamos el servidor freenx.
    zypper install FreeNX
  • Configuramos el servicio aceptando el cliente de nomachine:
    nxsetup --install --setup-nomachine-key --clean

El porqué de la configuración para el cliente de nomachine es porque esta empresa tiene un proyecto de cliente basado en java, así que podemos tener el cliente en cualquier máquina sin necesidad de instalarlo básicamente entrando a una dirección web donde lo alojemos.

Bueno, con esto ya tenemos el servidor funcionando. Ya sólo nos quedaría instalar el cliente y realizar la conexión. Decir que el servidor freenx utiliza openssh como capa de abstracción de comunicación y seguridad, por lo que si ya tenemos acceso a este puerto, no habría que hacer ninguna configuración ni en el cortafuegos de esta máquina ni en los routers a atravesar hasta llegar a la misma.

En la dirección http://www.nomachine.com/download.php tenemos varios clientes para su instalación en distintas plataformas. Para el caso, yo escojí el cliente para linux en su versión rpm.
Lo descargamos y bastaría con un ‘rpm -i nxclient-3.3.0-3.i386.rpm’ (como root y lógicamente corregir el nombre del paquete según el que hayamos descargado).

Una vez instalado, y en su primera ejecución, nos aparece un asistente de conexión el cual es bien sencillo y no da error alguno sobre su configuración. Aún así, os dejo unas captura de ejemplo:

freenx (asistente paso 1)

freenx (asistente paso 1)

  • Session: Nombre con el que identificaremos la conexión a este servidor con esta configuración.
  • Host: Nombre o ip del servidor freenx a conectarse.

freeNX (asistente paso 2)

freeNX (asistente paso 2)

freeNX (asistente paso 3)

freeNX (asistente paso 3)

Una vez finalicemos, aparecerá la pantalla para hacer login con los datos de algún usuario de la máquina donde instalamos el servidor freenx.

freeNX (iniciar sesión)

freeNX (iniciar sesión)

Como vemos, se puede elejir el tipo de sesión para la conexión. Esto es muy útil no sólo para conectarse a distintas máquinas, sino para hacerlo a la misma con distintas configuraciones.
Una vez introducidos los correctos datos, veremos como se realiza la conexión perfectamente (y quedaría como la primera imagen donde se realiza una captura del cliente/servidor en ejecución).

No hay que decir que para que la conexión se establezca, y ya que depende del servicio openssh, este debe estar en funcionamiento y configurado en el cortafuegos para aceptar conexiones.

Importante:
Al conectarme al servidor, la codificación del teclado se queda por defecto en americana. Tras buscar sobre este problema en sus páginas, dí con que ese error se había reportado hace ya bastante tiempo y aún no se le ha dado solución, por lo que recurrí a xmodmap, de forma que hice:

xmodmap -pke > /opt/xmodmap

Con esa línea guardo en /opt la configuración actual del teclado (para escribir en /opt deben ser root).
Básicamente, con este mapa del teclado podemos establecer la configuración del mismo al iniciar sesión como el usuario, así que como utilizo kde3, creo un script bash para autoejecutarse al iniciar sesión en kde.

vim /opt/kde3/share/autostart/teclado.espanol.sh

Dentro de este archivo introducimos:

#!/bin/bash
xmodmap /opt/xmodmap

Guardamos y damos permisos de ejecución

chmod +x /opt/kde3/share/autostart/teclado.espanol.sh

De esta forma, para cada usuario que inicie sesión, se cargará la configuración que nos permitirá tener el teclado en español.

El rendimiento de este servicio, en comparación con vnc (en todas sus plataformas y software del estilo -como remote administrator, etc…-) o el servidor Terminal Server de Microsoft, es alucinante, pudiéndose ver incluso vídeos (a un tamaño pequeño y considerable para su fluidez) y con una compresión y ahorro de ancho de banda impresionantes (sobre una conexión adsl con 320 kbits/s de subidad, se trabaja con una espeluznante fluidez).

Otra curiosidad que me llamó bastante la atención fue que no es necesario tener un servidor X corriendo, de forma que la máquina, se puede detener en el servicio de ejecución 3 (init 3) y aún así, al realizar la conexión, se realizaría perfectamente. Muy útil para servidores los cuales no tendrían que tener unos recursos ocupados con el servidor X para esperar las conexiones (como pasa con vnc).

Por último indicar que el servidor freenx no sólo es un servidor magnífico para conexiones gráficas remotas, sino que es capaz de servir de pasarela para servidores RDP (conexión de escritorio remoto de Microsoft – Terminal Server) y VNC.

Referencias y configuraciones adicionales:
http://en.opensuse.org/FreeNX_Server_HOWTO
http://www.forosuse.org/forosuse/showthread.php?t=11635

Discussion

  1. Pedro Aguilar dice:

    FreeNX esta muy bien, lástima que solo permita dos sesiones iniciadas en el servidor, pero como control remoto esta bastante mejor que VNC, por otro lado se puede crear un servidor que permita multiples sesiones “NX” no esoty seguro si esra con VNC Server, pero yo habia llegado a configurar para 5 usuarios simulataneos para ejecutar una aplicacion mia hecha en “gambas”

  2. La verdad es que no me imaginaba algo así Pedro, así que como nunca se me había dado el caso, me he puesto a comprobarlo.
    Puedo decir que en mis pruebas, NO ocurre lo que dices.
    He iniciado sesión en una máquina virtual la cual contiene una opensuse 11.2 con freenx instalado desde el repositorio http://download.opensuse.org/repositories/X11:/RemoteDesktop/openSUSE_11.2 y no he tenído problemas con la tercera sesión.
    Es más, para no quedar con la duda, he instalado el cliente en dos equipos de compañeros (windows xp) y no he tenido ningún problema en mantener 5 sesiones a la vez.
    Quizás el problema lo tengas porque usaste el servidor de nomachine. El método que explico aquí (y el que uso) utiliza la versión libre de nxserver llamada freenx.
    Saludos…

  3. agustin dice:

    hola tengo unas preguntas,
    el cliente y el servidor se instalan en la misma pc o por separado,para poder ver la conexion que debo hacer?
    me pide un usuario y una contraseña? en que parte de la instalacion la defino? porque las que yo coloco nos las acepta

  4. @Augstin
    El servidor se instala en la máquina a la que quieres acceder y el cliente, lógicamente, en el equipo que utilizarás para conectar al servidor.

    Los usuarios y contraseñas son las cuentas locales de la máquina. Osease, tienes que poner el usuario y contraseña de la máquina a la que accedes.

    Por supuesto, tienes que tener el servicio ssh “corriendo” y no bloquear el respectivo puerto con el cortafuegos (normalmente, puerto 22).

  5. MiguelMTY dice:

    exelente exelente, conexion remotas seguras por shh… genial

  6. Abraham dice:

    Hola Miguel,

    Una aportación muy interesante, tenía serios problemas de velocidad con mis conexiones SSH -X y con freenx va muy rápido, es sorprendente.

    Gracias por tu aporte…

    Sigue así.

    Saludos.

Deje su comentario

Previsualización de comentario
  1. Anónimo dice:





Pings para esta entrada