Cómo instalar y configurar VNC en Ubuntu 20.04 LTS

1 mar 2021 5 min di lettura
Cómo instalar y configurar VNC en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Virtual Network Computing (VNC) es un sistema gráfico para compartir escritorio que le permite usar su teclado y mouse para controlar remotamente otra computadora. Es una alternativa de código abierto al protocolo de escritorio remoto (RDP) de Microsoft.

Esta guía describe los pasos necesarios para instalar y configurar un servidor VNC en Ubuntu 20.04 LTS Focal Fossa. También le mostraremos cómo conectarse de forma segura al servidor VNC a través de un túnel SSH.

Prerrequisitos

Antes de continuar con el tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.

Si desea instalar VNC en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar el entorno de escritorio

La mayoría de los servidores no tienen un entorno de escritorio instalado, por lo que comenzaremos instalando un entorno de escritorio ligero.

Hay varios entornos de escritorio (DE) disponibles en los repositorios de Ubuntu. Instalaremos Xfce. Es un entorno de escritorio rápido, estable y liviano, lo que lo hace ideal para su uso en un servidor remoto.

Ingrese los siguientes comandos para instalar Xfce en el servidor:

sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Dependiendo de su sistema, descargar e instalar los paquetes de Xfce puede llevar algún tiempo.

Instale el servidor VNC

También hay varios servidores VNC disponibles en repositorios de Ubuntu como TightVNC, TigerVNC y x11vnc. Cada servidor VNC tiene diferentes fortalezas y debilidades en términos de velocidad y seguridad.

Instalaremos TigerVNC. Es un servidor VNC de alto rendimiento mantenido activamente.

Escriba el siguiente comando para instalar TigerVNC en su servidor Ubuntu:

sudo apt install tigervnc-standalone-server tigervnc-common

Ahora que el servidor VNC está instalado, el siguiente paso es crear la configuración inicial y establecer la contraseña. No use sudo cuando ejecute el comando vncserver

vncserver

Se le pedirá que ingrese y confirme su contraseña y si desea establecerla como una contraseña de solo lectura. Si elige establecer una contraseña de solo lectura, el usuario no podrá interactuar con la instancia de VNC con el mouse y el teclado.

La contraseña debe contener de seis a ocho caracteres. Las contraseñas con más de 8 caracteres se truncarán automáticamente.

Después de verificar la contraseña, tendrá la opción de crear una contraseña de solo lectura. Los usuarios que inicien sesión con la contraseña de solo lectura no podrán controlar la instancia de VNC con el mouse o el teclado. Esta es una opción útil si desea demostrar algo a otras personas que usan su servidor VNC, pero no es necesario.

You will require a password to access your desktops.

 Password:
 Verify:
 Would you like to enter a view-only password (y/n)? n
 /usr/bin/xauth: file /home/noviello/.Xauthority does not exist

 New 'server2.noviello.it:1 (noviello)' desktop at:1 on machine server2.noviello.it

 Starting applications specified in /etc/X11/Xvnc-session
 Log file is /home/noviello/.vnc/server2.noviello.it:1.log

 Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/noviello/.vnc/passwd:1 to connect to the VNC server.

Tenga en cuenta que si desea cambiar su contraseña o agregar una contraseña de solo vncpasswd, puede hacerlo con el comando vncpasswd:

vncpasswd

En este punto, el servidor VNC está instalado y funcionando. Ahora configurémoslo para que inicie Xfce y nos dé acceso al servidor a través de una interfaz gráfica.

La primera vez que ejecuta el vncserver, crea y almacena el archivo de contraseña ~/.vnc Este directorio se creará si no está presente.

El parámetro :1, después del nombre de host en la salida anterior, indica el número de puerto de visualización en el que se está ejecutando el servidor vnc. En nuestro caso, el servidor se ejecuta en el puerto TCP 5901 (5900 + 1). Si crea una segunda instancia con vncserver, se ejecutará en el siguiente puerto libre :2, es decir, el servidor se ejecutará en el puerto 5902 (5900 + 2).

Lo que es importante recordar es que cuando se trabaja con servidores VNC: :X es un puerto de pantalla al que hace referencia 5900+X

Antes de continuar con el siguiente paso, detenga la instancia de VNC usando el vncserver con la -kill y el número de servidor como argumento. En este ejemplo, el servidor se está ejecutando en el puerto 5901 ( :1 ), por lo que lo detendremos con:

vncserver -kill:1
Killing Xtigervnc process ID 6458... success!

Configurar el servidor VNC

Ahora que tanto Xfce como TigerVNC están instalados en el servidor, necesitamos configurar TigerVNC para usar Xfce. Para hacer esto, cree el siguiente archivo:

nano ~/.vnc/xstartup

Pegue las siguientes líneas de código

#!/bin/bash
 xrdb $HOME/.Xresources
 startxfce4 &

Guarde y cierre el archivo. Los comandos anteriores se ejecutarán automáticamente cada vez que inicie o reinicie el servidor TigerVNC.

El ~/.vnc/xstartup también debe tener permisos de ejecución. Ejecute el chmod comando chmod para asegurarse de que los permisos sean correctos:

chmod u+x ~/.vnc/xstartup

Si necesita ingresar opciones adicionales al servidor VNC, cree un archivo llamado config y agregue una opción por línea. Aquí hay un ejemplo:

geometry=1920x1084
 dpi=96

Luego reinicie el servidor VNC:

vncserver -localhost

Cree un archivo de unidad Systemd

Al configurar el servidor VNC para que se ejecute como un servicio systemd, puede iniciarlo, detenerlo y reiniciarlo según sea necesario, como cualquier otro servicio. También puede usar los comandos de administración de systemd para asegurarse de que VNC se inicie cuando se inicie el servidor.

Primero, cree un nuevo archivo de unidad llamado /etc/systemd/system/[email protected]:

sudo nano /etc/systemd/system/[email protected]

El @ al final del nombre nos permitirá pasar un argumento que se puede utilizar en la configuración del servicio. Lo usará para especificar el puerto de pantalla VNC que desea usar al administrar el servicio.

Agregue las siguientes líneas al archivo. Asegúrese de cambiar el valor de User, Group, WorkingDirectory y el nombre de usuario en el valor PIDFILE para que coincida con su nombre de usuario:

[Unit]
 Description=Start TightVNC server at startup
 After=syslog.target network.target

 [Service]
 Type=forking
 User=noviello
 Group=noviello
 WorkingDirectory=/home/noviello

 PIDFile=/home/noviello/.vnc/%H:%i.pid
 ExecStartPre=-/usr/bin/vncserver -kill:%i > /dev/null 2>&1
 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost:%i
 ExecStop=/usr/bin/vncserver -kill:%i

 [Install]
 WantedBy=multi-user.target
/etc/systemd/system/[email protected]

El ExecStartPre detiene VNC si ya se está ejecutando. El ExecStart inicia VNC y establece la profundidad de color en un color de 24 bits con una resolución de 1280x800. También puede cambiar estas opciones de inicio para adaptarlas a sus necesidades. Además, tenga en cuenta que el ExecStart nuevamente incluye la opción -localhost

Guarde y cierre el archivo.

Luego, informe al sistema del nuevo archivo de unidad:

sudo systemctl daemon-reload

Habilitar archivo de unidad:

sudo systemctl enable [email protected]

1 seguido del @ indica el número mostrado en el que debe aparecer el servicio, en este caso el valor predeterminado es :1.

Detenga la instancia actual del servidor VNC si aún se está ejecutando:

vncserver -kill:1

Luego, inícielo como lo haría con cualquier otro servicio systemd:

sudo systemctl start vncserver@1

Puede verificar que comenzó con este comando:

sudo systemctl status vncserver@1

Si se inició correctamente, la salida debería verse así:

[email protected] - Remote desktop service (VNC)
 Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
 Active: active (running) since Tue 2020-02-11 21:57:43 CET; 4s ago
 Process: 6629 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill:1 > /dev/null 2>&1 

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.