jueves, 28 de abril de 2011

Configurar servicio VNC Server en RedHat

Buenas,
Como primer tutorial voy a explicar como configurar el servicio VNCserver en Red Hat Enterprise Linux 5.
Lo primero que debemos saber es si tenemos instalado el paquete del servicio VNC, en la versión comentada del RHEL el paquete que viene junto con el disco de instalación se llama vnc-server y para saber si está instalado lo podemos probar con el comando rpmquery:
[root@sistemasRHEL ~]# rpmquery vnc-server
vnc-server-4.1.2-9.el5
Arrancar el servicio:
[root@sistemasRHEL ~]# service vncserver start
Iniciando Servidor VNC:           [  OK ]

Configurar con la herramienta  system-config-services que cada vez que arranque la máquina levante el servicio Vnc:



Ahora toca preparar las sesiones para poder acceder a ellas remotamente, yo voy a configurar el servicio Vnc para que cuando acceda a la sesión 2 (ip_servidor:2) me conecte al entorno del usuario sistemas y con la sesión 1 (ip_servidor:1) al entorno del usuario Root. Para habilitar la sesión 2 para el usuario sistemas nos tenemos que logear con el mismo, y ejecutar el siguiente comando:
[sistemas@sistemasRHEL ~]$ vncserver :2
You will require a password to access your desktops.
Password:
Verify:
New 'sistemas:2 (sistemas)' desktop is sistemas:2
Creating default startup script /home/sistemas/.vnc/xstartup
Starting applications specified in /home/sistemas/.vnc/xstartup
Log file is /home/sistemas/.vnc/sistemas:2.log
[sistemas@sistemasRHEL ~]$

Como veis nos solicita crear una contraseña de acceso que nos pedirá cuando tratemos de acceder remotamente, también se creó una carpeta oculta en donde se encuentran varios archivos, uno de los cuales tocaremos más adelante. Para el usuario root repetimos los mismos pasos pero sustituyendo el número de sesión:
[sistemas@servidorRHEL ~]$ su - root
Password:
[root@servidorRHEL ~]# vncserver :1
You will require a password to access your desktops.
Password:
Verify:
New 'sistemas:1 (root)' desktop is sistemas:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/sistemas:1.log
[root@sistemas ~]#

Después de hacer esto ya podemos conectarnos desde nuestros clientes Vnc pero nos aparecerá un escritorio muy sencillo, si nos sirve así lo dejamos pero si queremos que aparezca el mismo escritorio que usamos de forma local (gnome, kde, etc), tenemos que realizar unas pequeñas modificaciones en el archivo xstartup que se encuentra en el directorio .vnc del HOME de cada usuario, editamos el archivo y lo modificamos para que quede asi:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Hay que descomentar las dos lineas que están en rojo y la ultima linea" twm &" cambiarla por "startkde" o "gnome-session" según el entorno gráfico que queramos.
Para que esta configuración tenga efecto tenemos que finalizar la ejecución del servicio Vnc que está corriendo para esta sesión (hay un proceso por cada usuario que tenga una sesión vnc) y volver a iniciar la sesión:

[sistemas@sistemasRHEL ~]$ vncserver -kill :2
Killing Xvnc process ID 25691
[sistemas@sistemasRHEL ~]$ vncserver :2
New 'sistemas:2 (sistemas)' desktop is sistemas:2
Starting applications specified in /home/sistemas/.vnc/xstartup
Log file is /home/sistemas/.vnc/sistemas:2.log
[sistemas@sistemasRHEL ~]$

Hay que hacer lo mismo con el usuario root (para mi caso) si quiero cambiar el tipo de escritorio, en mi caso lo dejaré como se generó por defecto.
Así como está todo, cuando reiniciemos la máquina las sesiones de VNC no volverán a estar activas por cada usuario, si queremos que se activen durante el arranque de sistema debemos modificar el archivo /etc/sysconfig/vncservers agregando al final lo siguiente:
VNCSERVERS="1:root 2:sistemas"
de esta forma, la próxima vez que reiniciemos el equipo las sesiones ya estarán listas para acceder.

Detalles a tener en cuenta:
  1. Si queremos cambiar la contraseña de acceso a la sesión de un usuario, por ejemplo sistemas, debemos primero esta logueados con el mencionado usuario y luego ejecutar el comando vncpasswd en la línea de comandos.
    [sistemas@servidorRHEL ~]$ vncpasswd
    Password:
    Verify:
    [sistemas@servidorRHEL ~]$
  2. Yo particularmente tuve y suelo tener casos en que cuando se inicia el equipo después de un fallo (se apagó mal), el servicio VNC no levanta las sesiones, si a alguien más le ocurre esto es porque suelen quedar colgados archivos temporales de las sesiones en el directorio /tmp/.X11-unix/ y que no pueden ser sobre escritos durante el proceso de arranque, yo lo solucioné borrando esos archivos temporales y reiniciando el servicio VNC otra vez, sin embargo, es bastante molesto andar borrando esos archivos cada vez que hay problemas.
Espero que os sea de utilidad.

Un saludo a todos!

1 comentario:

  1. Slots of Vegas Casino & Hotel - MapyRO
    Compare real Vegas slots from 의정부 출장안마 20 providers at Mapyro. Browse Slots of 춘천 출장마사지 Vegas Casino & 광명 출장샵 Hotel 대전광역 출장마사지 location in Las 영천 출장샵 Vegas, NV.

    ResponderEliminar