Cómo instalar y configurar el servidor VNC en Ubuntu


Virtual Network Computing (VNC) es un sistema gráfico de uso compartido de escritorio que permite que las cuentas de usuario se conecten y controlen de forma remota la interfaz de escritorio de una computadora desde otra computadora o dispositivo móvil.

En este artículo, explicaremos cómo instalar y configurar un servidor VNC en una edición de escritorio Ubuntu 18.04 a través del programa tigervnc-server.

VNC Server: 192.168.56.108
VNC Client: 192.168.56.2

Instalar un entorno de escritorio en Ubuntu

Como dije, VNC es un sistema para compartir escritorio, por lo que necesita tener un entorno de escritorio instalado en su servidor Ubuntu. Puede instalar el DE de su elección ejecutando los comandos correspondientes a continuación. Para el propósito de este artículo, instalaremos Ubuntu Gnome (versión oficial).

$ sudo apt-get install ubuntu-desktop		#Default Ubuntu desktop
$ sudo apt install ubuntu-gnome-desktop	        #Ubuntu Gnome (Official flavor)
$ sudo apt-get install xfce4			#LXDE
$ sudo apt-get install lxde			#LXDE
$ sudo apt-get install kubuntu-desktop		#KDE

Instalar y configurar una VNC en Ubuntu

Tigervnc-server es un programa VNC multiplataforma de alta velocidad que ejecuta un servidor Xvnc e inicia sesiones paralelas de Gnome u otro entorno de escritorio en el escritorio VNC.

Para instalar el servidor TigerVNC y otros paquetes asociados en Ubuntu, ejecute el siguiente comando.

$ sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer

Ahora inicie el servidor VNC ejecutando el comando vncserver como un usuario normal. Esta acción creará la configuración inicial almacenada en el directorio $HOME/.vnc y también le pedirá que configure una contraseña de inicio de sesión.

Introduzca una contraseña (que debe tener al menos seis caracteres) y confírmela/verifíquela. Luego, configure una contraseña de solo lectura si lo desea, de la siguiente manera.

$ vncserver
$ ls -l ~/.vnc 

A continuación, debemos configurar el DE para que funcione con el servidor VNC. Entonces, detenga el servidor VNC usando el siguiente comando, para realizar algunas configuraciones.

$ vncserver -kill :1

Para configurar GNOME o cualquier escritorio que haya instalado, cree un archivo llamado xstartup en el directorio de configuraciones usando su editor de texto favorito.

$ vi ~/.vnc/xstartup

Agregue las siguientes líneas en el archivo. Estos comandos se ejecutarán automáticamente cada vez que inicie o reinicie el servidor TigerVNC. Tenga en cuenta que los comandos pueden variar según el DE que instaló.

#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

Guarde el archivo y establezca el permiso apropiado en el archivo para que pueda ejecutarse.

$ chmod 700 ~/.vnc/xstartup

A continuación, inicie el servidor VNC ejecutando el siguiente comando como usuario normal. Establezca sus propios valores para la geometría de visualización. Además, use el indicador -localhost para permitir conexiones desde el localhost solo y por analogía, solo de usuarios autenticados en el servidor.

Además, VNC usa por defecto el puerto TCP 5900 + N , donde N es el número de pantalla. En este caso, : 1 significa que el servidor VNC se ejecutará en el puerto de pantalla número 5901.

$ vncserver :1 -localhost -geometry 1024x768 -depth 32

Para enumerar las sesiones del servidor VNC en su sistema, ejecute el siguiente comando.

$ vncserver -list

Una vez que se haya iniciado el servidor VNC, verifique el puerto en el que se está ejecutando con el comando netstat.

$ netstat -tlnp

Conexión al servidor VNC a través del cliente VNC

En esta sección, mostraremos cómo conectarse al servidor VNC, pero antes de entrar en eso, debe saber que, por defecto, VNC no es seguro por defecto (no es un protocolo encriptado y puede estar sujeto a rastreo de paquetes) . Este problema se puede solucionar creando un túnel desde la conexión del cliente al servidor a través de SSH.

Al utilizar el túnel SSH, puede reenviar de forma segura el tráfico desde su máquina local en el puerto 5901 al servidor VNC en el mismo puerto.

En la máquina cliente Linux, abra una nueva ventana de terminal y ejecute el siguiente comando para crear un túnel SSH al servidor VNC.

$ ssh -i ~/.ssh/ubuntu18.04 -L 5901:127.0.0.1:5901 -N -f -l tecmint 192.168.56.108

A continuación, instale el cliente vncviewer, como TigerVNC Viewer, de la siguiente manera (puede instalar cualquier otro cliente de su elección).

$ sudo apt install tigervnc-viewer		#Ubuntu/Debian
$ sudo yum install tigervnc-viewer		#CnetOS/RHEL
$ sudo yum install tigervnc-viewer		#Fedora 22+
$ sudo zypper install tigervnc-viewer	        #OpenSUSE
$ sudo pacman -S tigervnc			#Arch Linux

Una vez que se complete la instalación, ejecute su cliente VNC, especifique la dirección localhost: 5901 para conectarse a la pantalla 1 de la siguiente manera.

$ vncviewer localhost:5901

Alternativamente, ábralo desde el menú del sistema, ingrese la dirección arriba y luego haga clic en Conectar.

Se le pedirá que ingrese la contraseña de inicio de sesión de VNC creada anteriormente, ingrésela y haga clic en Aceptar para continuar.

Si la contraseña es correcta, accederá a la interfaz de inicio de sesión de su escritorio. Ingrese su contraseña para acceder al escritorio.

Atención: si está preocupado por la seguridad, es posible que haya notado que el visor de VNC muestra "conexión no cifrada" a pesar de que hemos habilitado el túnel SSH.

Esto se debe a que está diseñado para utilizar esquemas de seguridad específicos distintos del túnel SSH al intentar autenticarse con el servidor. Sin embargo, la conexión es segura una vez que haya habilitado el túnel SSH.

Creación de un archivo de unidad Systemd para TigerVNC Server

Para administrar el servidor VNC en systemd, es decir, iniciar, detener y reiniciar el servicio VNC según sea necesario, necesitamos crear un archivo de unidad para él en el directorio/etc/systemd/system /, con privilegios de root.

$ sudo vim /etc/systemd/system/[email protected]

Luego agregue las siguientes líneas en el archivo:

[Unit] 
Description=Remote desktop service (VNC) 
After=syslog.target network.target 

[Service] 
Type=simple 
User=tecmint 
PAMName=login 
PIDFile=/home/%u/.vnc/%H%i.pid 
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1024x768 
ExecStop=/usr/bin/vncserver -kill :%i 

[Install] 
WantedBy=multi-user.target

Guarde el archivo y ciérrelo.

A continuación, vuelva a cargar la configuración del administrador de systemd para leer el archivo de unidad recién creado, de la siguiente manera.

$ sudo systemctl daemon-reload

Luego, inicie el servicio VNC, habilítelo para que se inicie automáticamente al arrancar el sistema y verifique su estado como se muestra.

$ sudo systemctl start [email protected]
$ sudo systemctl enable [email protected]
$ sudo systemctl status [email protected]

¡Eso es todo! En este artículo, explicamos cómo instalar y configurar el servidor VNC en la distribución de Ubuntu Linux. Comparta sus consultas o pensamientos con nosotros a través del formulario de comentarios a continuación.