Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
Sistema Operativo Linux
• 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
Sistema Operativo Linux
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
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
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
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
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
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:
11
Sistema Operativo Linux
12
Capítulo 30: El Servidor VNC
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
14
Capítulo 30: El Servidor VNC
15
Sistema Operativo Linux
16
Capítulo 30: El Servidor VNC
17
Sistema Operativo Linux
18