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
Servidor virtual 30 días gratis

Co­n­vé­n­ce­te por ti mismo y elige un servidor virtual.

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