Está en: » Artículos »

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.3 – One click install - instalación con un simple click
  • 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.

Una vez añadido dicho repositorio, instalamos el servidor freenx.

zypper install FreeNX

Configurar el servicio (para ambos métodos):

nxsetup --install --auto --setup-nomachine-key --clean

Se ha configurado con la llave de nomachine. ¿El por qué? 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 (como root y lógicamente corregir el nombre del paquete según el que hayamos descargado):

rpm -i nxclient-3.3.0-3.i386.rpm

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 elegir 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 correctamente. 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

Comentarios

  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”

    • 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…

  2. 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

    • @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).

  3. MiguelMTY dice:

    exelente exelente, conexion remotas seguras por shh… genial

  4. 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.

  5. angelMTY dice:

    Que tal tenia funcionando muy bien el FreeNX sobre OpenSUSE 11.2, cambie el numero de puerto de ssh, al igual el node.conf, reinicie ambos servicios, y me aparece lo siguiente

    NX> 203 NXSSH running with pid: 2220
    NX> 285 Enabling check on switch command
    NX> 285 Enabling skip of SSH config files
    NX> 285 Setting the preferred NX options
    NX> 200 Connected to address: 192.168.2.1 on port: 125
    NX> 202 Authenticating user: nx
    NX> 208 Using auth method: publickey
    NX> 204 Authentication failed.

    alguna sugerencia….

    • ¿El usuario conecta bien por ssh directamente? En una openSuse 11.1 bajo openVZ no he tenido ningún problema en conectar haciendo el cambio.

      Prueba a hacer una reinstalación limpia:

      nxsetup --uninstall
      nxsetup --install --auto --setup-nomachine-key --clean

      Suerte…

Deje su comentario

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





Pings para esta entrada