Tutorial

Cómo instalar y configurar VNC en Ubuntu 20.04 [Guía de inicio rápido]

Published on June 11, 2020

Manager, Developer Education

Español
Cómo instalar y configurar VNC en Ubuntu 20.04 [Guía de inicio rápido]

ENTERducción

Virtual Network Computing, o VNC, es un sistema de conexión que le permite usar su teclado y mouse para interactuar con un entorno de escritorio gráfico en un servidor remoto. Hace que administrar archivos, software y ajustes en un servidor remoto sea más fácil para los usuarios que aún no se sienten cómodos con la línea de comandos.

En esta guía de inicio rápido, configurará un servidor VNC con TightVNC en un servidor de Ubuntu 20.04 y se conectará con él de manera segura a través de un túnel SSH. Luego, usará un programa cliente VNC en su equipo local para interactuar con el servidor a través de un entorno de escritorio gráfico.

Requisitos previos

Para completar este tutorial, necesitará lo siguiente:

Paso 1: instalación del entorno de escritorio y el servidor VCN

Después de conectarse a su servidor con SSH, actualice su lista de paquetes:

  1. sudo apt update

A continuación, instale Xfce y el paquete xfce4-goodies, que contiene algunas mejoras para el entorno de escritorio:

  1. sudo apt install xfce4 xfce4-goodies

Cuando finalice la instalación, instale el servidor TightVNC:

  1. sudo apt install tightvncserver

Luego, ejecute el comando vncpasswd para establecer una contraseña de acceso a VNC y crear los archivos de configuración iniciales:

  1. vncpasswd

Se le indicará que introduzca y verifique una contraseña para acceder a su máquina de forma remota:

Output
You will require a password to access your desktops. Password: Verify:

La contraseña debe tener entre seis y ocho caracteres; las contraseñas que contengan más de 8 caracteres se reducirán automáticamente. Una vez que haya verificado la contraseña, tendrá la opción de crear una contraseña de solo lectura, pero no es requisito necesario.

Si en algún momento quiere cambiar su contraseña o agregar una contraseña de solo lectura, vuelva a ejecutar el comando vncpasswd.

Paso 2: configuración del servidor VNC

Los comandos que ejecuta el servidor de VNC durante el inicio están ubicados en un archivo de configuración denominado xstartup en la carpeta .vnc, en el directorio de inicio. En este paso, crearemos una secuencia de comandos de xstartup personalizada que le indicará al servidor de VNC que se conecte con el escritorio Xfce.

Cree un nuevo archivo xstartup y ábralo en un editor de texto, como nano:

  1. nano ~/.vnc/xstartup

Agregue las siguientes líneas al nuevo archivo:

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

Después de shebang, el primer comando en el archivo, xrdb $HOME/. Xresources, le indica al marco de trabajo de la GUI de VNC que lea el archivo. Xresources. El segundo comando le indica al servidor que inicie Xfce.

Guarde y cierre el archivo después de añadir estas líneas. Si utiliza nano, podrá hacerlo presionando CTRL+X, Y y luego ENTER.

Luego, haga que el archivo sea ejecutable:

  1. chmod +x ~/.vnc/xstartup

Ahora, inicie el servidor de VNC con el comando vncserver:

  1. vncserver -localhost

Este comando incluye la opción -localhost, que vincula el servidor de VNC a la interfaz de bucle invertido de su servidor. Esto hará que VNC solo permita las conexiones que provienen del servidor en el que está instalado.

Verá un resultado similar a este:

Output
New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

Aquí, puede observar que el comando se abre como una instancia del servidor predeterminada en el puerto 5901. Este puerto se llama puerto de visualización, y VNC se refiere a él como :1:

Paso 3: conexión segura al escritorio de VNC

Para establecer una conexión segura con el servidor, establecerá un túnel SSH y, luego, le indicará al cliente VNC que se conecte a través de ese túnel en lugar de crear una conexión directa.

Cree una conexión SSH en su equipo local que se reenvíe de forma segura a la conexión localhost para VNC. Puede hacerlo a través de la terminal en Linux o macOS con el siguiente comando ssh:

  1. ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

Aunque en este ejemplo usamos 59000, el puerto local puede ser cualquier puerto que aún no esté bloqueado por otro programa o proceso. También, asegúrese de cambiar sammy por su nombre de usuario en Ubuntu y your_server_ip por la dirección IP de su servidor.

Si está utilizando PuTTY para conectarse a su servidor, puede crear un túnel SSH haciendo clic con el botón secundario en la barra superior de la ventana de la terminal y, luego, en la opción Cambiar la configuración…:

Haga clic con el botón secundario en la barra superior para mostrar la opción Cambiar la configuración

Busque la rama Conexión en el menú con estructura de árbol ubicado en la parte izquierda de la ventana de reconfiguración de PuTTY. Despliegue la rama SSH y haga clic en Túneles. En la pantalla Opciones de control del puerto de enrutamiento SSH, ingrese 59000 como el puerto fuente y localhost:5901 como el destino, tal como se muestra en la imagen:

Ejemplo de la configuración del túnel SSH de PuTTY

Luego, haga clic en el botón Agregar y, a continuación, en el botón Aplicar para implementar el túnel.

Una vez que el túnel se esté ejecutando, utilice un cliente VNC para conectar a localhost:59000. Se le pedirá que autentique usando la contraseña que configuró en el Paso 1.

Una vez conectado, verá el escritorio Xfce predeterminado. Debería tener un aspecto similar a este:

Conexión de VNC al servidor Ubuntu 20.04 con el entorno de escritorio Xfce

Puede acceder a los archivos en su directorio principal con el administrador de archivos o desde la línea de comandos, como se indica aquí:

Administrador de archivos a través de la conexión de VNC a Ubuntu 20.04

Pulse CTRL+C en su terminal para detener el túnel SSH y regresar a su solicitud. Esto también desconectará su sesión de VNC.

Paso 4: ejecución de VNC como servicio del sistema

Al configurar el servidor de VNC para que se ejecute como un servicio de systemd, puede utilizar los comandos de administración de systemd iniciar, detener y reiniciar el servidor, como así también habilitarlo para que comience a ejecutarse cada vez que el servidor arranque.

Primero, cree un nuevo archivo de unidad systemd que llamaremos /etc/systemd/system/vncserver@.service:

  1. sudo nano /etc/systemd/system/vncserver@.service

El símbolo @ al final del nombre nos dejará pasar un argumento que puede utilizar en la configuración del servicio. Lo utilizará para especificar el puerto de visualización de VNC que quiere utilizar cuando administre el servicio.

Agregue las siguientes líneas al archivo, asegurándose de reemplazar los valores de User, Group, WorkingDirectory y del nombre de usuario en el valor de PIDFILE por su nombre de usuario:

/etc/systemd/system/vncserver@.service
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

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

PIDFile=/home/sammy/.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

Guarde y cierre el archivo.

A continuación, informe al sistema de la existencia de un nuevo archivo de unidad:

  1. sudo systemctl daemon-reload

Habilite el archivo de unidad:

  1. sudo systemctl enable vncserver@1.service

El 1 tras el signo @ indica en qué número de pantalla debe aparecer el servicio, en este caso, el valor predeterminado es :1, como se explicó en el paso 2.

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

  1. vncserver -kill :1

Luego, inícielo tal como iniciaría cualquier otro servicio de systemd:

  1. sudo systemctl start vncserver@1

Puede verificar si ha comenzado con este comando:

  1. sudo systemctl status vncserver@1

Para obtener más información sobre systemctl, consulte el tutorial Cómo utilizar Systemctl para administrar los servicios y las unidades de Systemd.

Para volver a conectarse, inicie su túnel SSH de nuevo:

  1. ssh -L 59000:127.0.0.1:5901 -C -N -l sammy your_server_ip

Luego, realice una nueva conexión utilizando el software de su cliente VNC con localhost:59000 para conectarse con su servidor.

Conclusión

Ahora, tiene un servidor de VNC seguro ejecutándose en su servidor Ubuntu 20.04. Ahora podrá administrar sus archivos, software y ajustes con una interfaz gráfica fácil de usar, y podrá ejecutar software gráfico, como navegadores web, de forma remota.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.