Blogia
tecnolakis

VNCSERVER

Primero nos aseguramos de que los paquetes estan instalados.

 

1
2
3
4
[root@nirvana ~]# rpm -qa | grep vnc
vnc-4.1.2-9.el5
vnc-server-4.1.2-9.el5
[root@nirvana ~]#

Para un CentOS se puede instalar utilizan yum, para un RHEL … buscar las rpm en los CD de instalación.

La primera vez que intentamos iniciar el servicio puede fallar.

 

1
2
3
[root@nirvana .vnc]# service vncserver start
Starting VNC server: no displays configured [ OK ]
[root@nirvana .vnc]#

El mensaje de error es explícito: el servicio no ha sido configurado. Hay tener en cuenta que el vnc se utiliza para acceder a una sesión gráfica en un servidor remoto. Esto quiere decir que se accede a una sesión directamente, no a un gestor de sesiones. El vnc server va a escuchar en un puerto distinto para cada sesión que se defina. De manera predeterminada el vnc server escucha en el puerto 5900 y cada sesión escucha por un puerto consecutivo a partir de ese número. Por lo tanto, para conectar con el cliente VNC, serán el 5900 + “número de pantalla o display number”, 5901 para el 1, 5902 para el 2 y asi sucesivamente.

Se utiliza como guía el tutorial de CentOS.

Primero se crea la cuenta de usuario si no existiera. En la sesión de dicho usuario se crea una contraseña para conectarse por vnc (puede ser similar pero es independiente de la contraseña del sistema).

 

1
2
3
4
5
adduser juan
su - juan
vncpasswd
# tecleamos la contraseña para el vnc
exit

El vnc utiliza un archivo para iniciar aplicaciones al iniciar la sesión gráfica. Este archivo xstartupdeberia quedar de la siguiente manera:

/home/juan/.vnc/xstartup

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh

(while true ; do xterm ; done ) &
# 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 &

Nota: las modificaciones se señalan en negritas, el resto es el archivo original que se creo al ejecutar el comando vncpasswd.

El siguiente paso seria configurar el vnc server. Para esto se edita el archivo correspondiente.

/etc/sysconfig/vncservers

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# <URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>.

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-nohttpd" to prevent web-based VNC clients connecting.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
VNCSERVERS="1:juan"
VNCSERVERARGS[1]="-geometry 1024x768"

Solo queda reiniciar el servicio y ya se podra realizar una conexión remota por vnc, a la ip del server, por el puerto 5901, para iniciar una sesión gráfica como el usuario juan.

 

1
2
3
4
5
6
7
8
9
10
[root@nirvana ~]# service vncserver restart
Shutting down VNC server: 1:juan [ OK ]
Starting VNC server: 1:juan
New 'nirvana:1 (juan)' desktop is nirvana:1

Starting applications specified in /home/juan/.vnc/xstartup
Log file is /home/juan/.vnc/nirvana:1.log

[ OK ]
[root@nirvana ~]#

Si se quieren definir mas sesiones, se ejecuta el comando vncpasswd para cada usuario y se declaran el archivo de configuración del vnc server

/etc/sysconfig/vncservers

1
2
3
VNCSERVERS="1:juan 2:osvaldo"
VNCSERVERARGS[1]="-geometry 800x600"
VNCSERVERARGS[2]="-geometry 1024x768"

Si se quisiera modificar el puerto, por ejemplo, hacer que la primera sesión escuche por el puerto 5900, se puede editar el archivo vncserver directamente, definir que el vnc server se inicie utilizando el puerto 5899 de manera tal que cuando se le sume 1 por el primer desktop, quede corriendo por el 5900 como se quiere.

Original /usr/bin/vncserver - linea 125

1
$vncPort = 5900 + $displayNumber;

Modificado /usr/bin/vncserver

1
$vncPort = 5899 + $displayNumber;

Se reinicia el servicio para aplicar los cambios realizados.

 

1
service vncserver restart

0 comentarios