# ¿Cómo se instala VNC Server en Ubuntu 22.04? Guía paso a paso

Instalar un servidor VNC en Ubuntu 22.04 te da la oportunidad de acceder a tu escritorio Linux **desde cualquier lugar**. Tanto si trabajas desde casa, viajas por negocios o simplemente quieres trabajar desde otra habitació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 posibilidades que simplifican considerablemente el trabajo diario, ya que te permite acceder a tu escritorio Ubuntu **desde cualquier parte del mundo**. Esto significa que no tienes que estar en tu escritorio para gestionar tus aplicaciones y datos. Esta flexibilidad es especialmente práctica si trabajas de forma remota, te encuentras de viaje de negocios o quieres trabajar desde diferentes lugares. Además, el VNC Server es muy fácil de configurar, lo que hace que incluso los usuarios con menos experiencia en tecnología puedan establecer rápidamente una conexión remota sin problemas.

Un VNC Server también fomenta la colaboración en equipos, puesto que permite a varios miembros **acceder simultáneamente al mismo escritorio**. Esto facilita que los equipos colaboraren de forma eficaz independientemente de su ubicación, trabajen juntos en proyectos y resuelvan problemas en tiempo real. Los administradores y el soporte de TI también pueden resolver errores a distancia sin tener que desplazarse, lo que ahorra tiempo y costes en desplazamientos, además de citas adicionales. En términos de seguridad, muchos VNC Server para Ubuntu 22.04 tienen opciones robustas. Las conexiones cifradas y los distintos métodos de autentificación protegen tus datos y garantizan que solo las personas autorizadas tengan acceso al sistema.

## Requisitos para un VNC Server en Ubuntu 22.04

En primer lugar, necesitas una instalación funcional de Ubuntu 22.04. Muchos VNC Server son totalmente compatibles con este sistema operativo y todos los paquetes y dependencias necesarios están disponibles en los repositorios oficiales de Ubuntu. Asegúrate de que tu sistema está actualizado para evitar posibles complicaciones durante la instalación. En general, se deben cumplir los siguientes requisitos:

- **Ubuntu 22.04:** una instalación funcional y actualizada de Ubuntu 22.04
- **Conexión de red:** conexión Ethernet o WLAN estable para acceso remoto
- **Autorizaciones de root:** el usuario del VNC Server requiere derechos de root para la instalación y configuración
- **Paquetes de software:** instalación del software del VNC Server como TigerVNC, RealVNC o x11vnc desde los repositorios de Ubuntu
- **Entorno de escritorio:** se debe instalar el entorno de escritorio necesario (por ejemplo, GNOME, XFCE)
- **Configuración del cortafuegos:** abre el puerto 5900 o ajusta las reglas del cortafuegos para permitir el tráfico de datos de VNC

## Instalació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 escritorio. En este tutorial, aprenderás a instalar los últimos paquetes para el entorno de escritorio XFCE y el paquete TigerVNC disponibles en el **repositorio de Ubuntu** oficial. Tanto XFCE como TigerVNC requieren pocos recursos y tienen un rendimiento rápido. Como resultado, la conexión VNC se mantiene fluida y estable incluso con conexiones a Internet más lentas.

### Paso 1: actualizar paquetes

Antes de comenzar la instalación, asegúrate de que tu sistema está actualizado. Para ello, ejecuta los siguientes comandos para instalar todas las actualizaciones disponibles:

```bash
sudo apt update 
sudo apt upgrade
```

### Paso 2: instalar el entorno de escritorio

El VNC Server requiere un entorno de escritorio, ya que proporciona el escritorio a través de la red. Ubuntu 22.04 viene con GNOME por defecto, pero también puedes instalar otros entornos de escritorio como XFCE, que es especialmente ligero.

```bash
sudo apt install xfce4 xfce4-goodies
```

El paquete `xfce4-goodies` contiene herramientas y plugins adicionales útiles para XFCE.

### Paso 3: crear un nuevo usuario

Una vez instalado el entorno de escritorio, es necesario crear un nuevo usuario para ejecutar el VNC Server. Es aconsejable no hacerlo como **Root-User** para garantizar la seguridad. En este caso, crearemos un nuevo usuario llamado ”john” y le daremos los permisos necesarios para ejecutar el VNC Server bajo esta cuenta de usuario.

Primero necesitas crear el usuario “john” y asignarle una contraseña. Puedes hacerlo con los siguientes comandos:

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

El comando `sudo useradd -m -s /bin/bash john` crea un nuevo usuario “john” y establece un directorio de inicio, por lo que el shell por defecto se establece en `/bin/bash`. A continuación, utiliza `sudo passwd john` para establecer una contraseña para este usuario. Es esencial elegir una contraseña segura.

Una vez se crea el usuario, debes añadirlo al grupo sudo para que pueda ejecutar comandos administrativos. Esto se hace con el siguiente comando:

```bash
sudo usermod -aG sudo john
```

Este comando permite a “john” ejecutar comandos con derechos extendidos que se proporcionan con sudo.

Para comprobar si “john” tiene las autorizaciones correctas, inicia sesión como “john” y comprueba los derechos de root. Para ello, ejecuta estos comandos:

```bash
su - john 
sudo su
```

Con `su - john` cambias al usuario “john” y con `sudo su` obtienes derechos de root, siempre que la contraseña se haya introducido correctamente. Si la autenticación es correcta, verás un mensaje como `root@hostname`, que confirma que tienes privilegios de root.

### Paso 4: instalar el software del VNC Server

Para este tutorial utilizaremos **TigerVNC**, ya que es una opción de VNC Server ampliamente utilizada y bien soportada. Instala TigerVNC con este comando:

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

Este comando instala el software del VNC Server así como algunos paquetes necesarios para su funcionamiento.

### Paso 5: crear la instancia del VNC Server

Antes de poder iniciar el VNC Server, debes establecer una contraseña necesaria para acceder a este. Introduce el siguiente comando en el terminal:

```bash
vncserver
```

Se te pedirá que introduzcas y confirmes una contraseña para proteger el acceso a tu VNC Server. También puedes seleccionar una opción para establecer 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, normalmente `:1`. La salida muestra el número exacto de la pantalla que puedes utilizar.

Observa el siguiente ejemplo:

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

Apunta el número de pantalla (en este caso `:1`), ya que lo necesitarás para conectarte al VNC Client.

### Paso 6: configurar la instancia del VNC Server

Crea un archivo de configuració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:

```bash
#!/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 &
```

El archivo se puede ejecutar cuando se utiliza este comando:

```bash
chmod +x ~/.vnc/xstartup
```

### Paso 7: ejecutar el VNC Server como System Service

Si configuras el VNC Server como servicio de Systemd, podrás iniciarlo, detenerlo y reiniciarlo como cualquier otro servicio. También puedes utilizar comandos systemd para iniciar el VNC Server automáticamente cuando se arranque el sistema.

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

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

Añade el siguiente contenido al archivo:

```bash
[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
```

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

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

El comando `sudo systemctl enable vncserver@1.service` activa el servicio del VNC Server para la pantalla `:1` para que se inicie automáticamente 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 configurar el VNC Server para la pantalla `:1` y asegurar que se inicia cada vez que el sistema arranque. El comando crea los accesos directos necesarios para incluir el servicio en el proceso de arranque correcto.

### Paso 8: configurar el cortafuegos

Si tienes un cortafuegos habilitado en tu servidor Ubuntu, necesitarás habilitar el VNC Port para permitir conexiones 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`:

```bash
sudo ufw allow 5901/tcp
```

Comprueba las reglas del cortafuegos para verificar que el puerto está abierto:

```bash
sudo ufw status
```

Este es un ejemplo de un posible Output:

```bash
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)
```

### Paso 9: establecer una conexión con el VNC Server

Para establecer 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 considerar usar una conexión encriptada vía SSH. Esto protege la comunicació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:

```bash
ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
```

- `ssh`: comando para la conexión segura a un Remote-Server a través del protocolo SSH, que transmite los datos de forma encriptada
- `-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á ejecutando el VNC Server
- `C`: activa la compresión del tráfico de datos, lo que puede mejorar la velocidad de transmisión y reducir la utilización del ancho de banda, especialmente con conexiones lentas
- `N`: impide que se ejecuten comandos en el Remote-Server; este modo es útil si solo se desea configurar el Tunnel sin iniciar un Shell en el Remote-Server
- `-l <your-username>`: especifica 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 conectarte 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 introduciendo `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 siguientes comandos:

**Detener el VNC Server:**

```bash
vncserver -kill :1
```

**Reiniciar el VNC Server:**

```bash
vncserver :1
```

**Detener el VNC Server (con systemd):**

```bash
sudo systemctl stop vncserver@:1
```

**Comprueba el estado:**

```bash
sudo systemctl status vncserver@1
```

Un posible Output podría ser:

```bash
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 
. . .
```

### Paso 11: solucionar problemas

Si encuentras problemas, comprueba los siguientes puntos:

- **Archivos de registro:** los archivos de registro del VNC Server se encuentran en `~/.vnc`. Comprueba estos archivos en busca de mensajes de error que puedan indicar posibles problemas.
- **Conexiones de red:** asegúrate de que no haya restricciones de red o cortafuegos que bloqueen el acceso al VNC Port.
- **Archivos de configuración:** comprueba que no haya errores en la configuración del entorno de escritorio en el archivo `~/.vnc/xstartup`.

Ahora tienes la opción de gestionar tus archivos y programas, así como la configuración del sistema cómodamente a través de un VNC Server. Si prefiere utilizar Windows, consulta nuestro tutorial “[VNC Server en Windows](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/vnc-server-windows/)”.


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/servidores/configuracion/vnc-server-ubuntu-2204/](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/vnc-server-ubuntu-2204/) for AI/LLM consumption.