sábado, 15 de noviembre de 2008

VNC: Visor de Escritorios Remotos en Ubuntu o Debian

Definición de VNC

VNC es un servicio que crea servidores gráficos sobre pantallas o displays virtuales y permite establecer conexiones remotas desde otros PCs de la red al servidor, de forma gráfica de manera similar a si fuera un servidor de terminales. La diferencia más significativa con respecto a un servidor de terminales Xwindow como el que hemos visto en el artículo anterior es que mientras cuando hacemos una conexión Xwindow el cliente debe disponer de un servidor gráfico, cuando hacemos la conexión con VNCServer, la imagen gráfica se genera en el servidor y básicamente lo que fluye por la red son pantallazos jpg, de esa forma el cliente puede ser más ligero pero la carga del servidor es mucho mayor.

Para que pueda funcionar es necesario instalar y ejecutar el servidor VNC. Este servidor atenderá las peticiones de los clientes. El terminal deberá disponer del cliente de VNC llamado vncviewer del que hay versiones para todos los sistemas operativos incluidos MS-DOS, Linux y Microsoft Windows. En PCs obsoletos que se deseen utilizar como terminales, se podría instalar la versión para MS-DOS del cliente VNC. En http://www.veder.com/nwdsk/index.html existen imágenes de disquetes basadas en Free-DOS que configuran la tarjeta de red y dispone de un cliente VNC para DOS. También se podría instalar una versión de linux reducida como DSL.

Cuando ejecutamos el servidor de VNC, se crea un nuevo escritorio (nuevo display X) al cual se puede acceder de forma remota con el cliente de VNC. Se pueden ejecutar tantos servidores VNC como permita la memoria del sistema, pudiendo varios usuarios acceder de forma simultánea, cada uno a su escritorio independiente, al contrario que la versión del servidor VNC para Windows que sólo permite acceder al escritorio principal. Podemos forzar la introducción de una contraseña para permitir el acceso vía VNC al servidor.

En la estación de trabajo donde se ejecute el visor de VNC, éste aparece como una ventana en el entorno de escritorio local, presentando la interfaz de usuario; todas las funciones del S.O., así como las aplicaciones, se ejecutan en el servidor.

Servidor De escritorios remotos de Ubuntu

Ubuntu por defecto dispone de un servidor y de un cliente de vnc (vncviewer) nada más realizar la instalación normal del sistema. Para habilitar el servidor (es decir, el equipo al que nos querremos conectar de modo remoto), tan sólo tenemos que ir mediante el menú a Sistema - Preferencias - Escritorio Remoto:


dónde debemos habilitar la pestaña de verificación de permitir a otros usuarios ver mi escritorio y si lo deseamos también la de controlarlo. Podemos solicitar una contraseña, cuestión recomendable, que configuraremos aquí mismo. Si pulsamos en la pestaña de propiedades avanzadas, podremos configurar cuestiones como el puerto en el que escucharemos las peticiones (por defecto el 5900) o habilitar el cifrado de las comunicaciones (siempre deberíamos hacerlo)

Para conectarnos desde el cliente, también disponemos del cliente en Aplicaciones - Internet - Visor de Escritorios Remotos:

tan sólo deberemos introducir el nombre o IP del servidor (o pulsando en el botón buscar seleccionamos el equipo al que nos deseamos conectar) y pulsar el botón "Conectar" y nos aparecerá en la ventana el escritorio remoto permitiéndonos manejarlo como si estuviésemos en el mismo:

Otros servidores VNC

Instalación y configuración del servidor VNC

A pesar de que disponemos de otras aplicaciones de acceso remoto al servidor (ssh, free nx server), nos han comentado las bondades del programa VNC, que puede ser ejecutado en sistemas Windows y Linux. Sabemos que para el servicio que necesitamos sus funcionalidades son similares; más aun, pues con VNC podemos conectarnos al servidor mediante el cliente VNC o mediante el navegador de nuestro sistema operativo.

Instalación del servidor VNC

Para disponer de servidor VNC, instalaremos el paquete tightvncserver. Dicho paquete se encuentra en el repositorio 'universe' de Ubuntu. Una vez activado el repositorio 'universe', para instalar la última versión del servidor vnc debemos ejecutar desde una consola de root el siguiente comando:

// Instalación de vncserver
# apt-get install tightvncserver

Puesta en marcha del servidor VNC

Para que se pueda acceder al servidor de forma remota mediante un cliente VNC, primero es necesario que en el servidor se está ejecutando tightvncserver.

Al ejecutar tightvncserver, se crea un servidor gráfico en un display virtual al que se puede acceder remotamente desde otros PCs de la red que dispongan del cliente VNC.

La primera vez que ejecutemos tightvncserver en el servidor, nos pedirá que proporcionemos una contraseña que será la contraseña que deberín utilizar los clientes para conectarse. Ésta contraseña se puede cambiar en cualquier momento ejecutando el comando 'vncpasswd' en el servidor.

Vamos a crear un servidor gráfico, para ello podríamos ejecutar por ejemplo:

// Creación de un servidor grafico
# tightvncserver :1 -geometry 800x600 -depth 24

Con el comando anterior estaríamos creando un nuevo servidor gráfico en un display virtual cuyo número de display será el :1, su tamaño será de 800 x 600 pixels y una profundidad de color de 24 bits/pixel (true color).

Si hemos lanzado el comando tightvncserver con el usuario root, cuando alguien se conecte de forma remota, accederá como root. Si hubieramos lanzado el comando con el usuario pepe (por ejemplo), cuando alguien se conecte de forma remota, lo hará como usuario pepe.

Destrucción de un servidor gráfico VNC

Cada vez que ejecutamos el comando tightvncserver, se crea un nuevo escritorio que puede ser accedido remotamente. Dichos escritorios consumen una cantidad considerable de memoria en el servidor, por lo que solo debemos crear los que necesitemos. Si hemos creado más de los necesarios, podemos destruirlos mediante el comando tightvncserver indicando el número del servidor a destruir, precedido por dos puntos:

// Destrucción de un servidor gráfico VNC
# tightvncserver -kill :1

Conectando al servidor VNC

Conexión con cliente vnc

Para conectar al servidor VNC necesitamos un cliente VNC, como por ejemplo vncviewer. En debian podemos instalarlo directamente con apt-get ejecutando:

// Instalación del cliente VNC
# apt-get install xtightvncviewer

Una vez instalado el cliente, tan solo debemos ejecutarlo y proporcionarle la IP del servidor, seguido de dos puntos ':' y seguido del número de display, ejemplo 192.168.1.239:1 si la dirección IP del servidor fuera la 192.168.1.239 y el número de display fuera 1. Acto seguido nos pedirá la contraseña de acceso que pusimos al instalar el servidor. Dicha contraseña se puede especificar ejecutando el comando 'vncpasswd' en el servidor.

Ejecución del cliente de VNC

Conexión vía web

Otra forma más sencilla de conectar a un servidor vnc es utilizando un navegador web que disponga de máquina virtual java. Con éste método de conexión no es necesaria la instalación del cliente vnc ya que yendo a la dirección http://ip_del_servidor:580x (x = display) podremos acceder al display desde el navegador.

Para que sea posible acceder al servidor vnc por web es necesario instalar el componente java en el servidor ejecutando el siguiente comando:

// Instalación de tightvnc-java
# apt-get install tightvnc-java

Ejemplo, supongamos que hemos creado el display nº 1. Si vamos a http://ip_del_servidor:5801 podremos acceder. Primero deberemos introducir la contraseña.

Acto seguido accederemos al escritorio de igual forma que si utilizáramos el cliente vnc.

Fuentes:


1 comentario:

Anónimo dijo...

Muchas gracias por la información, está muy completa y explicativa.