LINUX

Instalar y configurar el servidor VNC en Ubuntu 16.04

La forma tradicional de administrar el servidor es a través de ssh y la línea de comandos. Pero a veces necesita ejecutar alguna aplicación con una GUI en un servidor, y dado que normalmente no se sienta al lado del servidor e incluso si lo hace, es posible que el servidor no tenga monitor y teclado, necesita algún tipo de escritorio remoto.

VNC es una buena solución para esto, que se usa ampliamente y es bastante fácil de configurar. Ubuntu tiene TightVNC en repositorios y en este tutorial configuraremos un servidor TightVNC multiusuario en Ubuntu Server 16.04.

Para GUI usaremos XFCE, que es una alternativa más ligera a GNOME y Unity.

Instale el servidor VNC (Tight VNC) y el escritorio (XFCE)

Primero, comenzamos instalando el servidor TightVNC y el entorno de escritorio XFCE.

sudo apt install gnome-core xfce4 firefox xfce4-goodies tightvncserver

Luego debemos configurar el servidor VNC con contraseña para iniciar sesión como usuario ‘miki’

vncserver

También le pedirá la contraseña de solo vista, la necesita si desea que alguien se conecte a su sesión de VNC sin control del cursor y el teclado, solo como espectador. Esta contraseña debe ser diferente a su contraseña principal. Si no planea tener espectadores, puede optar por no ingresar solo la contraseña de visualización. Una vez completado este proceso, la instancia de VNC se lanzará en el puerto 5901 y VNCserver contará este puerto como: 1. Si inicia varias instancias de VNC, tendrá varios puertos de visualización y aumentará ambos números en 1, a: 2 y 5902 y así sucesivamente para cada instancia. Para continuar con la configuración, en realidad necesitamos eliminar todas las instancias del servidor VNC. Hacemos esto siguiendo el comando:

vncserver -kill :1

Una vez hecho esto, se puede editar el archivo de configuración para el servidor VNC para seleccionar qué entorno de escritorio se iniciará al conectarse al servidor VNC. El archivo del que estoy hablando se llama xstartup y se encuentra dentro del directorio oculto .vnc en ~ / dir. Primero hagamos una copia de seguridad de este archivo

mv ~/.vnc/xstartup ~/.vnc/xstartup.backup

Y luego crea un nuevo archivo desde la pizarra limpia

nano ~/.vnc/xstartup

En este archivo vacío, pegue estas pocas líneas:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Agregar bit excutable al archivo tihs

sudo chmod +x ~/.vnc/xstartup

A continuación, podemos iniciar el servidor VNC nuevamente.

vncserver

Conexión al servidor VNC

A continuación, debemos conectarnos al servidor VNC para ver si nuestra configuración está funcionando. Podemos utilizar cualquier cliente VNC, como por ejemplo Vinagre o Remote Desktop Viewer, como también se le llama. Primero instálelo e inícielo

sudo apt install vinagre

Ingrese el nombre de su servidor, puerto 5901 y haga clic en conectar. Se le debe solicitar su contraseña y luego debe ingresar a XFCE

XFCE trabajando sobre un servidor VNC

Puede conectarse a esta sesión desde un número ilimitado de computadoras, pero entonces todos estarían controlando el cursor del mouse y tendrían la misma sesión. Si algunos de los usuarios escriben la contraseña de solo vista (siempre que haya creado una), no tendrían control del cursor, pero seguirían en una sola sesión y verían la misma pantalla.

Varios usuarios

Es posible tener varias sesiones VNC que no interfieran entre sí. Esto se hace almacenando un número arbitrario de usuarios y cada usuario tendrá su propio puerto de visualización y su propia instancia de servidor VNC. Y, a su vez, ejecutará su propia instancia de entorno de escritorio, o que podría ser un DE completamente independiente. Comencemos primero agregando un nuevo usuario

sudo adduser newuser

A continuación, iniciamos sesión como ese usuario.

su newuser

Y hagamos una contraseña para el nuevo usuario.

vncserver

Aparte de la contraseña, esto también creó un nuevo proceso que escucha en el puerto 5902. Necesitamos matar este proceso para poder editar el archivo de configuración.

vncserver -kill :2

Y necesitamos repetir el proceso anterior. Primero haga una copia de seguridad del archivo xstartup

mv ~/.vnc/xstartup ~/.vnc/xstartup.backup

Luego crea uno nuevo desde cero

nano ~/.vnc/xstartup

Pasadas tres líneas abajo

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Y hazlo ejecutable:

sudo chmod +x ~/.vnc/xstartup

Ahora ejecute vncserver para ejecutar el proceso

vncserver :2

Y ahora puede conectarse en el puerto 5902 y tener una sesión separada.

Cómo configurar el túnel SSH

Hasta ahora logramos hacer la conexión directamente en los puertos de pantalla, en nuestro caso 5901 y 5902. Pero, ¿qué pasa si esos puertos están cerrados, por firewall, y por alguna razón no es práctico abrirlos? Hay una solución en ese caso, podemos usar la tunelización SSH. El puerto 22 o cualquier otro puerto que use para el acceso SSH en un servidor se puede usar para engañar al visor VNC de que el servidor VNC se está ejecutando en localhost en el puerto 5901 o 5902. Con este comando está estableciendo un túnel SSH:

ssh -L 5902:127.0.0.1:5902 newuser@192.168.122.14

Asegúrese de cambiar la parte resaltada a su dirección IP y nombre de usuario.

Después de esto, puede iniciar Vinagre o Remmina e ingresar localhot: 5902 como su dirección. Pensará que el escritorio remoto está en localhost y enrutará el tráfico a través del puerto ssh a su servidor, siempre que la conexión SSH esté activa.

Haciendo las unidades systemd

Todo esto es bueno cuando configura manualmente el usuario y el servidor a través de SSH, pero debe rehacerlo cada vez que se reinicia el servidor. Entonces, para evitar eso, hagamos un archivo de unidad systemd. Ese es el nuevo nombre elegante del script de inicio de la vieja escuela. De hecho, necesitaremos hacer dos para dos usuarios, primero creemos uno

sudo nano /etc/systemd/system/vncserver@1.service

Ahí sí, pon esta configuración

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=miki
PAMName=login
PIDFile=/home/miki/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Luego haces otro:

sudo nano /etc/systemd/system/vncserver@2.service

Y pegue lo mismo, solo que en ambos casos cambie el nombre de usuario para sus propios usuarios. Ahora tenemos que eliminar los procesos antiguos si aún se están ejecutando y volver a cargar los archivos de la unidad.

vncserver -kill :2
vncserver -kill :1

sudo systemctl daemon-reload

Y comienza a usar archivos de unidad

sudo systemctl start vncserver@1

sudo systemctl start vncserver@2

Y si desea un servidor vnc en cada arranque, haga una vez más lo mismo que el anterior, simplemente habilite en lugar de iniciar.

Conclusión

En este tutorial, aprendimos cómo instalar y configurar el servidor VNC con dos usuarios en Ubuntu 16.04. Si tiene alguna pregunta o comentario, no dude en dejar un comentario.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar