You are on page 1of 4

Conexión remota a escritorio X11 utilizando VNC

Motivación

El protocolo X11 nos permite deplegar ventanas desde máquinas remotas de manera nativa.
Sin embargo, al hacerlo de forma directa el flujo de datos es demasiado grande coonsiderando que el
servidor remoto está siempre redibujando las ventanas.
Este método es normalmente muy lento e inestable cuando se usan redes remotas.
En redes locales se logra una mejor performance siempre considerando que el ancho de banda utilizado
es alto.

Una solución práctica es iniciar una sesión X11 en el servidor y dejarla en ejecución. Luego, nos
conectamos a esa sesión/escritorio utilizando un cliente VNC.

VNC (Virtual Network Computing).nos permite crear un escritorio virtual en el servidor (vncserver) y
conectarnos con un cliente para tomar el control remoto del escritorio (vncviewer, vinagre, etc.. ) .

Instrucciones

1) Configuración del servidor vnc

- conectarnos al servidor (vía “ssh -p PUERTO usuario@SERVIDOR”)

- crear el directorio “.vnc” en nuestro home ( ojo, empieza con “.” , es un directorio que no será visible
con “ls” a menos que lo listen con “ls -la”)

- ahora es necesario un archivo de configuración “xstartup”. Puedes copiarlo desde otra cuenta (p.e. “cp
~vmoral/.vnc/xstartup ~/.vnc”

- finalmente revisa el contenido del archivo xstartup, es la secuencia inicial de comandos que incluye el
WindowManager (en este caso “wmaker” que es más eficiente, puedes usar fvwm o twm)

2) Como iniciar el servidor vnc

En el servidor remoto iniciamos una nueva sesión con el siguiente comando :

vmoral@rex:~> vncserver -geometry 1024x768

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
New 'X' desktop is rex:3
Starting applications specified in /home/vmoral/.vnc/xstartup
Log file is /home/vmoral/.vnc/rex:3.log

El servidor nos pide ingresar una nueva clave para la primera sesión creada.
Esta clave no es necesariamente la misma con la que te conectas, puede ser
cualquier cosa, más breve quizá.
Al momento de conectarnos, nos pedirá también la clave de la sesión.

Importante es rescatar el nombre y número de la sesión creada : “rex:3”

3) Conexión con cliente remoto

- Usando vncviewer

Este es el método preferido por línea de comandos, pero hay diferentes versiones : tightvnc o tigervnc.
Tigervnc soporta el uso de puertos alternativos ( 9943, 10022, en vez de 22 ) .

vmoral@tachikoma:~> vncviewer -via "vmoral@SERVIDOR -p PUERTO" rex:3


Password:
Connected to RFB server, using protocol version 3.8
Performing standard VNC authentication
Password:
Authentication successful
Desktop name "X"
VNC server default format:
32 bits per pixel.
Least significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Warning: Cannot convert string "-*-helvetica-bold-r-*-*-16-*-*-*-*-*-*-*" to
type FontStruct
Using default colormap which is TrueColor. Pixel format:
32 bits per pixel.
Least significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Tunneling active: preferring tight encoding

Luego debieramos ver en nuestro escritorio la ventana remota .


Si cerramos la ventana, la sesión quedará abierta lo que nos permite retomar el control en el futuro sin
perder nuestro trabajo.

- usando vinagre

Primero deberás revisar si en tu máquina está instalado “vinagre” sino deberás hacerlo.

En la imagen puedes ver un ejemplo de conección . Deberás reemplazar en “Equipo” por tu sesión
remota (en el ejemplo es “rex:3”), y seleccionar el túnel ssh con los parámetros de conección al
servidor en el formato USUARIO@SERVIDOR:PUERTO

4) Como finalizar una sesión vnc

- desde la sesión :
Basta con que salgan del WindowManager mientras lo están accesando (usando exit desde el menú de
WindowMaker, FVWM, TWM.. )

- desde el servidor :
Conociendo el nombre y número de la sesión :

vmoral@rex:~/.vnc> vncserver -kill rex:3


Killing Xvnc process ID 15271

You might also like