Configurar vnc (probado en CentOS, Fedora)

VNC son las siglas en inglés de Virtual Network Computing (Computación en Red Virtual).

VNC es un programa de software libre basado en una estructura cliente-servidor el cual nos permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente. También llamado software de escritorio remoto. VNC permite que el sistema operativo en cada computadora sea distinto: Es posible compartir la pantalla de una máquina de “cualquier” sistema operativo conectando desde cualquier otro ordenador o dispositivo que disponga de un cliente VNC portado.

La versión original del VNC se desarrolló en Reino Unido, concretamente en los laboratorios AT&T, en Cambridge. El programa era de código abierto por lo que cualquiera podía modificarlo y existen hoy en día varios programas para el mismo uso.

En la enseñanza VNC sirve para que el profesor comparta su pantalla con los alumnos, por ejemplo en un laboratorio. También puede usarse para que un técnico ayude a un usuario inexperto, el técnico ve remotamente el problema que reporta el usuario.

La intención de este manual es configurarlo en Linux y acceder desde Windows o Linux para comprobar que funciona, lo realicé en CentOS pero creo que no hay diferencia significativa si lo intentamos en Debian, de estar equivocado sientanse libres de decirmelo.

Paso 1 (optativo), si queremos acceder desde Windows requerimos tener el tabbed_vncviewer, lo podemos conseguir en la siguiente dirección: http://www.mediafire.com/?qyt5hd0jg4y

vnc

El vnc permite administrar la maquina de manera remota, opera en un ambiente de entorno gráfico a diferencia del putty (por ejemplo).

Paso 2, en Linux necesitamos configurar el VNC y para esto requerimos abrir “terminales” se ponen “:” y un número (puede ser cualquiera), por default tomaremos a 13 como la principal (root), de hecho se pueden abrir varias cuentas para root.

Con el tab viewer nos conectaremos a estas terminales (desde Windows), al momento de generar las terminales hay dos cosas por hacer:

1.- asociarla a una cuenta

2.- ponerle un password de terminal

Paso 3, Como asociar la terminal a una cuenta?

SI queremos crear una terminal para root hay que loggearse con la cuenta de root en la caja.

Comando:

# vncserver :numero

Pide un password, en esta ocasión se optó por tomar el mismo de la caja.

Impresiones de la consola:

[root@localhost ~]# vncserver :13

You will require a password to access your desktops.

Password: *****

Verify: *****

New ‘localhost.localdomain:13 (root)’ desktop is localhost.localdomain:13

Creating default startup script /root/.vnc/xstartup

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/localhost.localdomain:13.log

Paso 4, Comprobando que está activo el servidor y que todo opera bien:

root@localhost ~]# netstat -natp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 2119/hpiod

tcp 0 0 0.0.0.0:5807 0.0.0.0:* LISTEN 3558/Xvnc

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1919/portmap

tcp 0 0 0.0.0.0:848 0.0.0.0:* LISTEN 1938/rpc.statd

tcp 0 0 0.0.0.0:5907 0.0.0.0:* LISTEN 3558/Xvnc

tcp 0 0 0.0.0.0:5813 0.0.0.0:* LISTEN 3516/Xvnc

tcp 0 0 0.0.0.0:6007 0.0.0.0:* LISTEN 3558/Xvnc

tcp 0 0 0.0.0.0:5913 0.0.0.0:* LISTEN 3516/Xvnc

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2161/sendmail: acce

tcp 0 0 0.0.0.0:6013 0.0.0.0:* LISTEN 3516/Xvnc

tcp 0 0 :::80 :::* LISTEN 2189/httpd

tcp 0 0 :::22 :::* LISTEN 2143/sshd

tcp 0 0 :::6007 :::* LISTEN 3558/Xvnc

tcp 0 0 ::1:631 :::* LISTEN 2134/cupsd

tcp 0 0 :::443 :::* LISTEN 2189/httpd

tcp 0 0 :::6013 :::* LISTEN 3516/Xvnc

Tienen que estar abiertos los puertos 58XX y 59XX donde las XX pueden ser 13, 7, 15, acorde al número de terminales que abramos.

Paso 5, Ahora se procede a abrir en windows el VNC, en File-> New Connection, se pone en VNC server la IP del equipo Linux y el número de terminal que se haya creado (en nuestro caso 13), siendo que lo ingresado queda (probablemente entrará a un modo gráfico algo tosco, pero eso se cubre más adelante en este minitutorial), bastaría con loggearse como root:

vntab

Si queremos correr el viewer desde un linux basta con teclear ALT+F2 y escribir: vncviewer.

Paso 6, Sugiero que en vez de dejarlo para root creemos un usuario diferente:

# adduser zapien

Nos logeamos como zapien y configuramos para este nuevo usuario:

[zapien@localhost ~]$ vncserver :20

You will require a password to access your desktops.

Password:

Verify:

xauth: creating new authority file /home/zapien/.Xauthority

New ‘localhost.localdomain:20 (zapien)’ desktop is localhost.localdomain:20

Creating default startup script /home/zapien/.vnc/xstartup

Starting applications specified in /home/zapien/.vnc/xstartup

Log file is /home/zapien/.vnc/localhost.localdomain:20.log

Paso 7, se requiere automatizar el servidor para que automaticamente abra todos los numeros de terminales que se quieren.

Si no estamos como root, hacer lo siguiente:

# su -lm

# password: ******

# kate /etc/sysconfig/vncservers (cualquier editor de texto, puede ser gedit, vi, vim, etc)

Se abre algo como esto:

# 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&gt;.

# 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=”20:zapiEsto lo modificamos nosotros

# VNCSERVERARGS[2]=”-geometry 800×600 -nolisten tcp -nohttpd -localhost”

Paso 8, Ahora, si queremos ver el escritorio remoto realmente como lo tiene el usuario a quien queremos conectar (a todo color jeje) hay que hacer la siguiente configuración.

[root@localhost ~]# cd .vnc

[root@localhost .vnc]# vi xstartup

#!/bin/sh

# Uncomment the following two lines for normal desktop:

unset SESSION_MANAGER (descomentarla)

exec /etc/X11/xinit/xinitrc (descomentarla)

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey

vncconfig -iconic &

xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &

twm &

Y si queremos que el sistema lo arranque desde el inicio:

# chkconfig vncserver on

Listo, se reinicia y confirmamos que salió bien conectandonos desde otra máquina (o si quieres desde la misma no hay gran lio):

vnprueba

Como nota extra tenemos que el vnc se conecta al entorno gráfico por lo que no importa como esté configurado el Linux (me refiero a si anda en modo texto, por asi decirlo) vnc siempre nos dará visual xD, lo que lo hace ideal para configurar servidores por ejemplo.