FreeNX – Algo más que un ‘Términal Server’ mejorado (alternativa a vnc server en Linux)
Enviado por Miguel Carmona :: 11 de Enero de 2009
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)
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)
- 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 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)
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

Todas las entradas
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”