raspberry-pi-real-vnc

Conexión de escritorio remoto VNC a Raspberry Pi con RealVNC

En esta entrada vamos a ver cómo controlar una Raspberry Pi de forma remota mediante conexión de escritorio remoto VNC con la ayuda de RealVNC

Como comentamos cuando al ver la entrada sobre SSH en muchas ocasiones no vamos a tener nuestra Raspberry conectada a un monitor y un teclado, si no que va a estar en tareas como centro multimedia, servidor web o domótica y robótica.

En estos casos, necesitamos una forma de controlar de forma remota nuestro dispositivo. En la entrada anterior de los tutoriales de Raspberry Pi vimos cómo conectarnos por SSH. En esta entrada veremos otra forma habitual, una conexión de escritorio remoto VNC.

A diferencia de SSH, que únicamente abría una consola de comandos, con VNC podemos hacer un escritorio remoto completo. Es decir, que en la pantalla del cliente veremos la pantalla de Raspberry Pi, moveremos el ratón, y usaremos el casi casi como si estuviéramos conectados físicamente.

Pese a su sencillez y comodidad un escritorio remoto también tiene sus desventajas. La principal es que necesita transmitir una gran cantidad de datos, sobre todo por la necesidad de enviar la señal de video. Aunque los sistemas modernos emplean compresión de video, el comportamiento es más lento que con una conexión física o una conexión SSH.

Otras desventajas del escritorio remoto unidas a tener que enviar la conexión de video son, por ejemplo, que podemos tener algún problema de resolución, o no poder visualizar ciertos elementos que se lanzan directamente en el GPU del servidor (como por ejemplo algunos reproductores de video, webcams, o videos en streaming).

Por último, VNC es más inseguro que SSH, por lo que la comunicación es más susceptible a ser interceptada por un atacante. Aunque es posible tunelizar la conexión VNC en un SSH y algunos clientes incorporan cifrado en la comunicación, quedaros con la idea de que es más seguro acceder por SSH.

¿Qué es un VNC?

Virtual Network Computing (Computación Virtual en Red) es un sistema de comunicación remota basado en el protocolo RFB (Remote FrameBuffer). VNC transmite la señal de video y los eventos de ratón y teclado entre varios ordenadores.

VNC y RFP fueron desarrollados originalmente por el Olivetti & Oracle Research Lab en Cambridge. Fueron creados como una forma sencilla de realizar un escritorio remoto entre dispositivos con distintos sistemas operativos. En 2002 discontinuaron el proyecto y parte del equipo lo continuó de forma independiente formando la compañía RealVNC.

El sistema VNC sigue una arquitectura de servidor y cliente. Por defecto funciona sobre TCP en el puerto 5900 y adelante, a razón de un puerto por cada sesión de video. Por tanto, el puerto 5900 se destina a la sesión :0 (normalmente el display físico), 5901 a la sesión :1, y sucesivamente.

Actualmente existen más sistemas de escritorio remoto, similares o incluso evolucionados a partir de VNC. También existen diferentes software compatibles con VNC como RealVNC, TightVNC, UltraVNC, X11vnc, entre otros, cada uno tiene sus fans y detractores.

En esta entrada nos basaremos en RealVNC, por ser uno de los más recomendados para usuarios que se inicia y, además, porque en cierta forma son los “sucesores” de quienes crearon VNC, y se merecen que les dediquemos la primera entrada de VNC. En próximas entradas veremos otros clientes y alternativas.

Configurar VNC En Raspberry

El ordenador al que nos vamos a conectar, en este caso nuestro Raspberry Pi, tiene que tener instalado el programa servidor RNC. En las distribuciones modernas de Raspbian VNC viene preinstalado pero no activado por defecto.

Para activar el servidor VNC en Raspberry Pi deberemos meternos en la configuración de Raspberry Pi y activar la opción correspondiente como vimos en la entrada Cómo configurar Raspberry Pi con GUI o consola de comandos.

Por otro lado, resulta conveniente tener configurada con IP estática, para que no cambie cada vez que reiniciemos la Raspberry Pi. Vimos cómo configurar una IP estática en la entrada Configurar IP estática en Raspberry Pi.

La VNC configurada, en principio, funcionara únicamente en red local. Si queréis conectaros desde fuera (a través de Internet) deberéis configurar un mapeo de puertos en el router y aseguraros de que la conexión es segura.

Si estamos ejecutando sistema operativo que no tiene instalado VNC server, podemos instalarlo ejecutando estos comandos.

sudo apt-get update
sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer

Configurar el cliente

Para conectarnos al Raspberry Pi deberemos instalar el programa visualizador en el cliente, que puede ser un ordenador, un tablet, un móvil (y por supuesto otra Raspberry Pi). Tenemos clientes disponibles para Windows, Linux, Mac y Android.

Como hemos dicho, en esta entrada nos vamos a centrar en RealVNC. Descargamos e instalamos el visor de RealVNC adecuado para nuestro sistema operativo desde .

raspberry-pi-real-vnc

Alternativamente, también podemos emplear la extensión para Chrome, que podemos instalar desde la tienda de Chrome. Posteriormente accedemos a la misma poniendo este enlace en el navegador chrome://apps/

raspberry-pi-real-vnc-extension

Indistintamente de que usemos un programa u otro (cada uno con su propio interface) el proceso para conectarnos es similar. En primer lugar configuramos un ordenador remoto indicando la IP del sistema al que queremos conectarnos. Esta configuración se guarda para que sea cómodo conectarnos a nuestras máquinas.

raspberry-pi-real-vnc-config

Al iniciar la conexión se nos pedirá el usuario y contraseña. Recordemos que por defecto es ‘pi’ como usuario y ‘raspberry’ como contraseña.

raspberry-pi-real-vnc-login

Es un grave riesgo exponer una Raspberry Pi a Internet con VNC activado y el usuario por defecto.

Es posible que la primera vez que conectemos con un VNC nos salga un cartel diciendo que la firma del dispositivo no es conocida. No pasa nada, es una medida de protección para impedir la suplantación. Si es la primera que nos conectamos, simplemente aceptamos para continuar.

raspberry-pi-real-vnc-autorizacion

Si la conexión ha ocurrido con éxito veremos en la pantalla de nuestro ordenador el video de la Raspberry Pi y podremos actuar con ella casi como si tuviéramos el monitor y el teclado conectado directamente.

raspberry-pi-real-vnc-conexion

¡Enhorabuena! Así de fácil habéis configurado correctamente el escritorio remoto con RealVNC. En la próxima entrada de los tutoriales de Raspberry Pi veremos cómo realizar una configuración totalmente headless (sin monitor ni teclado) desde cero, sin tener que haber conectado en ningún periférico.