S03 - VNC (Virtual Network Computing)

Volver al curso

Objetivo: acceder a escritorio remoto.

Instalando entorno de escritorio (GUI)

Como estamos en Ubuntu Server, por defecto no tenemos entorno de escritorio.

sudo apt update && sudo apt install -y xfce4 xfce4-goodies

Podríamos probarlo con startxfce4, pero no lo haremos porque no hay monitor (“headless”).

Tenemos que instalar el servidor VNC para poder entrar en el entorno de escritorio.

Servidor VNC

Como VNC es un protocolo abierto, hay muchos servidores posibles: TightVNC, TigerVNC, x11vnc…

sudo apt install -y tigervnc-standalone-server

Una vez instalado, debes crear una contraseña para acceder al servidor:

vncpasswd

La contraseña es para ver e interactuar en el servidor. También te dejará crear otra para invitar a gente sólo a que vea lo que haces. Comprueba que se ha guardado:

cat ~/.vnc/passwd # no se ve porque está hasheada, y está en hexadecimal
hexdump ~/.vnc/passwd

Fichero de configuración de arranque de TigerVNC:

nano ~/.vnc/xstartup

Haremos que arranque el entorno de escritorio cuando se arranque el servidor:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

Ponle permisos de ejecución:

chmod u+x ~/.vnc/xstartup

Fichero de configuración de TigerVNC:

nano ~/.vnc/config

Configuramos resolución y densidad de píxeles (dpi). Hay más opciones.

geometry=1920x1080
dpi=96

Iniciar servidor VNC

Arrancamos el servidor VNC, y con él el entorno de escritorio XFCE:

vncserver -localhost no	# importante para que abra el puerto

Resultado:

	New Xtigervnc server 'spavbprofe:1 (ubuntu)' on port 5901 for display :1.

Fíjaet que en el output pone desktop at :1. Ese es el número de pantalla. En principio VNC usa el puerto UDP 5900, y a ese número se le van sumando puertos según las pantallas que crees: 5901 en este caso.

Antes de conectar, vamos a comprobar si la sesión está activa:

vncserver -list

Resultado:

TigerVNC server sessions:

X DISPLAY #     RFB PORT #      PROCESS ID      SERVER
:1              5901            187             Xtigervnc
:2              5902            1203            Xtigervnc

Matar una sesión:

vncserver -kill :1

Fuente e información extra (crear un servicio que se ejecute automáticamente): https://linuxize.com/post/how-to-install-and-configure-vnc-on-ubuntu-20-04/

 Conexión cliente

Usaremos RealVNC Viewer, que tiene versiones para todos los dispositivos. Hasta hay para teléfono móvil y tablet.

Para saber más: servidor XRDP

XRDP es una versión libre de Microsoft Remote Desktop Protocol (RDP). Puedes verlo en el tutorial: https://linuxize.com/post/how-to-install-xrdp-on-ubuntu-20-04/

--

Volver al curso