Instalar un servidor VNC en Ubuntu 22.04 te da la opo­r­tu­ni­dad de acceder a tu es­cri­to­rio Linux desde cualquier lugar. Tanto si trabajas desde casa, viajas por negocios o si­m­ple­me­n­te quieres trabajar desde otra ha­bi­ta­ción, con un VNC Server siempre tendrás acceso a tu entorno de trabajo.

¿Cuáles son las ventajas de un VNC Server en Ubuntu 22.04?

El uso de un servidor VNC en Ubuntu 22.04 ofrece muchas po­si­bi­li­da­des que si­m­pli­fi­can co­n­si­de­ra­ble­me­n­te el trabajo diario, ya que te permite acceder a tu es­cri­to­rio Ubuntu desde cualquier parte del mundo. Esto significa que no tienes que estar en tu es­cri­to­rio para gestionar tus apli­ca­cio­nes y datos. Esta fle­xi­bi­li­dad es es­pe­cia­l­me­n­te práctica si trabajas de forma remota, te en­cue­n­tras de viaje de negocios o quieres trabajar desde di­fe­re­n­tes lugares. Además, el VNC Server es muy fácil de co­n­fi­gu­rar, lo que hace que incluso los usuarios con menos ex­pe­rie­n­cia en te­c­no­lo­gía puedan es­ta­ble­cer rá­pi­da­me­n­te una conexión remota sin problemas.

Un VNC Server también fomenta la co­la­bo­ra­ción en equipos, puesto que permite a varios miembros acceder si­mu­l­tá­nea­me­n­te al mismo es­cri­to­rio. Esto facilita que los equipos co­la­bo­ra­ren de forma eficaz in­de­pe­n­die­n­te­me­n­te de su ubicación, trabajen juntos en proyectos y resuelvan problemas en tiempo real. Los ad­mi­ni­s­tra­do­res y el soporte de TI también pueden resolver errores a distancia sin tener que de­s­pla­zar­se, lo que ahorra tiempo y costes en de­s­pla­za­mie­n­tos, además de citas adi­cio­na­les. En términos de seguridad, muchos VNC Server para Ubuntu 22.04 tienen opciones robustas. Las co­ne­xio­nes cifradas y los distintos métodos de au­te­n­ti­fi­ca­ción protegen tus datos y ga­ra­n­ti­zan que solo las personas au­to­ri­za­das tengan acceso al sistema.

Re­qui­si­tos para un VNC Server en Ubuntu 22.04

En primer lugar, necesitas una in­s­ta­la­ción funcional de Ubuntu 22.04. Muchos VNC Server son to­ta­l­me­n­te co­m­pa­ti­bles con este sistema operativo y todos los paquetes y de­pe­n­de­n­cias ne­ce­sa­rios están di­s­po­ni­bles en los re­po­si­to­rios oficiales de Ubuntu. Asegúrate de que tu sistema está ac­tua­li­za­do para evitar posibles co­m­pli­ca­cio­nes durante la in­s­ta­la­ción. En general, se deben cumplir los si­guie­n­tes re­qui­si­tos:

  • Ubuntu 22.04: una in­s­ta­la­ción funcional y ac­tua­li­za­da de Ubuntu 22.04
  • Conexión de red: conexión Ethernet o WLAN estable para acceso remoto
  • Au­to­ri­za­cio­nes de root: el usuario del VNC Server requiere derechos de root para la in­s­ta­la­ción y co­n­fi­gu­ra­ción
  • Paquetes de software: in­s­ta­la­ción del software del VNC Server como TigerVNC, RealVNC o x11vnc desde los re­po­si­to­rios de Ubuntu
  • Entorno de es­cri­to­rio: se debe instalar el entorno de es­cri­to­rio necesario (por ejemplo, GNOME, XFCE)
  • Co­n­fi­gu­ra­ción del co­r­ta­fue­gos: abre el puerto 5900 o ajusta las reglas del co­r­ta­fue­gos para permitir el tráfico de datos de VNC
VPS gratis
Prueba un servidor virtual de forma gratuita durante 30 días

¡Prueba tu servidor virtual durante 30 días! Si lo solicitas, te re­em­bo­l­sa­re­mos todos los gastos in­cu­rri­dos.

In­s­ta­la­ción del Servidor VNC en Ubuntu 22.04: guía paso a paso

Hay muchas opciones a la hora de elegir un VNC Server y un entorno de es­cri­to­rio. En este tutorial, apre­n­de­rás a instalar los últimos paquetes para el entorno de es­cri­to­rio XFCE y el paquete TigerVNC di­s­po­ni­bles en el re­po­si­to­rio de Ubuntu oficial. Tanto XFCE como TigerVNC requieren pocos recursos y tienen un re­n­di­mie­n­to rápido. Como resultado, la conexión VNC se mantiene fluida y estable incluso con co­ne­xio­nes a Internet más lentas.

Paso 1: ac­tua­li­zar paquetes

Antes de comenzar la in­s­ta­la­ción, asegúrate de que tu sistema está ac­tua­li­za­do. Para ello, ejecuta los si­guie­n­tes comandos para instalar todas las ac­tua­li­za­cio­nes di­s­po­ni­bles:

sudo apt update 
sudo apt upgrade
bash

Paso 2: instalar el entorno de es­cri­to­rio

El VNC Server requiere un entorno de es­cri­to­rio, ya que pro­po­r­cio­na el es­cri­to­rio a través de la red. Ubuntu 22.04 viene con GNOME por defecto, pero también puedes instalar otros entornos de es­cri­to­rio como XFCE, que es es­pe­cia­l­me­n­te ligero.

sudo apt install xfce4 xfce4-goodies
bash

El paquete xfce4-goodies contiene he­rra­mie­n­tas y plugins adi­cio­na­les útiles para XFCE.

Paso 3: crear un nuevo usuario

Una vez instalado el entorno de es­cri­to­rio, es necesario crear un nuevo usuario para ejecutar el VNC Server. Es aco­n­se­ja­ble no hacerlo como Root-User para ga­ra­n­ti­zar la seguridad. En este caso, crearemos un nuevo usuario llamado ”john” y le daremos los permisos ne­ce­sa­rios para ejecutar el VNC Server bajo esta cuenta de usuario.

Primero necesitas crear el usuario “john” y asignarle una co­n­tra­se­ña. Puedes hacerlo con los si­guie­n­tes comandos:

sudo useradd -m -s /bin/bash john 
sudo passwd john
bash

El comando sudo useradd -m -s /bin/bash john crea un nuevo usuario “john” y establece un di­re­c­to­rio de inicio, por lo que el shell por defecto se establece en /bin/bash. A co­n­ti­nua­ción, utiliza sudo passwd john para es­ta­ble­cer una co­n­tra­se­ña para este usuario. Es esencial elegir una co­n­tra­se­ña segura.

Una vez se crea el usuario, debes añadirlo al grupo sudo para que pueda ejecutar comandos ad­mi­ni­s­tra­ti­vos. Esto se hace con el siguiente comando:

sudo usermod -aG sudo john
bash

Este comando permite a “john” ejecutar comandos con derechos ex­te­n­di­dos que se pro­po­r­cio­nan con sudo.

Para comprobar si “john” tiene las au­to­ri­za­cio­nes correctas, inicia sesión como “john” y comprueba los derechos de root. Para ello, ejecuta estos comandos:

su - john 
sudo su
bash

Con su - john cambias al usuario “john” y con sudo su obtienes derechos de root, siempre que la co­n­tra­se­ña se haya in­tro­du­ci­do co­rre­c­ta­me­n­te. Si la au­te­n­ti­ca­ción es correcta, verás un mensaje como root@hostname, que confirma que tienes pri­vi­le­gios de root.

Paso 4: instalar el software del VNC Server

Para este tutorial uti­li­za­re­mos TigerVNC, ya que es una opción de VNC Server am­plia­me­n­te utilizada y bien soportada. Instala TigerVNC con este comando:

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-tools
bash

Este comando instala el software del VNC Server así como algunos paquetes ne­ce­sa­rios para su fu­n­cio­na­mie­n­to.

Paso 5: crear la instancia del VNC Server

Antes de poder iniciar el VNC Server, debes es­ta­ble­cer una co­n­tra­se­ña necesaria para acceder a este. Introduce el siguiente comando en el terminal:

vncserver
bash

Se te pedirá que in­tro­du­z­cas y confirmes una co­n­tra­se­ña para proteger el acceso a tu VNC Server. También puedes se­le­c­cio­nar una opción para es­ta­ble­cer una View-only-Password si deseas que otros usuarios vean la pantalla, pero no tengan control.

Cuando el servidor se inicia por primera vez, se crea una nueva pantalla, no­r­ma­l­me­n­te :1. La salida muestra el número exacto de la pantalla que puedes utilizar.

Observa el siguiente ejemplo:

New 'X' desktop is your-machine-name:1
bash

Apunta el número de pantalla (en este caso :1), ya que lo ne­ce­si­ta­rás para co­ne­c­tar­te al VNC Client.

Paso 6: co­n­fi­gu­rar la instancia del VNC Server

Crea un archivo de co­n­fi­gu­ra­ción para el VNC Server para asegurar que XFCE se carga cuando se inicia el servidor. El archivo ~/.vnc/xstartup puede tener, por ejemplo, el siguiente contenido:

#!/bin/sh 
# Start up the standard system desktop 
unset SESSION_MANAGER 
unset DBUS_SESSION_BUS_ADDRESS 
/usr/bin/startxfce4 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup 
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources 
x-window-manager &
bash

El archivo se puede ejecutar cuando se utiliza este comando:

chmod +x ~/.vnc/xstartup
bash

Paso 7: ejecutar el VNC Server como System Service

Si co­n­fi­gu­ras el VNC Server como servicio de Systemd, podrás iniciarlo, detenerlo y re­ini­ciar­lo como cualquier otro servicio. También puedes utilizar comandos systemd para iniciar el VNC Server au­to­má­ti­ca­me­n­te cuando se arranque el sistema.

Primero crea un nuevo archivo con el editor de texto que quieras:

nano /etc/systemd/system/vncserver@.service
bash

Añade el siguiente contenido al archivo:

[Unit] 
Description=Start TigerVNC server at startup 
After=syslog.target network.target 
 
[Service] 
Type=forking 
User=<your-username> 
PAMName=login 
PIDFile=/home/<your-username>/.vnc/%H:%i.pid 
ExecStart=/usr/bin/vncserver %i 
ExecStop=/usr/bin/vncserver -kill %i 
 
[Install] 
WantedBy=multi-user.target
bash

Sustituye <your-username> por tu nombre de usuario real. Carga el nuevo archivo de servicio y activa el servicio:

sudo systemctl daemon-reload 
sudo systemctl enable vncserver@1.service 
sudo systemctl start vncserver@:1
bash

El comando sudo systemctl enable vncserver@1.service activa el servicio del VNC Server para la pantalla :1 para que se inicie au­to­má­ti­ca­me­n­te la próxima vez que se arranque el sistema. Para ello, se utiliza el archivo de servicio systemd vncserver@.service, en el que %i se sustituye por 1. Esto permite co­n­fi­gu­rar el VNC Server para la pantalla :1 y asegurar que se inicia cada vez que el sistema arranque. El comando crea los accesos directos ne­ce­sa­rios para incluir el servicio en el proceso de arranque correcto.

Paso 8: co­n­fi­gu­rar el co­r­ta­fue­gos

Si tienes un co­r­ta­fue­gos ha­bi­li­ta­do en tu servidor Ubuntu, ne­ce­si­ta­rás habilitar el VNC Port para permitir co­ne­xio­nes remotas. Por defecto, el VNC Server utiliza el puerto 5900 seguido del número de pantalla. Por lo tanto, para la pantalla :1 el puerto será 5901.

Abre el puerto con ufw:

sudo ufw allow 5901/tcp
bash

Comprueba las reglas del co­r­ta­fue­gos para verificar que el puerto está abierto:

sudo ufw status
bash

Este es un ejemplo de un posible Output:

Status: active 
 
To                             Action        From 
--                             ------        ---- 
22/tcp                         ALLOW       Anywhere 
80/tcp                         ALLOW       Anywhere 
443/tcp                        ALLOW       Anywhere 
5901/tcp                       ALLOW       Anywhere 
22/tcp (v6)                    ALLOW       Anywhere (v6) 
80/tcp (v6)                    ALLOW       Anywhere (v6) 
443/tcp (v6)                   ALLOW       Anywhere (v6) 
5901/tcp (v6)                  ALLOW       Anywhere (v6)
bash

Paso 9: es­ta­ble­cer una conexión con el VNC Server

Para es­ta­ble­cer una conexión con tu VNC Server, necesitas un VNC Client en tu ordenador local. Los VNC Client más populares son RealVNC, TigerVNC Viewer y TightVNC Viewer. Para mejorar la seguridad de tu conexión VNC, deberías co­n­si­de­rar usar una conexión en­cri­p­ta­da vía SSH. Esto protege la co­mu­ni­ca­ción entre tu VNC Client y el Server.

Establece una conexión con tu Server a través de SSH y reenvía el VNC Port:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: comando para la conexión segura a un Remote-Server a través del protocolo SSH, que transmite los datos de forma en­cri­p­ta­da
  • -L 59000:localhost:5901: activa un reenvío de puerto local; el tráfico de datos del puerto 59000 de tu ordenador local se reenvía a través del SSH-Tunnel al puerto 5901 del Remote-Server. localhost se refiere al Remote-Server en el que se está eje­cu­ta­n­do el VNC Server
  • C: activa la co­m­pre­sión del tráfico de datos, lo que puede mejorar la velocidad de tra­n­s­mi­sión y reducir la uti­li­za­ción del ancho de banda, es­pe­cia­l­me­n­te con co­ne­xio­nes lentas
  • N: impide que se ejecuten comandos en el Remote-Server; este modo es útil si solo se desea co­n­fi­gu­rar el Tunnel sin iniciar un Shell en el Remote-Server
  • -l <your-username>: es­pe­ci­fi­ca el nombre de usuario con el que se inicia sesión en el Remote-Server
  • <server-ip>: la dirección IP o nombre de host del Remote-Server al que deseas co­ne­c­tar­te vía SSH
Nota

Sustituye <your-username> por tu nombre de usuario y <server-ip> por la dirección IP de tu servidor.

Conéctate al puerto local 5901 que has reenviado a través del SSH-Tunnel in­tro­du­cie­n­do localhost:5901 en tu VNC Viewer.

Este método garantiza que tu conexión VNC se realiza a través de una conexión SSH cifrada y por lo tanto es más segura.

Paso 10: gestionar el VNC Server

Para detener o reiniciar el VNC Server, utiliza los si­guie­n­tes comandos:

Detener el VNC Server:

vncserver -kill :1
bash

Reiniciar el VNC Server:

vncserver :1
bash

Detener el VNC Server (con systemd):

sudo systemctl stop vncserver@:1
bash

Comprueba el estado:

sudo systemctl status vncserver@1
bash

Un posible Output podría ser:

vncserver@1.service - Start TigerVNC server at startup 
      Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled) 
      Active: active (running) since Mon 2024-07-29 16:57:26 UTC; 20s ago 
     Process: 97088 ExecStartPre=/usr/bin/vncserver -kill :1 &gt; /dev/null 2&gt;&1 (code=exited, status=2) 
     Process: 97092 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status=0/SUCCESS) 
    Main PID: 97103 (Xtigervnc) 
        Tasks: 77 (limit: 4665) 
      Memory: 146.7M 
          CPU: 4.459s 
      CGroup: /system.slice/system-vncserver.slice/vncserver@1.service 
. . .
bash

Paso 11: so­lu­cio­nar problemas

Si en­cue­n­tras problemas, comprueba los si­guie­n­tes puntos:

  • Archivos de registro: los archivos de registro del VNC Server se en­cue­n­tran en ~/.vnc. Comprueba estos archivos en busca de mensajes de error que puedan indicar posibles problemas.
  • Co­ne­xio­nes de red: asegúrate de que no haya re­s­tri­c­cio­nes de red o co­r­ta­fue­gos que bloqueen el acceso al VNC Port.
  • Archivos de co­n­fi­gu­ra­ción: comprueba que no haya errores en la co­n­fi­gu­ra­ción del entorno de es­cri­to­rio en el archivo ~/.vnc/xstartup.

Ahora tienes la opción de gestionar tus archivos y programas, así como la co­n­fi­gu­ra­ción del sistema có­mo­da­me­n­te a través de un VNC Server. Si prefiere utilizar Windows, consulta nuestro tutorial “VNC Server en Windows”.

Se­r­vi­do­res dedicados
Re­n­di­mie­n­to e in­no­va­ción
  • Pro­ce­sa­do­res de última ge­ne­ra­ción
  • Hardware dedicado de alto re­n­di­mie­n­to
  • Seguridad de primer nivel
Ir al menú principal