Notas sobre escritorios remotos en Ubuntu 20.04

per Victor Carceler darrera modificació 2021-01-07T10:25:47+02:00

Acceder a un escritorio remoto es una tarea frecuente para administrar una máquina, ayudar a un usuario en apuros o simplemente mostrar cómo realizar alguna tarea a un grupo de alumnos.

Pueden leerse una breve introducción a los escritorios remotos a partir de la página 57 de estos materiales: Administració de sistemes operatius en xarxes.

Transparencia de red con X Window y SSH

La opción -X del cliente SSH activará la redirección del tráfico X Window de manera que se puedan abrir programas gráficos en la máquina remota pero se abran las ventanas de estos programas en la máquina local. SSH se encargará de retransmitir, de manera segura, todo el tráfico de red que permite dibujar las ventanas de las aplicaciones remotas en la máquina loca y enviar a la máquina remota la interacción del usuario.

Por supuesto la latencia de la red afectará al rendimiento que perciba el usuario. A medida que la latencia aumenta todas las opciones de escritorios remotos se vuelven más incómodas, sin embargo la transparencia de red con X Window es bastante ligera y la redirección de tráfico de SSH utiliza un único puerto.

Ejemplo: En este vídeo se puede ver cómo desde un escritorio se inicia sesión en otra máquina para abrir Firefox. La aplicación se está ejecutando en la máquina remota pero la interfaz se visualiza en la máquina local. Se utiliza SSH para redirigir el tráfico X Window.

La opción -x del cliente prohíbe la redirección SSH de tráfico X Window.

Virtual Network Computing  VNC

En este caso el protocolo es multiplataforma así que funciona en los principales sistemas operativos. No se utilizan primitivas para dibujar ventanas sino que se transmiten directamente bitmaps con los gráficos e instrucciones con la interacción del usuario. Si la red no tiene suficiente ancho de banda es posible aumentar la compresión de las imágenes para obtener una respuesta más interactiva a costa de la calidad gráfica.

Hay muchas herramientas que implementan servidores y visores VNC. En Ubuntu 20.04 una de las opciones más sencillas consiste en utilizar:

  • vino como servidor VNC. Este servidor se integra directamente con la configuración de Gnome, así que una vez instalado se podrá activar la compartición de pantalla, indicando si la estación remota podrá controlar la pantalla o únicamente mirar. Y si será necesaria una contraseña.
  • remmina o vinagre como visores VNC que además admiten otros protocolos.

Compartición de pantalla en Gnome con el servidor VNC vino.

Con VNC se utiliza un puerto para cada escritorio virtual. El primer escritorio suele utilizar el puerto 5900 y los sucesivos 5901, 5902 ...

En el siguiente vídeo se puede ver cómo se utiliza Remmina en la máquina física para conectar con el escritorio remoto de una máquina virtual. En el momento de compartir el escritorio es posible definir si solo se podrá ver el escritorio o sí también se podrá controlar. Y si será necesario aceptar la conexión entrante y si se utilizará contraseña.

Se puede ver que el escritorio remoto no se vé con buena calidad pues se está utilizando una compresión con pérdida para la imagen que intenta reducir el ancho de banda utilizado.