Cómo instalar el servidor VNC en Ubuntu Serv er 12

22
Cómo 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 sólo nos da la interfaz de "línea de comandos". Sin embargo, algunas personas prefieren la GUI (interfaz gráfica de usuario) y para ello se debe instalar el escritorio Gnome en Ubuntu Server. Para instalar los componentes básicos de GNOME, use este comando: Para instalar los componentes básicos de GNOME, use este comando: sudo apt-get install gnome-core Para instalar un escritorio virtual, utilice este comando: sudo apt-get install vnc4server

Transcript of Cómo instalar el servidor VNC en Ubuntu Serv er 12

  • 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: