Hace unos días te conté cómo era posible acceder por RDP a tus máquinas Linux en Microsoft Azure. Hoy me gustaría seguir otro camino diferente para lograr el mismo resultado, usando un servidor VNC en una máquina Linux en Azure. Para este post voy a utilizar la imagen de Ubuntu Server 16.04 LTS.

Una vez creada la máquina instala el entorno gráfico que prefieras. En este ejemplo voy a instalar Unity.
sudo apt-get update sudo apt-get install --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
Ya tienes un Linux con entorno gráfico y ahora necesitas un servidor de VNC. Existen varios servidores de este tipo a día de hoy, asi que para este post he elegido TightVNC.
sudo apt-get install -y tightvncserver
Es necesario modificar el archivo ~/.vnc/xstartup donde se especifica la configuración y los procesos que se van a lanzar cuando se inicie una sesión por VNC a dicha máquina. Una configuración válida podría ser la siguiente:
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager & gnome-panel & gnome-settings-daemon & metacity & nautilus &
Para arrancar el servicio debes utilizar el comando vncserver. La primera vez que lo ejecutes te pedirá que elijas una password para el acceso a la máquina y una segunda (opcional) para habilitar el acceso a la misma pero sin posiblidad de controlarla. Antes de continuar, al igual que en el post donde te conté cómo conectarte a Linux a través de RDP, es necesario permitir el acceso al puerto donde está a la escucha el servidor VNC. Puedes comprobar qué puertos usa tightVNC con el comando netstat -plant.

Como ves, está haciendo uso de dos puertos: el 5901 y el 6001. El que necesitas exponer es el 5901, por lo que es necesario permitir el acceso al mismo a través de la configuración de la máquina. En el portal de Azure, accede a Network Interfaces > Network Security groups > Inbound Security rules. Añade una nueva regla para el puerto que utiliza el servidor VNC.

Como cliente para VNC en Windows voy a utilizar UltraVNC Viewer donde basta con especificar la IP pública de tu VM y el puerto 5901.

Escribe la contraseña que elegiste al arrancar vncserver por primera vez y ya podrás acceder a tu entorno gráfico en Linux

¡Saludos!