Cómo instalar y configurar VNC en Debian 10

Introducción

Virtual Network Computing, o VNC, es un sistema de conexión que te permite usar tu teclado y mouse para interactuar con un entorno de escritorio gráfico en un servidor remoto.

Facilita la administración de archivos, software y configuraciones en un servidor remoto, es ideal para usuarios que aún no se sienten cómodos con la línea de comandos.

En esta guía, configurarás un servidor VNC en un servidor Debian 10 y te conectarás de forma segura a través de un túnel SSH. Utilizarás TightVNC , un paquete de control remoto rápido y liviano. Esta elección asegurará que nuestra conexión VNC sea ligera y estable incluso en conexiones de Internet más lentas.

Prerrequisitos

Para completar este tutorial, necesitarás:

  • Un servidor Debian 10 configurado, este debe incluir un usuario no root con acceso sudo y un firewall.
  • Una computadora local con un cliente VNC instalado que admita conexiones VNC a través de túneles SSH.

 Paso 1: instalación del entorno de escritorio y el servidor VNC

Por defecto, un servidor Debian 10 no viene con un entorno de escritorio gráfico o un servidor VNC instalado, por lo que comenzaremos por instalarlos. Específicamente, instalaremos paquetes para el último entorno de escritorio Xfce y el paquete TightVNC disponible en el repositorio oficial de Debian.

En tu servidor, actualiza tu lista de paquetes:

Durante la instalación, se te pedirá que selecciones la distribución del teclado de una lista de posibles opciones. Elige el que sea apropiado para tu idioma y presiona Enter. La instalación continuará.

Una vez que se complete la instalación, instala el servidor TightVNC:

Para completar la configuración inicial del servidor VNC después de la instalación, usa el comando vncserver para configurar una contraseña segura y crear los archivos de configuración inicial:

Se te pedirá que ingreses y verifiques una contraseña para acceder a tu máquina de forma remota:

La contraseña debe tener entre seis y ocho caracteres de longitud. Las contraseñas de más de 8 caracteres se truncarán automáticamente.

Una vez que verifiques la contraseña, tendrás la opción de crear una contraseña de solo lectura. Los usuarios que inicien sesión con la contraseña de solo lectura no podrán controlar la instancia de VNC con su mouse o teclado.

Esta es una opción útil si deseas demostrar algo a otras personas que usan tu servidor VNC, pero esto no es obligatorio.

Luego, el proceso crea los archivos de configuración predeterminados necesarios y la información de conexión para el servidor:

Ahora configuremos el servidor VNC.

Paso 2: configuración del servidor VNC

El servidor VNC necesita saber qué comandos ejecutar cuando se inicia. Específicamente, VNC necesita saber a qué escritorio gráfico debe conectarse.

Estos comandos se encuentran en un archivo de configuración llamado xstartup en la carpeta .vnc dentro de tu directorio de inicio. El script de inicio se creó cuando ejecutaste el comando vncserver en el paso anterior, pero crearemos el nuestro para iniciar el escritorio Xfce.

Cuando se configura VNC por primera vez, inicia una instancia de servidor predeterminada en el puerto 5901. Este puerto se denomina puerto de pantalla y VNC lo denomina :1. VNC puede ejecutar varias instancias en otros puertos de pantalla, como :2:3, etc.

Configuración

Como vamos a cambiar la configuración del servidor VNC, primero detén la instancia del servidor VNC que se ejecuta en el puerto 5901 con el siguiente comando:

La salida debería verse así, aunque verá un PID diferente:

Antes de modificar el archivo xstartup, has una copia de seguridad del original:

Ahora crea un nuevo archivo xstartup y ábrelo en tu editor de texto:

Los comandos en este archivo se ejecutan automáticamente cada vez que inicias o reinicias el servidor VNC. Necesitamos VNC para iniciar nuestro entorno de escritorio si aún no se ha iniciado. Agrega estos comandos al archivo:

El primer comando en el archivo, xrdb $HOME/.Xresources le dice al framework GUI de VNC que lea el archivo .Xresources del usuario. .Xresources es donde un usuario puede realizar cambios en ciertas configuraciones para el escritorio gráfico, como colores de la terminal, temas de cursor y representación de fuentes.

El segundo comando le dice al servidor que inicie Xfce, que es donde encontrará todo el software gráfico que necesita para administrar cómodamente su servidor.

Para garantizar que el servidor VNC pueda utilizar este nuevo archivo de inicio correctamente, necesitaremos que sea ejecutable.

Ahora, reinicia el servidor VNC.

Verás una salida similar a esta:

Con la configuración lista, conectemos al servidor desde nuestra máquina local.

Paso 3: Conexión segura del escritorio VNC

VNC en sí no usa protocolos seguros cuando te conectas. Usaremos un túnel SSH para conectarnos de manera segura a nuestro servidor, y luego le diremos a nuestro cliente VNC que use ese túnel en lugar de hacer una conexión directa.

Crea una conexión SSH en tu computadora local que reenvíe de forma segura a la conexión localhost para VNC. Puedes hacerlo a través de la terminal en Linux o macOS con el siguiente comando:

El inidcador –L especifica los enlaces de puerto. En este caso, estamos vinculando el puerto 5901 de la conexión remota al puerto 5901 en tu máquina local.

El indicador –C habilita la compresión, mientras que el indicador –N indica que ssh quiere ejecutar un comando remoto. El indicador -l especifica el nombre de inicio de sesión remoto.

Recuerda reemplazar sammy y your_server_ip con tu nombre de usuario no root y la dirección IP de tu servidor.

Si estás utilizando un cliente SSH gráfico, como PuTTY, usa your_server_ip como conexión IP y configura localhost:5901 como un nuevo puerto reenviado en la configuración del túnel SSH del programa.

Una vez que el túnel se está ejecutando, usa un cliente VNC para conectarte a localhost:5901. Se te pedirá que te autentiques utilizando la contraseña que estableciste en el Paso 1.

Una vez que estés conectado, verás el escritorio Xfce predeterminado.

Selecciona Usar configuración predeterminada para configurar tu escritorio rápidamente.

Puedes acceder a los archivos en tu directorio de inicio con el administrador de archivos o desde la línea de comandos, como se ve aquí:

En tu máquina local, presiona CTRL+C en tu terminal para detener el túnel SSH y regresar al indicador. Esto también desconectará tu sesión de VNC.

A continuación, configuremos el servidor VNC como un servicio.

Paso 4: Ejecutar VNC como un servicio del sistema

A continuación, configuraremos el servidor VNC como un servicio systemd para que podamos iniciarlo, detenerlo y reiniciarlo según sea necesario, como cualquier otro servicio. Esto también asegurará que VNC se inicie cuando tu servidor se reinicie.

Primero, crea un nuevo archivo de unidad llamado /etc/systemd/system/vncserver@.service usando tu editor de texto favorito:

El símbolo @ al final del nombre nos permitirá pasar un argumento que podemos usar en la configuración del servicio. Usaremos esto para especificar el puerto de pantalla VNC que queremos usar cuando administremos el servicio.

Agrega las siguientes líneas al archivo. Asegúrate de cambiar el valor de User, Group, WorkingDirectory y el nombre de usuario en el valor de PIDFILE para que coincida con tu nombre de usuario:

El comando ExecStartPre detiene VNC si ya se está ejecutando. El comando ExecStart inicia VNC y establece la profundidad de color en color de 24 bits con una resolución de 1280×800. También puedes modificar estas opciones de inicio para satisfacer tus necesidades.

Guarda y cierra el archivo.

A continuación, informa al sistema sobre el nuevo archivo de la unidad.

Habilita el archivo de la unidad.

El 1 seguido del signo @ significa en qué número de pantalla debe aparecer el servicio, en este caso el valor predeterminado :1 como se discutió en el Paso 2.

Detén la instancia actual del servidor VNC si aún se está ejecutando.

Luego, inícialo como lo harías con cualquier otro servicio systemd.

Puedes verificar que inició con este comando:

Si se inició correctamente, la salida debería verse así:

Tu servidor VNC ahora estará disponible cuando reinicies la máquina.

Inicia el túnel SSH nuevamente:

Luego realiza una nueva conexión utilizando tu software de cliente VNC localhost:5901 para conectarte a tu máquina.

Conclusión

Ahora tienes un servidor VNC seguro en funcionamiento en tu servidor Debian 10. Ya podrás administrar tus archivos, software y configuraciones con una interfaz gráfica fácil de usar y familiar, y podrás ejecutar software gráfico como navegadores web de forma remota.