VNC SERVER: QUÉ ES, CÓMO FUNCIONA Y PARA QUÉ SIRVE

VNC, Virtual Network Computing, es un protocolo de escritorio remoto de código abierto que permite controlar un ordenador de forma remota a través de la red. El VNC Server es la parte que se instala en la máquina que se quiere controlar, mientras que el VNC Viewer, o cliente se ejecuta en el dispositivo desde el que para controlar el otro dispositivo. A diferencia de protocolos propietarios como RDP, de Microsoft, VNC es multiplataforma y funciona independientemente del sistema operativo del cliente y del servidor.

¿Cómo funciona VNC?

VNC utiliza el protocolo RFB, Remote Framebuffer. Funciona de la siguiente manera:
  1. El servidor captura el framebuffer (el contenido gráfico) de la pantalla.
  2. Envía los cambios de píxeles al cliente.
  3. El cliente envía eventos de teclado y ratón de vuelta al servidor.
Es un protocolo muy simple pero ineficiente en términos de ancho de banda comparado con soluciones modernas, ya que transmite imágenes en lugar de comandos gráficos.

Instalación y Configuración

  • En Linux (Ubuntu/Debian):

    # TigerVNC
    sudo apt update
    sudo apt install tigervnc-standalone-server tigervnc-common
    
    # Crear contraseña
    vncpasswd
    
    # Iniciar servidor en display :1
    vncserver :1 -geometry 1920x1080 -depth 24
    
    Para una configuración más robusta se recomienda usar "systemd" con un servicio.
  • En Linux con sesión real (recomendado):

    sudo apt install x11vnc
    x11vnc -storepasswd
    x11vnc -rfbauth ~/.vnc/passwd -display :0
    
  • En Windows
    • Descargar TightVNC o RealVNC desde sus sitios oficiales.
    • Instalar como servicio para que inicie automáticamente.
    • Configurar firewall (puerto TCP 5900 por defecto).
  • En contenedores Docker services:

    //yaml
      vnc:
    image: tigervnc/tigervnc
    ports:
     - "5901:5901"
    environment:
     - VNC_RESOLUTION=1920x1080
    

Seguridad: El punto crítico de VNC

VNC es inseguro por defecto. El tráfico va sin cifrar, excepto en RealVNC. Medidas de seguridad obligatorias:
  • No exponer VNC directamente a internet.
  • Usar SSH

    ssh -L 5901:localhost:5901 usuario@servidor
    
  • Configurar fail2ban con filtro VNC.
  • Usa contraseñas fuertes + VPN (WireGuard/OpenVPN).
  • Considera certificados TLS (RealVNC o stunnel).
  • Cambiar el puerto por defecto (5900).

Ventajas y Desventajas

Ventajas

  • Multiplataforma total.
  • Muy ligero en recursos del servidor.
  • Fácil de configurar.
  • Gran compatibilidad con thin clients.

Desventajas

  • Alto consumo de ancho de banda.
  • Latencia notable en conexiones lentas.
  • Seguridad básica débil.
  • Rendimiento inferior a RDP o protocolos basados en display (como SPICE o NoMachine).

Casos de uso recomendados

  • Administración de servidores Linux sin interfaz gráfica..
  • Soporte técnico remoto..
  • Entornos de desarrollo donde se necesita interfaz gráfica ocasional..
  • Laboratorios y aulas de informática..
  • Acceso a máquinas legacy..

Alternativas Modernas a VNC

  • RustDesk (open source, excelente).
  • Apache Guacamole (acceso vía web).
  • NoMachine (muy rápido).
  • XRDP, RDP sobre Linux.
  • Moonlight + Sunshine (para gaming).
  • WayVNC (para Wayland).

Consejos de un administrador de servidores

  • En servidores de producción, elegir x11vnc o TigerVNC + SSH tunnel.
  • Para múltiples usuarios, usar TurboVNC o RealVNC con autenticación integrada.
  • Monitorizar siempre el uso de CPU/RAM del servidor VNC.
  • En entornos de alta disponibilidad, combinar VNC con herramientas de orquestación (Ansible + systemd).
  • Probar siempre el rendimiento antes de desplegar en producción.

Implementaciones más populares de VNC Server

Implementación Ventajas principales Uso recomendado
TigerVNC Excelente rendimiento, buen soporte Wayland Servidores Linux modernos
TightVNC Compresión eficiente, versión Java Entornos con ancho de banda limitado
RealVNC Mejor cifrado, autenticación empresarial Entornos profesionales
TurboVNC Optimizado para 3D y entornos de baja latencia Renderizado, CAD, simulaciones
x11vnc Comparte la sesión X11 existente Acceso a escritorio real
vino (GNOME) Integrado en entornos GNOME Escritorios de usuario