-
Cmo instalar el servidor VNC en Ubuntu Server 12.04
VNC es un protocolo que se utiliza para compartir el escritorio
con otros usuarios / equipos en la red /
Internet. Para compartir un escritorio, el servidor VNC debe ser
instalado y configurado en el equipo a
compartir y el cliente VNC se debe ejecutar en el equipo que
desea tener acceso al escritorio compartido.
Cuando instalamos la nueva copia de Ubuntu Server, que slo nos
da la interfaz de "lnea de comandos".
Sin embargo, algunas personas prefieren la GUI (interfaz grfica
de usuario) y para ello se debe instalar el
escritorio Gnome en Ubuntu Server. Para instalar los componentes
bsicos de GNOME, use este
comando:
Para instalar los componentes bsicos de GNOME, use este
comando:
sudo apt-get install gnome-core
Para instalar un escritorio virtual, utilice este comando:
sudo apt-get install vnc4server
-
Para utilizar VNC, necesitamos configurar una contrasea con la
siguiente orden:
vncserver
Para hacer una modificacin en el script de inicio, hay que matar
la sesin que acabamos de iniciar:
vncserver -kill :1
Ahora abra el archivo que tenemos que editar:
cd ~
nano .vnc/xstartup
Y modificar el archivo para que se vea as:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
-
#exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 1280x1024+10+10 -ls -title
"$VNCDESKTOP
Desktop" &
#x-window-manager &
A continuacin, cree la sesin VNC, una vez ms:
vncserver -geometry 1024x600
-
Ahora, descargue VNCViewer en la computadora desde la que
queremos tener acceso al escritorio
compartido. Conectar usando ServerIP/Name:1 (1 es para la
ventana del servidor VNC), en mi caso
es tendo: 1.
Introduzca la contrasea que hemos creado con el comando
vncserver:
Ahora tenemos acceso GUI a nuestro servidor.
-
Despus de reiniciar el servidor, no vamos a ser capaces de
conectar con el servidor con VNC, esto se
debe a que el comando vncserver -geometry 1024600 que hemos
escrito ms arriba no es
persistente. Para resolver este problema, utilizaremos un
excelente script de Justin Buser .
Como usuario sudo crear el archivo (y el directorio si no
existe):
sudo mkdir -p /etc/vncserver
sudo touch /etc/vncserver/vncservers.conf
sudo nano /etc/vncserver/vncservers.conf
Agregar los servidores segn sea necesario para cada usuario
mediante la adicin de algo como lo
siguiente en el fichero de vncservers.conf que acabamos de
crear:
VNCSERVERS="1:arbab"
VNCSERVERARGS[1]="-geometry 1024x600 -depth 24"
-
A continuacin, cree un script de inicio vaco y hacerlo
ejecutable:
sudo touch /etc/init.d/vncserver
sudo chmod +x /etc/init.d/vncserver
sudo nano /etc/init.d/vncserver
Agregue lo siguiente a /etc/init.d/vncserver:
#!/bin/bash
unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && .
/etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
RETVAL=0
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
-
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
DISP="${display%%:*}"
export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ]
&& vncserver :${DISP}
${VNCUSERARGS}"
fi
done
}
stop() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Shutting down VNCServer: "
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
export USER="${display##*:}"
su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null
2>&1
fi
done
echo -e "\n"
echo "VNCServer Stopped"
}
-
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
-
esac
Vamos a necesitar ejecutar el comando vncserver POR LO MENOS UNA
VEZ con cada usuario que quiere
iniciar la sesin. Puse eso en maysculas, porque si usted se
salta este paso nada de eso va a funcionar.
Por ltimo, haga lo siguiente:
sudo update-rc.d vncserver defaults 99
Ahora, reinicie el servicio escribiendo:
sudo service vncserver restart
-
Capacidad de conectarse a mltiples usuarios:
Crear un usuario local, con el siguiente comando:
sudo adduser hussain
Cambie al usuario recin creado y ejecute el comando vncserver
para ello:
su hussain
vncserver
-
Vaya al directorio y editar el archivo xstartup:
cd ~
nano .vnc/xstartup
Modifique el archivo para que se vea as:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
-
#x-terminal-emulator -geometry 1280x1024+10+10 -ls -title
"$VNCDESKTOP
Desktop" &
#x-window-manager &
Ahora abra el archivo /etc/vncserver/vncservers.conf como
usuario sudo:
sudo nano /etc/vncserver/vncservers.conf
Aadir servidores para el usuario recin creado aadiendo algo como
esto:
VNCSERVERS="1:arbab 2:hussain"
VNCSERVERARGS[1]="-geometry 1024x600 -depth 24"
VNCSERVERARGS[2]="-geometry 1024x600 -depth 24"
-
Reinicie el servicio:
sudo service vncserver restart
Conctate con usuario recin creado usando tendo:2, donde tendo es
mi nombre del servidor:
Introduzca la contrasea que hemos creado con el comando
vncserver:
-
Ahora tenemos acceso a nuestro servidor de interfaz grfica de
usuario para el usuario recin creado.
Evitar que Gnome se inicie en el arranque del servidor:
Gnome se inicia automticamente en el arranque en Ubuntu 12.04
LTS, si conectamos un monitor a
nuestro servidor veremos que la interfaz grfica de usuario est
esperando por nosotros para iniciar sesin
-
Para evitarlo, edite el archivo gdm.conf:
sudo nano /etc/init/gdm.conf
Comenta estas seis lneas:
#start on ((filesystem
# and runlevel [!06]
# and started dbus
# and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
# or stopped udev-fallback-graphics))
# or runlevel PREVLEVEL=S)
-
Reinicie el servidor y en la pantalla ya no aparecer la GUI:
VNC encriptada a traves del tnel ssh:
De forma predeterminada, VNC no es un protocolo seguro. VNC
utiliza cifrado durante la conexin inicial y
el login (las contraseas no son enviadas en texto plano). Luego
de eso, todos los datos de VNC estn
desencriptados y un hacker podra sniffear la sesin VNC. Es mejor
(ms seguro) para iniciar el servidor
VNC slo en 127.0.0.1 (localhost) y direccionar todo a un tnel
SSH. (Para ello, hay opciones en Putty).
-
En Ubuntu, edite /etc/vncserver/vncservers.conf:
sudo nano /etc/vncserver/vncservers.conf
Aadir la opcin -localhost:
VNCSERVERS="1:arbab 2:hussain"
VNCSERVERARGS[1]="-geometry 1024x600 -depth 24 -localhost"
VNCSERVERARGS[2]="-geometry 1024x600 -depth 24 -localhost"
Reinicie el servicio:
sudo service vncserver restart
-
Aqu las imgenes de cmo conectar un VNC Server a travs de PuTTY
(SSH) desde Windows, pero vale
para la versin de Linux tambin.
Ejecute PuTTY, introduzca la direccin IP o nombre de host del
servidor VNC:
En el panel izquierdo, vaya a Connection -> SSH ->
Tunnels:
Source Port:590x(Where x is a value that we set in
vncservers.conf,like 1 for
arbab)
-
Destination:localhost:590x(Same x value that we used above in
source port)
Haga clic en el botn Open para conectarse al servidor a travs de
SSH:
-
Entrar al Ubuntu (VNC Server) con nombre de usuario y
contrasea:
Al conectarse con xito a VNC Server, encontraremos el puerto
5901 que est en modo de escucha en
localhost:
netstat -a
-
Ejecutar VNC Viewer y entrar como localhost:1 (1 es para el
usuario arbab, que hemos definido en el
archivo vncservers):
Introduzca la contrasea para conectarse al servidor VNC:
-
Ahora, estamos conectados remotamente al VNC Server a travs de
un tnel ssh: