VNC (Virtual Network Computing) es una tecnología para compartir remotamente el escritorio gráfico. VNC permite visualizar visualmente la pantalla de escritorio visual y controlarla a través de una conexión de red. Es similar al Escritorio Remoto en Windows. Utiliza el protocolo Remote Frame Buffer (RFB) para controlar de forma remota un ordenador o un servidor.
Para ello primero tendremos que instalar un entorno gráfico en el servidor. De los entornos de escritorio más populares disponibles, XFCE es bastante liviano. Utiliza una cantidad sorprendentemente baja de memoria, mientras que al mismo tiempo se ve decente y funcional. Usaremos XFCE en este tutorial. Sin embargo, también puede usar otros entornos de escritorio populares como KDE, GNOME y Unity.
Instalación del entorno gráfico
Lo primero que vamos hacer es instalar el entorno gráfico, para ello, primero tendremos que conectarnos por SSH a nuestro servidor y actualizar repositorios:
# apt update
Tras actualizar los repositorios, instalaremos los paquetes necesarios para utilizar XFCE:
# apt install xfce4 xfce4-goodies gnome-icon-theme dbus-x11
La instalación puede durar un tiempo, ya que son muchos paquetes los que tiene que instalar.
Instalación del servidor VNC
Para este tutorial utilizaremos tightvncserver como servidor VNC:
# apt install tightvncserver
Creación del usuario VNC
Para mantener el servidor seguro y robusto, crearemos una conexión vnc con un usuario diferente a root. Crearemos un usuario llamado vnc usando este comando. Puede mantener el nombre de usuario según su elección. Le pedirá la nueva contraseña y los detalles del usuario. Ingrese la contraseña y puede omitir los demás detalles presionando la tecla ENTER.
# adduser vnc
También añadiremos el usuario al grupo sudo:
# gpasswd -a vnc sudo
Y ahora cambiaremos de usuario con:
# su - vnc
Iniciar servidor VNC
Para iniciar el servicio VNC tan sólo tendrás que hacerlo con este comando:
# touch .Xauthority # vncserver
Tras ejecutarlo, te pedirá una configuración previa:
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
xauth: file /home/vnc/.Xauthority does not exist
New 'X' desktop is 578e1bb09561:1
Creating default startup script /home/vnc/.vnc/xstartup
Starting applications specified in /home/vnc/.vnc/xstartup
Log file is /home/vnc/.vnc/578e1bb09561:1.log
Como estamos iniciando el servidor la primera vez después de la instalación, nos pedirá que establezcamos una contraseña que el cliente use para conectarse. También pedirá establecer una contraseña de solo lectura que permitirá al usuario ver la pantalla pero no interactuar con ella. De forma predeterminada, VNC está configurado para escuchar en el puerto TCP 5901 para la primera pantalla y 5902 para la segunda pantalla, y así sucesivamente.
Abrir puerto en el Firewall del servidor
Nos iremos al panel de Clouding para Administrar las reglas de nuestro Firewall y añadiremos una para VNC:
Conectarse por al servidor con VNC
Probemos nuestra configuración conectándonos al servidor VNC. Para eso necesitamos un cliente VNClocal, depende del sistema operativo local. Estoy usando Windows y voy a usar Realvnc como cliente.
RealVNC está disponible para casi todas las plataformas de sistemas operativos, como Windows, MacOS, Linux (basado en Debian y RPM), Solaris, etc. También puede usar otros clientes.
Nos conectaremos de la siguiente forma: IP_Servidor:5091
Tras poner la contraseña que hemos configurado anteriormente: