Cómo configurar VNC en Ubuntu 20.04/22.04: Guía completa de escritorio remoto seguro

目次

1. Introducción

¿Por qué utilizar VNC en Ubuntu?

Entre las distribuciones de Linux más populares, Ubuntu se utiliza en diversos contextos, como desarrollo o servidores. Normalmente, los servidores Ubuntu se administran mediante la línea de comandos, pero en muchos casos es necesario contar con una interfaz gráfica de usuario (GUI). Aquí entra en juego la tecnología VNC (Virtual Network Computing). Con VNC es posible conectarse a una máquina Ubuntu de manera remota a través de la red y trabajar como si se estuviera usando el escritorio local. Esto reduce la necesidad de comandos complejos y facilita el uso tanto a principiantes en Linux como a usuarios de Windows.

La necesidad de un entorno de escritorio remoto

En los últimos años, con la expansión del teletrabajo, la demanda de instalar VNC en Ubuntu para crear un entorno de escritorio remoto ha aumentado considerablemente. En particular, habilitar la GUI en servidores Ubuntu de desarrollo mejora la eficiencia en configuración y mantenimiento. Además, existe la necesidad de gestionar entornos Ubuntu en la nube o VPS con interfaz gráfica, donde VNC cumple un papel fundamental.

Público objetivo y propósito de este artículo

Este artículo está dirigido a las siguientes personas:
  • Quienes desean instalar VNC en Ubuntu por primera vez
  • Quienes quieren contar con un entorno GUI porque solo la CLI no les resulta suficiente
  • Quienes sienten limitaciones al trabajar solo con SSH y prefieren VNC en lugar de RDP
  • Quienes desean un entorno remoto cómodo que incluya también entrada en japonés
En este artículo explicaremos, de forma clara y paso a paso, cómo instalar un servidor VNC en Ubuntu y conectarse al escritorio de manera remota. También cubriremos aspectos prácticos como la configuración para entrada en japonés y la conexión segura mediante túneles SSH.

2. Requisitos previos y preparación

Qué verificar antes de instalar VNC en Ubuntu

Para instalar y usar un servidor VNC en Ubuntu se requieren algunos requisitos previos y preparativos. En esta sección se resumen los puntos a revisar antes de comenzar.

Versiones de Ubuntu soportadas

Este artículo se centra en Ubuntu 20.04 LTS y Ubuntu 22.04 LTS. Estas versiones siguen siendo ampliamente utilizadas y ofrecen estabilidad con VNC y entornos de entrada en japonés. Si se usan otras versiones, las operaciones básicas son similares, pero algunos nombres de paquetes o comportamientos pueden variar.

Requisitos y configuración del servidor

Como VNC es un método de conexión remota basado en GUI, requiere ciertos recursos (CPU y memoria). Se recomienda la siguiente configuración para instalar VNC en Ubuntu:
  • CPU: Dual core o superior (mínimo ~1GHz)
  • Memoria: Al menos 2GB (se recomienda con entornos ligeros como Xfce)
  • Almacenamiento: Más de 10GB libres
  • Red: Acceso SSH habilitado y puertos VNC (por defecto 5901) abiertos en el firewall

Permisos y herramientas necesarias

Para instalar y configurar un servidor VNC se necesitan:
  • Una cuenta de usuario con privilegios sudo
  • Cliente SSH (PuTTY en Windows, terminal en macOS o Linux)
También es necesario que el servidor Ubuntu tenga SSH habilitado. Si aún no lo tiene, se puede instalar con: sudo apt install openssh-server

Selección del entorno de escritorio a usar

Dado que VNC transfiere la GUI, es necesario un entorno de escritorio en Ubuntu. Sin embargo, GNOME (incluido en Ubuntu Desktop) suele ser demasiado pesado para uso en servidores. Por ello, este artículo recomienda entornos ligeros como Xfce o MATE:
  • Xfce: Ligero y estable, ideal para principiantes.
  • MATE: Interfaz clásica, también ligero y confiable.
La selección se tratará en detalle más adelante.

3. Instalación del entorno de escritorio

¿Por qué se necesita un entorno de escritorio?

Al conectarse remotamente a Ubuntu mediante VNC, si no hay un entorno de escritorio instalado, no se mostrará ninguna pantalla. Como VNC está diseñado para manejar interfaces gráficas (GUI), en un sistema que solo tenga CLI (línea de comandos) no es posible aprovechar sus beneficios.

Selección de un entorno de escritorio ligero

El entorno de escritorio ideal para VNC debe ser ligero y estable. Aquí presentamos dos opciones recomendadas:

1. Xfce

Xfce es muy ligero y funciona sin problemas incluso en PC antiguos o VPS. Su diseño sencillo y facilidad de uso lo convierten en un complemento ideal para entornos VNC.

2. MATE

MATE está basado en GNOME 2 y ofrece una interfaz clásica. Aunque consume un poco más de recursos que Xfce, sigue siendo bastante ligero y estable.

Pasos de instalación de Xfce (recomendado)

Para instalar Xfce:
sudo apt update
sudo apt install -y xfce4 xfce4-goodies
El paquete xfce4-goodies incluye herramientas adicionales que mejoran la experiencia de uso. La instalación puede tardar varios minutos, verifique que no aparezcan errores durante el proceso.

Pasos de instalación de MATE (alternativa)

Para instalar MATE:
sudo apt update
sudo apt install -y ubuntu-mate-core
Aunque MATE consume algo más de recursos que Xfce, resulta recomendable para quienes prefieren una apariencia más clásica y rica en detalles.

Atención: no instalar varios entornos al mismo tiempo

No es recomendable instalar simultáneamente varios entornos de escritorio (como Xfce y MATE). Esto complica la configuración al iniciar sesión y puede provocar errores en VNC. Seleccione solo uno e instálelo.

4. Instalación y configuración del servidor VNC

¿Qué software se necesita en Ubuntu para usar VNC?

VNC (Virtual Network Computing) funciona con dos componentes: el cliente y el servidor. En Ubuntu se debe instalar un servidor VNC, que permitirá las conexiones remotas a la GUI. Existen varias opciones de servidor VNC, pero en este artículo usaremos TigerVNC, que es moderno, rápido y estable:
  • TigerVNC (recomendado): alto rendimiento y buena compatibilidad con Xfce y MATE.
  • TightVNC: ligero y apto para sistemas antiguos, aunque su desarrollo está menos activo.

Instalación de TigerVNC

Ejecute:
sudo apt update
sudo apt install -y tigervnc-standalone-server tigervnc-common

Primer inicio y configuración de contraseña

Al ejecutar por primera vez el servidor VNC, deberá establecer una contraseña:
vncserver
Se mostrará algo como:
You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)?
La opción “view-only password” es para acceso de solo lectura. Normalmente basta con responder “n”.

Editar el archivo de configuración (xstartup)

Al iniciar una sesión VNC, se crea el archivo ~/.vnc/xstartup, que define qué entorno de escritorio se lanzará. Ejemplos:

Configuración para Xfce

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

Configuración para MATE

#!/bin/sh
xrdb $HOME/.Xresources
mate-session &
Finalmente, otorgue permisos de ejecución al script:
chmod +x ~/.vnc/xstartup

Iniciar y verificar la sesión VNC

Para iniciar una sesión:
vncserver :1
El número :1 indica el display virtual y corresponde al puerto 5901 (5900 + número).

Detener la sesión

Para detenerla:
vncserver -kill :1

5. Configuración de inicio automático del servidor VNC

¿Por qué configurar el inicio automático de VNC?

Normalmente, el servidor VNC se inicia y detiene manualmente por cada usuario. Sin embargo, ejecutar el comando vncserver cada vez es poco práctico, y si el servidor se reinicia, la sesión VNC no se iniciará automáticamente. Por ello, lo más común es registrar VNC como un servicio en Systemd para que se ejecute automáticamente. De esta forma, siempre se mantiene un entorno de conexión estable.

Creación del archivo de servicio Systemd

Cree un archivo de servicio para cada usuario. Por ejemplo, para usar el display :1:
sudo nano /etc/systemd/system/vncserver@:1.service
Contenido de ejemplo (reemplazar yourusername con su usuario real):
[Unit]
Description=Start TigerVNC server at startup
After=network.target

[Service]
Type=forking
User=yourusername
PAMName=login
PIDFile=/home/yourusername/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -geometry 1280x800 -depth 24
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
Notas:
  • yourusername: su nombre de usuario real.
  • geometry: resolución de pantalla, ajustable según necesidad.

Habilitar y arrancar el servicio

Guarde el archivo y ejecute:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service
sudo systemctl start vncserver@:1.service

Verificación

Para comprobar que el servicio funciona:
sudo systemctl status vncserver@:1.service
Si aparece Active: active (running), la configuración fue exitosa.

Atención: servicio por usuario

Este método aplica únicamente a un usuario específico. Si varios usuarios necesitan usar VNC, habrá que crear archivos de servicio adicionales para cada uno.

6. Métodos de conexión desde el cliente

¿Qué es un cliente VNC?

Instalar el servidor VNC en Ubuntu no basta para conectarse. En el ordenador cliente (desde donde se controla) se necesita un visor VNC o cliente VNC.

Clientes VNC recomendados

Algunos de los clientes más utilizados son:
ClienteSistemas compatiblesCaracterísticas
RealVNC ViewerWindows / Mac / Linux / iOS / AndroidFácil de usar, estable y apto para entornos empresariales
TigerVNC ViewerWindows / Mac / LinuxOpen source y gratuito
UltraVNCWindowsMuy completo, orientado a usuarios avanzados
RemminaSolo LinuxCliente multiprotocolo con GUI
RealVNC Viewer y TigerVNC Viewer son las opciones más seguras y fáciles de usar.

Ejemplo de conexión con RealVNC Viewer

1. Instalar RealVNC Viewer

Descargar desde la web oficial: https://www.realvnc.com/

2. Ingresar la dirección de conexión

En el campo de dirección, introducir:
<IP-del-servidor>:5901
o bien
<IP-del-servidor>:1

3. Ingresar la contraseña

Introduzca la contraseña configurada al iniciar VNC. Si todo es correcto, se mostrará el escritorio de Ubuntu.

Resolución de problemas de conexión

● Puerto bloqueado

Verifique que el firewall o el proveedor de la nube permitan el puerto 5901.

● Conexión mediante túnel SSH

Si no configuró un túnel SSH, es posible que el puerto no esté accesible externamente. Lo explicaremos en el capítulo siguiente.

Conexión desde macOS

Mac también puede usar RealVNC o TigerVNC. El procedimiento es igual: indicar la IP y puerto.

Conexión desde smartphone

Existen aplicaciones de cliente VNC para iOS y Android. Son útiles para accesos rápidos desde tabletas o móviles, aunque menos cómodas que un PC.

7. Configuración de entrada en japonés

¿Por qué es necesaria la entrada en japonés en un entorno VNC?

Aunque ya se pueda acceder remotamente a Ubuntu con VNC, en muchos casos no es posible escribir en japonés de inmediato. Esto genera problemas al redactar blogs, renombrar archivos o usar herramientas de chat. Esto ocurre porque muchas instalaciones de Ubuntu se realizan en inglés y no incluyen soporte de localización japonesa ni un método de entrada (IME). En esta sección explicamos cómo habilitar la entrada en japonés en sesiones VNC.

Instalar el paquete de localización en japonés

Primero, instale el paquete de idioma japonés:
sudo apt update
sudo apt install -y language-pack-ja
Después, configure el locale:
sudo update-locale LANG=ja_JP.UTF-8
Tras reiniciar o cerrar sesión, la GUI puede mostrarse en japonés (si la compatibilidad VNC es limitada, se puede mantener en inglés).

Métodos de entrada: fcitx vs ibus

Ubuntu ofrece dos opciones principales para la entrada en japonés:
Método de entradaCaracterísticas
fcitx-mozcLigero, fácil de configurar y estable en VNC.
ibus-mozcIntegración sólida con GNOME, pero menos confiable en VNC.
Para entornos VNC se recomienda fcitx-mozc por su estabilidad.

Instalación y configuración de fcitx-mozc

Instale:
sudo apt install -y fcitx-mozc
Luego configure las variables de entorno en ~/.xprofile o ~/.profile:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
Añada el inicio automático de fcitx:
fcitx &
También se puede incluir en ~/.vnc/xstartup. Ejemplo:
#!/bin/sh
xrdb $HOME/.Xresources
fcitx &
startxfce4 &

Verificación de la entrada en japonés

Tras iniciar sesión en VNC, abra la herramienta de configuración de fcitx (fcitx-config-gtk3) y confirme que “Mozc” está habilitado. Use la tecla 半角/全角 o Ctrl + Espacio para alternar el IME.

Problemas comunes y soluciones

SíntomaCausa y solución
No inicia el IMEfcitx no se ejecutó o error en variables de entorno.
No se muestran sugerencias de conversiónMozc no está configurado correctamente en fcitx.
Se necesita iniciar fcitx manualmenteFalta la línea fcitx & en .xstartup.
Con esto, VNC permite usar entrada japonesa de forma fluida. En el siguiente capítulo explicaremos cómo reforzar la seguridad mediante un túnel SSH.

8. Configuración de túnel SSH para mayor seguridad

VNC no cifra la comunicación por defecto

VNC es una herramienta muy práctica para escritorio remoto, pero tiene una gran desventaja: por defecto la comunicación no está cifrada. Esto implica que un tercero malintencionado podría interceptar contraseñas o datos de pantalla. Por eso, al usar VNC a través de Internet se recomienda crear un túnel SSH para cifrar la conexión y garantizar la seguridad.

¿Qué es un túnel SSH?

Un túnel SSH permite redirigir un puerto de manera segura a través de una conexión SSH. En otras palabras, crea un “canal cifrado” entre el cliente y el servidor, protegiendo la comunicación VNC.

Configuración de túnel SSH (port forwarding local)

A continuación se explica cómo configurarlo en diferentes sistemas.

Configuración en Windows con PuTTY

1. Instalar PuTTY

Descargar desde el sitio oficial: https://www.putty.org/

2. Configurar sesión SSH

En la pestaña Session, introducir la IP del servidor y el puerto 22 (SSH).

3. Configurar túnel

En el menú lateral, ir a Connection → SSH → Tunnels y añadir:
  • Source port: 5901
  • Destination: localhost:5901
  • Seleccionar Local y hacer clic en “Add”

4. Iniciar sesión SSH

Al abrir la sesión SSH, el puerto local 5901 quedará redirigido de forma segura al 5901 del servidor.

Configuración en macOS / Linux

Abrir la terminal y ejecutar:
ssh -L 5901:localhost:5901 usuario@IP-del-servidor
Ejemplo:
ssh -L 5901:localhost:5901 naoya@192.168.1.100
Luego, en el cliente VNC se debe conectar a:
localhost:5901

Puntos a tener en cuenta

  • Firewall: debe estar abierto el puerto 22 (SSH).
  • Cliente VNC: al conectarse se debe usar localhost:5901 en lugar de la IP real.

Ventajas de usar túnel SSH

AspectoBeneficio
CifradoProtege la comunicación VNC con seguridad SSH
Simplificación del firewallNo es necesario abrir puertos VNC hacia Internet
RegistroLos intentos de conexión quedan registrados en logs de SSH
Gracias a SSH, es posible usar VNC de manera segura incluso en servidores expuestos a Internet. Para quienes gestionan servidores públicos, esta configuración es imprescindible.

9. Problemas comunes y soluciones

Problema 1: Pantalla negra o gris después de conectarse

Causas:

  • Error en el archivo ~/.vnc/xstartup
  • El entorno de escritorio no se inicia correctamente

Solución:

  1. Verificar que el archivo ~/.vnc/xstartup contenga lo siguiente (ejemplo con Xfce):
#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &
  1. Dar permisos de ejecución:
chmod +x ~/.vnc/xstartup
  1. Reiniciar la sesión VNC:
vncserver -kill :1
vncserver :1

Problema 2: No se puede escribir en japonés o no aparecen sugerencias

Causas:

  • fcitx o Mozc no están activos
  • Variables de entorno mal configuradas

Solución:

  1. Comprobar que .xprofile o .xsession incluya:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
  1. Revisar que en ~/.vnc/xstartup esté la línea:
fcitx &
  1. Reiniciar la sesión y verificar en la configuración de fcitx que “Mozc” esté habilitado.

Problema 3: Conexión inestable, retrasos o cortes

Causas:

  • Ancho de banda insuficiente
  • Resolución o profundidad de color demasiado alta

Solución:

  1. Reducir resolución y profundidad al iniciar VNC:
vncserver :1 -geometry 1024x768 -depth 16
  1. Usar túnel SSH para mayor estabilidad (ver capítulo 8)
  2. Ajustar parámetros de optimización en el cliente VNC

Problema 4: Se conecta pero no aparece la pantalla de inicio de sesión

Causas:

  • El gestor de sesiones (ej. GDM) no se inicia en VNC

Solución:

Esto es normal: VNC no muestra el login estándar de Ubuntu, sino el entorno definido en ~/.vnc/xstartup. Si se necesita un inicio de sesión gráfico para múltiples usuarios, conviene usar RDP (xrdp) en lugar de VNC.

Problema 5: Error al iniciar sesión o acceso denegado

Causas:

  • Error en el archivo de servicio
  • Archivos PID en conflicto

Solución:

  1. Detener sesión activa:
vncserver -kill :1
  1. Eliminar archivos sobrantes:
rm ~/.vnc/*.pid
rm ~/.vnc/*.log
  1. Reiniciar VNC:
vncserver :1

Otros consejos

  • Revisar logs en ~/.vnc/*.log para identificar problemas.
  • Si varios usuarios usan VNC, iniciar con displays distintos (:2, :3, etc.).

10. Resumen y conclusión

Repaso de los pasos realizados

  • Requisitos previos: Confirmar versión de Ubuntu, entorno de escritorio y acceso SSH.
  • Instalación del escritorio: Implementar un entorno ligero como Xfce o MATE.
  • Configuración de TigerVNC: Instalar y definir resolución, número de sesión y ajustes básicos.
  • Inicio automático: Registrar el servicio en Systemd para que se inicie tras reinicios del servidor.
  • Conexión desde el cliente: Usar RealVNC Viewer o TigerVNC Viewer especificando el puerto correcto.
  • Entrada en japonés: Configurar fcitx-mozc y variables de entorno para habilitar IME.
  • Túnel SSH: Cifrar la comunicación y evitar riesgos de seguridad.
  • Resolución de problemas: Soluciones prácticas a errores frecuentes de conexión o configuración.

Para la operación continua

Una vez configurado VNC, podrá usar Ubuntu casi como si estuviera en local. Es ideal para:
  • Administrar servidores en la nube o VPS con interfaz gráfica.
  • Compartir un entorno entre miembros de un equipo (usando diferentes números de display).
  • Facilitar a principiantes el aprendizaje de Linux con GUI.
No obstante, aunque VNC es ligero, no está diseñado para multimedia ni para escenarios con requisitos de alta seguridad. En tales casos conviene considerar alternativas como xrdp o NoMachine.

Conclusión final

Configurar VNC en Ubuntu puede parecer complejo al inicio, pero siguiendo los pasos descritos es totalmente alcanzable incluso para principiantes. Esperamos que esta guía le ayude a implementar un entorno remoto seguro y práctico en Ubuntu. Si tiene dudas, puede dejar comentarios o consultar en redes sociales. ¡Que su experiencia con Ubuntu remoto sea más cómoda y productiva!