jueves, 27 de junio de 2013

Configurar VNC en Debian 6 (LXDE Desktop)

   Hace ya tiempo que me topé con la idea de instalar un servidor VNC sobre un equipo Debian, pero al final no salió adelante y el proyecto quedó ahí.  Ahora me han pedido lo mismo, para un servidor Debian con el gestor de escritorio LXDE, la instalación es relativamente fácil, el problema viene cuando queremos que el servicio VNC se arranque en cada inicio del sistema, de forma desatendida.  He optado por x11vnc ya que me parece el mas flexible y fácil de configurar debido a su extensa documentación.  Bueno, comenzamos.  Lo primero será instalar x11vnc, con nuestro tan querido 'apt-get':

*Para introducir los comandos puedes utilizar sudo en cada uno, o cambiarte a 'root' con el comando su y trabajar tranquilamente sin tener que introducir la contraseña a cada paso.  Los comandos serán explicados partiendo de la base de que se está trabajando como usuario 'root'.

apt-get install x11vnc

   Lo siguiente será crear una contraseña para la conexión al VNC-Server:

x11vnc -storepasswd MiPassword /etc/x11vnc.pass

   Una vez creada la contraseña (no es obligatorio...pero está claro que es MUY recomendable, lo dejo a vuestro juicio) los parámetros que hemos de pasar, o al menos, que en mi caso se pasan a x11vnc son:

x11vnc -noxrecord -noxfixes -noxdamage -rfbauth /etc/x11vnc.pass -bg -o /var/log/x11vnc.log -forever -rfbport 5900 -display :0 -auth /var/lib/gdm/:0.Xauth

   Una visita a 'man x11vnc' os dará una explicación detallada de todos los parámetros usados, pero yo os voy a decir los tres que me parecen más importantes:

-forever: Por defecto, x11vnc se cierra al terminar una conexión VNC, con lo que la siguiente no podrá ejecutarse a menos que se repita el comando superior, este modificador es para evitar eso precisamente, y así quedará a la escucha de conexiones siempre.

-display :0: Indicamos el display al que queremos que se conecte x11vnc. (:0 por defecto).

-auth /var/lib/gdm/:0.Xauth: Cargamos la coockie de autenticación del servidor X (este parametro varía dependiendo del sistema, recuerda: esto sería para Debian 6 LXDE!)

   Ahora, para hacer más comodo el proceso de arranque, he incluido el contenido del comando con todos los modificadores en un pequeño script que guardaremos en /usr/bin con el nombre startvnc.sh:

#!/bin/sh
# Script para inicio automatico del servidor VNC
/usr/bin/x11vnc -noxrecord -noxfixes -noxdamage -rfbauth /etc/x11vnc.pass -bg -o /var/log/x11vnc.log -forever -rfbport 5900 -display :0 -auth /var/lib/gdm/:0.Xauth

*Aseguraos de que el comando esté en una sola línea, aquí no entra de esa manera :(

   Hay que hacer el script ejecutable con:

chmod +x /usr/bin/startvnc.sh

  Ahora lo que mas quebraderos de cabeza me ha dado: ARRANCAR EN CADA REINICIO EL SERVIDOR VNC, para esto he tenido que hacer dos cosas:

1) En 'menu -> preferences -> login window', ir a la pestaña 'seguridad' y activar la entrada automática.  Elegimos el usuario al que nos conectaremos por VNC y le damos a 'cerrar'.



2) El segundo paso es ejecutar el script antes creado al inicio de la sesión de LXDE.  Tendremos que situarnos en la ruta:

cd /etc/gdm/PostLogin/

   Aquí encontraremos un archivo llamado 'Default.sample', lo renombramoscon un:

mv Default.sample Default 

Luego editamos el archivo:

nano Default

Al final de este archivo tendremos que escribir la ruta a nuestro script, que como antes definimos, era '/usr/bin/startvnc.sh'.



  Llegados a este punto, sólo nos falta reiniciar nuestro servidor Debian, y comprobar el acceso mediante algún cliente VNC, yo he usado "UltraVNC Viewer" desde Windows 7, y este es el resultado:



   Se que no es la única forma de hacerlo, pero espero que os sea de utilidad y que no os deis tantos cabezazos como yo con el tema de el inicio desatendido.


Un saludo!


No hay comentarios:

Publicar un comentario