Está en la página 1de 18

Capítulo 30: El Servidor VNC

Capítulo 30:

El Servidor VNC
• ¿Qué es VNC?
• ¿En actividad puedo usar VNC?
• ¿Qué hace a VNC diferente frente a otros sistemas?
• Componentes de VNC.
• El servidor vncserver.
• Archivos que se usan con VNC.
• VNC corriendo en un servidor Linux.
• Corriendo el visualizador (viewer) VNC.
• Usando un browser web como visualizador (viewer).


Sistema Operativo Linux


Capítulo 30: El Servidor VNC

El Servidor VNC
30.1. ¿Qué es VNC?
VNC (Virtual Network Computing, Computación de red virtual) es un software de control remoto
que le permite ver e interactuar con una computadora (el servidor) usando un simple programa
(el visualizador) en otra computadora en cualquier lugar de Internet. Las computadoras no tienen
porque ser del mismo tipo, por ejemplo usted puede usar VNC para ver, desde su casa en su PC
con Windows XP, a una máquina Linux Fedora de su oficina.

Figura 30.1. Escenario de VNC.


Sistema Operativo Linux

30.2. ¿En qué actividad puedo usar VNC?


El software de control remoto como VNC tiene una variedad de usos. Le permite a una persona
en una computadora remota asumir el control de otra computadora a través de la red, como si ésta
estuviera situada al frente de la otra máquina.
Hoy, una actividad común es resolver problemas a distancia, usando VNC. En otras palabras, usted
podría estar en su oficina de Lima tomando el control de una máquina localizada en Arequipa,
para resolver algún problema de configuración o para instalar alguna aplicación informática.
Otro ejemplo de porque usar VNC es el siguiente. En muchas instalaciones de cómputo, para
conectarse a un host Linux, suelen utilizar telnet o ssh, eso no está nada mal, pero en vez de
interactuar con el host vía una interfaz de comandos de línea, porqué no hacerlo con VNC en un
ambiente gráfico, sin duda más agradable o amigable.
Lo anterior también permite a un administrador de red tomar el control de alguna máquina para
diagnosticar y resolver problemas remotamente. Ojo, no interesando inclusive la tecnología del
equipo.
A nivel de educacional, también VNC me permite interactuar simultáneamente con un grupo de
usuarios a los que se les puede estar entrenando remotamente. El instructor puede tomar el control
de cualquier máquina remota, si fuera el caso, con la finalidad de brindar asistencia.
Y así, se pueden ir mencionando una y otra actividad en donde VNC brinda una solución en
términos prácticos.

30.3. ¿Qué hace a VNC diferente frente a otros sistemas?


Hay tres aspectos que mencionar:
• VNC es completamente una plataforma cruzada. Un escritorio corriendo en una máquina Linux
puede ser desplegado en una PC con cualquier Windows, o en una máquina con Solaris, o
en cualquier otra arquitectura. Hay un visualizador Java que permite que cualquier escritorio
pueda ser visto con cualquier browser que soporte Java.

• Es pequeño y simple. El visualizador de Windows por ejemplo, mide casi 150K y puede ser
corrido desde un diskette. El visualizador de Java completo mide menos de 100K y toma
menos tiempo en descargarse que algunas páginas web.

• Es gratuito y se puede descargar y redistribuirlo bajo los términos de GNU General Public
License.


Capítulo 30: El Servidor VNC

30.4. Componentes de VNC


VNC consiste en dos componentes:
• Un servidor, que corre en la computadora a que se quiere acceder remotamente,

• Un visualizador (viewer), que corre en la computadora donde usted trabaja.

Figura 30.2. Componentes de VNC.

Hay dos rasgos importantes en VNC:


• El servidor y el visualizador pueden estar en máquinas diferentes y en distintos tipos de
computadora. El protocolo que conecta el servidor y el visualizador es simple.

• Ningún estado se guarda en el visualizador. Si se rompe la conexión del visualizador con el


servidor y después se reconectan, no producirá pérdida de datos. Porque la conexión puede
rehacerse desde cualquier parte.

30.4.1. En redes (networking)


El software de VNC requiere una conexión TCP/IP entre el servidor y el visualizador. Éste es
el protocolo estándar para LANs, WANs, banda ancha y dialup PSI (Proveedor de servicios de
Internet).
Cada computadora tiene una única dirección IP y también puede tener un nombre en el DNS.
Usted necesitará conocer la dirección IP o el nombre del servidor cuando usted se conecta al
servidor desde el visualizador.


Sistema Operativo Linux

30.5. El servidor vncserver


El servidor vncserver se usa para iniciar un escritorio VNC (Virtual Network Computing). El
archivo vncserver es un Perl script que simplifica el proceso de inicio de un servidor Xvnc. Este
corre Xvnc con las opciones apropiadas e inicia algunas aplicaciones X que se despliegan en el
escritorio.
Sintaxis:
vncserver [:display#] [-name desktop-name] [-geometry widthxheight]
[-depth depth] [-pixelformat format] [Xvnc-options...]
vncserver -kill :display#
El script vncserver puede correr sin ninguna opción. En este caso él elegirá el primer display
disponible (usualmente :1), inicia Xvnc con ese display, y corre un par de aplicaciones básicas
para interactuar. También se puede especificar el número de display, por ejemplo: vncserver :15
Las opciones de vncserver son:
Opción Descripción

Cada escritorio tiene un nombre que puede ser desplegado por el viewer
(visualizador).
- n a m e
El default para “host:display# (username)” puede ser cambiado
desktop-
con esta opción. Esto se pasa al script xstartup vía la variable de
name
entorno $VNCDESKTOP, permitiendo correr diferentes conjuntos de
aplicaciones de acuerdo al nombre del escritorio.
-geometry
Específica el tamaño del escritorio a crearse. El default es: 1024x768.
widthxheight
Específica la “profundidad” del pixel en bits del escritorio a crearse. El
-depth depth default es 16, otros posibles valores son 8, 15 y 24. Cualquier otro valor
puede causar un extraño comportamiento de las aplicaciones.
Específica el formato del pixel del servidor (BGRnnn o RGBnnn). El
-pixelformat valor para una “profundidad” de 8 es BGR233 (el 2 representa al azul,
format el 3 al verde y el siguiente 3 al rojo), el valor 16 es RGB565 y para 24
es RGB888.
Es una alternativa a la visualización default TrueColor, que permite
correr un servidor Xvnc con una visualización PseudoColor (por
ejemplo uno que use una paleta de colores), que se usan en viejas
-cc 3
aplicaciones X que trabajan con sólo un display. Valores distintos a 3
(PseudoColor) y 4 (TrueColor) usando la opción –cc, puede causar un
mal comportamiento.

Capítulo 30: El Servidor VNC

“Mata” un escritorio VNC previamente iniciado con vncserver. El ID


-kill : del proceso está almacenado en “$HOME/.vnc/host:display#.pid”. Por
display# ejemplo:
# vncserver -kill $DISPLAY

Para asignar un display a un usuario, ingrese con la cuenta del usuario y ejecute el programa
servidor; por ejemplo:
[invitado@fedora3 .vnc]$ vncserver :1 –name invitado1 –depth 16 –geometry 800x600

New ‘invitado1’ desktop is fedora3.iciuni.edu.pe:1


Starting applications specified in /home/invitado/.vnc/xstartup
Log file is /home/invitado/.vnc/fedora3.iciuni.edu.pe:1.log

Ejecuto el comando nmap que es una herramienta de exploración de red y scanner de seguridad
para que muestre los puertos y los servicios asociados.
[invitado@fedora3 .vnc]$ nmap 192.168.1.243
Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2005-12-13 18:38 PET
Interesting ports on fedora3.iciuni.edu.pe (192.168.1.243):
(The 1643 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
513/tcp open login
514/tcp open shell
515/tcp open printer
631/tcp open ipp
5801/tcp open vnc-http-1
5901/tcp open vnc-1
6001/tcp open X11:1
8080/tcp open http-proxy
Nmap run completed -- 1 IP address (1 host up) scanned in 0.395 seconds


Sistema Operativo Linux

Aprecie que el servicio VNC “escucha” por el puerto TCP 5901 para este caso en particular. Se
puede establecer una relación entre el display (:#) y el puerto TCP (como 590#). Por ejemplo al
ejecutar vncserver asignará el display “:2” y el puerto asociado será “5902”.
Para ver los procesos VNC asociados con el terminal del usuario invitado (pts/5) ejecute ps, como
se muestra a continuación:
[invitado@fedora3 .vnc]$ ps
PID TTY TIME CMD
3358 pts/5 00:00:00 bash
3880 pts/5 00:00:00 Xvnc
3884 pts/5 00:00:00 vncconfig
3885 pts/5 00:00:00 xterm
3886 pts/5 00:00:00 twm
4037 pts/5 00:00:00 ps

En la siguiente sección se verán los archivos asociados con VNC. Ahora sólo mencionaré el PID
del servidor VNC X que se encuentra en el archivo:
fedora3.iciuni.edu.pe:1.pid
Ejecute:
[invitado@fedora3 .vnc]$ cat fedora3.iciuni.edu.pe:1.pid

3880

Aprecie los dos despliegues anteriores. Puede ver que el PID de Xvnc es 3880.
Si por alguna razón se presentan problemas de despliegue en el terminal, entonces se debe “matar”
el proceso infractor; en este caso se usa la orden:
vncserver -kill :display#
o en su defecto:
kill -9 PID
Si se desea eliminar “el problema”, se haría así:
[invitado@fedora3 .vnc]$ kill -9 3880


Capítulo 30: El Servidor VNC

30.6. Archivos que se usan con VNC


Archivo Descripción
vncserver Inicia o detiene el servidor VNC.
Es un shell script que corre cuando el escritorio es
$HOME/.vnc/xstartup
iniciado. Contiene aplicaciones X.
$HOME/.vnc/passwd Es el archive de contraseñas de VNC.
El archivo log para Xvnc y las aplicaciones se
$HOME/.vnc/host:display#.log
inician con xstartup.
Identifica el ID del proceso Xvnc, es usado con la
$HOME/.vnc/host:display#.pid
opción –kill.

Veamos estos archivos asociados al usuario invitado:


[invitado@fedora3 .vnc]$ ls -l
total 48
-rw-rw-r-- 1 invitado invitado 3497 dic 9 05:48 fedora3.iciuni.edu.pe:1.log
-rw-rw-r-- 1 invitado invitado 6 dic 9 05:01 fedora3.iciuni.edu.pe:1.pid
-rw- --- --- 1 invitado invitado 8 nov 20 12:42 passwd
-rwxr-xr-x 1 invitado invitado 334 nov 20 12:43 xstartup

El archivo fedora3.iciuni.edu.pe:1.log, es el archivo que registra los sucesos con el servidor Xvnc.
El archivo fedora3.iciuni.edu.pe:1.pid, es el archivo que contiene el ID del procesos asociado
con el servidor Xvnc.
Para cambiar las aplicaciones de arranque puede editar el archivo $HOME/.vnc/xstartup. En la
siguiente página vemos su contenido.
[root@fedora3 .vnc]# cat xstartup
#!/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 &


Sistema Operativo Linux

30.7. VNC corriendo en un servidor Linux


Para las aplicaciones X, un servidor VNC se presenta simplemente como despliegue normal X
frente a usted. Usted puede iniciar un nuevo servidor VNC en una máquina Linux digitando:
[invitado@fedora3 .vnc]$ vncserver
Si usted no ha corrido un servidor VNC antes, el sistema el pedirá una contraseña; necesaria
para conectarse al servidor. Todos sus servidores en la misma máquina Linux usarán la misma
contraseña, y usted puede cambiarla más adelante usando:
[invitado@fedora3 .vnc]$ vncpasswd
Password:
Verify:

En una estación de trabajo denominada “main” se pueden correr tantos servidores como se desee
y ellos se presentaran como: main:0, main:1, etc. Normalmente vncserver escogerá el primer
número del despliegue disponible y se lo mostrará, pero usted puede especificar el número de
despliegue que desee. Por ejemplo:
[invitado@fedora3 .vnc]$ vncserver :1
En vez de usar el despliegue por defecto de las pantallas X puede hacer que las aplicaciones se
inicien en otro despliegue usando la variable DISPLAY, por ejemplo:
[invitado@fedora3 .vnc]$ xterm –display main:2 &
Usted puede “matar” un servidor VNC en el Linux ejecutando la orden:
[invitado@fedora3 .vnc]$ vncserver -kill :2
O, como se mostró en la sección anterior, usando el comando kill. Asuma que el PID de Xvnc
es 3950:
[invitado@fedora3 .vnc]$ kill -9 3950

10
Capítulo 30: El Servidor VNC

30.8. Corriendo el visualizador (viewer) VNC


Usted puede correr un visualizador como TightVNC o RealVNC desde Windows XP como se
aprecia en la siguiente figura:

Figura 30.3. Viewer: TightVNC.

Una vez lanzado el viewer TightVNC, este presenta una ventana en donde debe ingresar el nombre
del servidor y el puerto TCP. Debe recordar que el puerto está asociado al número del display. La
figura siguiente muestra esa ventana:

Figura 30.4. Realizando la conexión.

11
Sistema Operativo Linux

Si su sistema no resuelve el nombre FQDN (fedora3.iciuni.edu.pe) entonces tendrá que ingresar


la dirección IP del servidor Linux. Esto se aprecia en la siguiente figura:

Figura 30.5. Realizando la conexión.

Presione el botón OK y el sistema le pedirá que ingrese su contraseña como se aprecia en la


siguiente figura:

Figura 30.6. Ingresando contraseña.

12
Capítulo 30: El Servidor VNC

Después de verá el siguiente despliegue remoto:

Figura 30.7. Despliegue remoto.

Si usted está conectando a un servidor Windows o Mac, el número de despliegue será 0 a menos
que usted lo cambie. Éste puede omitirse.

13
Sistema Operativo Linux

En la siguiente figura apreciará trabajando al viewer, accediendo al servidor Linux Fedora:

Figura 30.8. Trabajando con Mozilla Firefox.

14
Capítulo 30: El Servidor VNC

30.9. Usando un browser web como visualizador (viewer)


Los servidores VNC también contienen un pequeño servidor web. Si usted se conecta con un
browser web, usted puede descargar la versión de Java del visualizador, y usarlo para ver el
servidor. Usted puede ver su escritorio con cualquier navegador Java, a menos que usted este
usando un proxy para conectarse al web. El servidor escucha las conexiones HTTP en el puerto
5800 más el número de despliegue. Así para ver el despliegue 1 de la máquina “fedora3”, usted
ingresaría en el URL de su browser: http://fedora3.iciuni.edu.pe:5801/

Figura 30.9. Realizando la conexión.

15
Sistema Operativo Linux

Un applet le pedirá por su contraseña, y después se desplegará el escritorio.


Atención a la secuencia:
[root@fedora3 ~]# yum search vnc
[root@fedora3 ~]# yum install vnc

Figura 30.10. Ingresando contraseña.

16
Capítulo 30: El Servidor VNC

Figura 30.11. Invocando RedHat vía Mozilla Firefox.

17
Sistema Operativo Linux

18

También podría gustarte