Cómo configurar VNC en Raspberry Pi
A pesar de su tamaño mínimo, el Raspberry Pi consigue agradar debido a la variedad de sus interfaces (USB, red) y su buen rendimiento, por lo que no es casualidad que el miniordenador sea un componente esencial de muchos proyectos DIY electrónicos y una plataforma muy utilizada para aplicaciones de servidor de diversa índole. El manejo directo de Raspberry Pi con el ratón, el teclado o el monitor no siempre es posible o resulta a menudo incómodo, por lo que es necesario recurrir a un PC de escritorio separado que gestione el sistema operativo y los recursos del Raspberry Pi por control remoto. A tales efectos, normalmente se suele establecer una conexión SSH con el miniordenador, la cual permite acceder fácilmente a la interfaz de línea de comandos (CLI). Como alternativa, la utilización de un servidor VNC en Raspberry Pi permite el acceso remoto a la interfaz gráfica de usuario.
Servidor VNC en Raspberry Pi: ¿en qué consiste?
Bajo las siglas VNC (Virtual Network Computing) se distribuye un software cliente-servidor con el que se puede mostrar y controlar el contenido de la pantalla del sistema deseado (servidor) en otro sistema (cliente). Para ello, las entradas de teclado y los movimientos y clics de ratón del lado del cliente se transmiten directamente al ordenador remoto. Si instalas y activas VNC en un Raspberry Pi puedes instalar, configurar y gestionar el miniordenador desde otro PC. La base de VNC es Remote Framebuffer Protocol (RFB), un protocolo de red apto para cualquier plataforma que transmite los contenidos como bitmaps y utiliza el puerto TCP 5900. Puesto que se crean conexiones sin datos de estado, no se pierden las sesiones remotas creadas incluso en caso de que haya interrupciones temporales o cambios del cliente VNC.
Aquí te explicamos cómo configurar un servidor VNC en un Raspberry Pi para poder utilizarlo con control remoto. En sentido inverso, también es posible instalar un cliente VNC en el miniordenador para ejercer control remoto sobre otro PC.
Desafíos al configurar el servidor VNC en Raspberry Pi
El software VNC está diseñado de tal manera que funciona con una menor cantidad de recursos. Cuantos más recursos exijan las otras aplicaciones que funcionan en el Raspberry Pi, más relevancia adquirirá este aspecto. En principio no existen restricciones en cuanto a la selección del modelo de Raspberry Pi, por lo que los servidores VNC pueden configurarse y ejecutarse tanto en un Raspberry Pi de primera generación como en uno con la versión más actual.
La elección del software apropiado recayó durante mucho tiempo en las soluciones X11VNC o TightVNC. Para Raspberry Pi ambas resultan apropiadas y, a día de hoy, todavía están disponibles. Desde la integración de la interfaz de usuario PIXEL en Raspbian, con VNC Connect el sistema operativo estándar tiene su propia aplicación de computación virtual en red, la cual tiene que activarse para hacer uso de la tecnología de gestión remota. El requisito para ello es emplear, al menos, Raspbian Jessie, pues de no ser así hay que descargar e instalar el software cliente-servidor.
VNC Connect y X11VNC permiten el acceso directo a la pantalla actual del Raspberry Pi. Por el contrario, TightVNC transmite versiones virtuales de la presentación original haciendo así posible el registro simultáneo de varios usuarios en el servidor VNC (de modo similar al concepto tradicional de servidor terminal).
Tutorial: ¿cómo se configura un servidor VNC en un Raspberry Pi?
En el siguiente tutorial te mostramos cómo configurar y utilizar un servidor VNC en el miniordenador. Para nuestro ejemplo recurriremos a la instalación y configuración, muy sencillas, de los componentes del cliente y del servidor de VNC Connect, es decir, la suite VNC estándar de Raspbian ya mencionada.
Paso 1: instalar o actualizar VNC Connect en Raspberry Pi
El primer paso consiste en asegurarse de que la versión actual de VNC Connect está instalada en tu Raspberry Pi, algo que se hace introduciendo los siguientes comandos en el terminal:
sudo apt-get update
sudo apt-get install realvnc-vnc-server
sudp apt-get install realvnc-vnc-viewer
Tras ello, Raspbian actualizará tanto la aplicación de servidor como el cliente (viewer). En teoría es posible utilizar el miniordenador en cualquier momento incluso para acceder a un servidor VNC. Esto, sin embargo, no es objeto de este tutorial.
Si sigues utilizando una versión antigua de Raspbian o de cualquier otro sistema operativo, en tu Raspberry Pi, será necesario que descargues VNC Connect. Para ello, visita la página web oficial del desarrollador RealVNC y selecciona el archivo de instalación para Raspberry Pi en el centro de descargas.
Paso 2: activar el servidor VNC
Una vez has actualizado el software, ya puedes iniciar el servidor, bien a través de la interfaz de usuario o mediante la CLI.
En el primer caso, abre el menú principal (símbolo de la frambuesa) y selecciona los apartados “Preferencias” y “Configuración de Raspberry Pi”. Ve a la pestaña “Interfaces” y establece que “VNC” esté “Activo”.
Para poner en funcionamiento el VNC server en tu Raspberry Pi mediante la interfaz de línea de comandos necesitas la herramienta de configuración raspi-config, que se inicia de la siguiente manera:
sudo raspi-config
Navega hasta llegar al botón “Interfacing Options” (opciones de interconexión) y desplaza el ratón hasta la opción “VNC” para activarlo en última instancia pulsando “Yes”. Tras activar el servidor, este se iniciará automáticamente al arrancar el Raspberry Pi.
La desactivación del servidor VNC funciona de la misma manera. Para ello, escoge las opciones contrarias “Desactivado” o “No”.
Paso 3: comprobar los ajustes de conexión
Si instalas y activas VNC Connect en tu Raspberry Pi y reinicias el miniordenador, podrás ver el icono para el servidor VNC en la barra de sistema de la interfaz de usuario. Al hacer clic sobre el icono aparecerá una ventana que te ofrecerá datos sobre la conectividad y la seguridad de la aplicación remota. De esta manera, la parte izquierda muestra la IP de tu Raspberry necesaria para establecer la conexión con el cliente VNC. Guarda la dirección para poder acceder a ella posteriormente en el ordenador externo. Como alternativa, puedes insertar la IP en el siguiente comando de terminal:
hostname -I
En la parte derecha hay una firma y palabras clave para verificar la identidad, las cuales deben mostrarse mediante un mensaje al iniciarse más adelante la conexión VNC. Así es posible demostrar que Raspberry Pi es el sistema de destino en cuestión.
Si quieres acceder regularmente a Raspberry Pi a través de VNC es recomendable que le adjudiques una dirección IP fija al miniordenador.
Paso 4: instalar VNC Viewer en dispositivos externos
Una vez que el servidor VNC funciona en Raspberry Pi, ya puedes dedicarte por completo al ordenador desde el que quieres controlar remotamente al miniordenador, en el que deberás instalar la aplicación de cliente, es decir, VNC Viewer. Para ello, RealVNC ofrece archivos de instalación gratuitos para diferentes sistemas operativos. Así, el cliente puede instalarse, por ejemplo, en ordenadores Windows, macOS y Linux. Asimismo, hay aplicaciones de cliente para Android o iOS, pero también una extensión de Chrome gracias a la que VNC Viewer puede ejecutarse a través del navegador de Google. En el centro de descargas de Real VNC puedes descargarte la versión adecuada y comenzar la instalación siguiendo el patrón habitual.
Paso 5: establecer conexión directa con el Raspberry Pi (en la red local)
La vía más rápida y sencilla para utilizar la tecnología VNC es mediante la conexión directa entre el ordenador cliente y el Raspberry Pi. El requisito para ello es que ambos dispositivos estén conectados con la misma red local (LAN o WLAN) y se conozca la IP del Raspberry Pi. En este caso, al iniciar VNC Viewer introduce la dirección en la línea de direcciones destinada para ello y establece la conexión haciendo clic en la tecla Enter.
Posteriormente, la aplicación cliente presentará el mensaje previamente anunciado (con firma y palabras clave) para comprobar la identidad. En caso de tratarse de la información previamente proporcionada por el servidor VNC, puedes continuar el proceso.
A continuación se te pedirá un nombre de usuario y una contraseña, esto es, la cuenta de usuario de Raspberry Pi, cuyo nombre de usuario es normalmente “pi” y la contraseña “raspberry”. Para evitar el acceso de usuarios no autorizados, se recomienda modificar estos datos incluso antes de iniciar el servidor VNC.
Paso 6: establecer una conexión en la nube con el servidor VNC de Raspberry Pi
Si no deseas o no eres capaz de conectar el sistema cliente y el Raspberry Pi a través de una red local, tienes la posibilidad de establecer la conexión con VNC a través de Internet. Para este tipo de conexiones en la nube, que son gratuitas para propósitos no comerciales y se caracterizan por el cifrado de extremo a extremo, se necesita una cuenta RealVNC, también gratuita y muy fácil de definir. Para comenzar el registro vuelve a visitar la página web de RealVNC e introduce una dirección de correo electrónico en la casilla de registro (sign up).
Se necesitan los datos de inicio de sesión para la nueva cuenta RealVNC (dirección de correo electrónico y contraseña) dos veces, es decir, en la aplicación de VNC server en Raspberry Pi y del lado cliente en VNC Viewer. En el programa de servidor, añade un acceso directo a la cuenta que incluya un correo electrónico y una contraseña bajo la opción “Licensing” (autorización) y, para terminar, haz clic en “Sign in”. Regístrate en el dispositivo cliente con la cuenta utilizada en VNC Viewer. Tras ello, Raspberry Pi aparecerá automáticamente como host disponible, de modo que es suficiente con hacer doble clic sobre el símbolo correspondiente para establecer la conexión VNC.
Paso 7: ajustar la resolución de pantalla del Raspberry Pi
Una vez establecida la conexión remota con el servidor VNC de Raspberry Pi, puede que haya dos motivos por los que sea necesario modificar la resolución de pantalla del miniordenador:
- El rendimiento es reducido, pues la resolución es muy alta.
- Se mantiene la resolución estándar (por ejemplo, porque el Raspberry solo se utiliza en modo headless sin estar conectado a un monitor) y es demasiado baja.
Puedes encontrar las posibilidades de adaptación correspondientes en la herramienta raspi-config, que se inicia por medio del siguiente comando de terminal:
sudo raspi-config
Selecciona la opción “Advanced Options” y seguidamente busca la entrada “Resolution”, donde puedes seleccionar la resolución deseada antes de cerrar la herramienta y la CLI.
Si quieres tener más control sobre la configuración HDMI de tu Raspberry Pi, también puedes realizar cambios en el archivo de configuración /boot/config.txt . Mediante la entrada hdmi_mode puedes definir uno de los más de 50 formatos diferentes de salidas HDMI con los valores adecuados. En el manual oficial puedes acceder a la lista completa de valores posibles (apartado “HDMI mode options”).
Paso 8: optimizar el rendimiento de VNC en Raspberry Pi Zero y Pi 1
Si has instalado el servidor VNC en Raspberry Pi 1 o Zero, el rendimiento dejará de ser estable debido a la potencia de procesamiento algo más débil de estos modelos antiguos. Siempre que estés activo en una red local segura podrás mitigar este problema desactivando el cifrado y disminuyendo, de esta manera, la carga de la CPU.
La desactivación del cifrado solo es posible para conexiones directas, pero no para conexiones en la nube.
Accede al menú del servidor VNC en tu Raspberry Pi y abre las opciones. Selecciona el modo experto y escoge “AlwaysOFF” para el parámetro “Encryption”. Los cambios no se aplican a las sesiones activas, por lo que debes finalizar las conexiones existentes y luego reiniciarlas.