7 de enero de 2017

Compartir escritorio de Ubuntu 16.04 de forma remota a través de Internet

En ocasiones, es muy útil poder acceder al escritorio de una máquina que no tenemos delante, y así resolver cualquier cuestión. Para ello existen las soluciones RDP, o Protocolo de Escritorio Remoto. En Ubuntu 16.04, vienen implementadas en la instalación básica, pero en muchos casos no conseguimos hacer que funcionen como nos gustaría. En este artículo voy a centrarme en los pequeños problemas que pueden dar y cómo se solucionan.



En primer lugar entender cómo funciona

El funcionamiento se hace a través de dos programas diferentes, el servidor y el cliente. El servidor lo haremos funcionar en la máquina que quiere compartir su escritorio, y el que viene instalado en Ubuntu se llama concretamente Compartición del escritorio. Por otra parte el cliente se ejecutará en el dispositivo desde el que queremos ver el escritorio de forma remota, y aunque hay varios el que viene por defecto actualmente se llama Cliente de escritorio remoto Remmina, o simplemente Remmina.

Otro punto importante a destacar, es que dichos programas pueden suponer un claro problema de seguridad por lo que su configuración inicial, sólo permite que funcionen dentro de la red local. Es decir, al hacer funcionar el servidor, abrirá un puerto TCP (por defecto el 5900) que sólo podrá ser visto por clientes que se encuentren dentro de la red local.

Eso no significa que no funcione igualmente bien desde equipos fuera de esa red local, desde cualquier otra conexión en Internet, y es lo que voy a explicar más adelante.

Por último aclarar que el protocolo que emplea este sistema se denomina VNC, y que existen otras aplicaciones que lo gestionan tanto para clientes como servidores. Por ejemplo para Android un cliente que está muy bien es VNC Viewer.

Configuración del servidor

Cómo he dicho antes, me limitaré a explicar los programas que actualmente trae Ubuntu, empezando por el servidor.

Poner en marcha el servidor, se hace sencillamente ejecutando el ya mencionado Compartición del escritorio, y marcando en la ventana de configuración que aparece, la opción de Permitir a otros usuarios ver mi escritorio. A partir de ahí se pone el servidor en funcionamiento y podremos acceder al mismo desde la red local.




Voy a explicar brevemente sus opciones.
  • Para permitir a otros interactuar con el escritorio, selecciona Permitir a otros usuarios controlar su escritorio. Esto permitirá a la otra persona mover su ratón, ejecutar aplicaciones y ver archivos en su equipo, dependiendo de la configuración de seguridad que esté usando.
  • Debe confirmar cada acceso a esta máquina. Si deshabilitas esta opción, no preguntará si desea permitir que alguien se conecte al equipo. Teniéndola activada es necesario estar presente para que puedan conectar.
  • Para solicitar a otras personas que usen una contraseña cuando se conecten al escritorio, selecciona Solicitar al usuario que introduzca esta contraseña. Si no se activa esta opción, cualquiera puede acceder.
  • Si el router de acceso a Internet es compatible con el protocolo UPnP y está habilitado, puede permitir que otros usuarios que no están en su red local vean su escritorio. Para ello, selecciona Configurar automáticamente el router UPnP para abrir y redirigir los puertos. Esta opción no es suficiente por si sola para compartir fuera de la red local.
  • Mostrar icono en el área de notificaciones. Para poder desconectar a alguien que está viendo el escritorio, hay que habilitar esta opción. Si seleccionas Siempre, este icono estará visible independientemente de si alguien está conectado o no.
Como he mencionando antes, la configuración es sencilla y en local funciona sin problemas una vez entendemos sus opciones. El caso más problemático será cuando lo que queremos es salir a Internet. Para eso lo mejor es dejar activada la opción UPnP, pues hoy en día casi todos los routers la soportan bien. Pero además debemos hacer algo más.


Hay un par de apartados de la configuración a los que sólo podemos acceder a través de dconf. Para cambiar la configuración de dconf, lo podemos hacer a través del terminal o de forma gráfica. Para hacerlo de forma gráfica hemos de instalar su editor:

sudo apt install dconf-editor
Luego lo llamaremos y ejecutaremos desde el dash o tablero, y nos dirigiremos al apartado org.gnome.desktop.remote-access


Dentro de dicho apartado, reconoceremos varias de las opciones que nos aparecían en la ventana de preferencias, y algunas más que son clave para lo que buscamos. Concretamente debemos modificar las opciones require-encryption y network-interface.

La opción require-encryption la deberemos desactivar en la mayoría de los casos, pues el tipo de cifrado puede que no sea el mismo para el dispositivo del servidor y del cliente.

La opción network-interface la debemos establecer correctamente, pues dejándola en blanco parece que limita la apertura del puerto a la red local. La deberemos especificar dependiendo de la interfaz que nos conecta a Internet y que podemos conocer con el comando ifconfig. Por lo general los valores válidos serán eth0 o wlan0, pero dependera del equipo concreto.

Conexión mediante el cliente

No voy a entrar en muchos detalles, la forma rápida de acceder a nuestro servidor una vez configurado, es usar un cliente, es este caso el ya comentado Remmina.


Es indispensable conocer la dirección IP del servidor, tanto si estamos conectando de forma local, como si lo hacemos a través de Internet. En el primer caso la podemos conocer usando el comando ifconfig, que nos proporcionará una IP del tipo 192.168.1.100

En caso de querer conectar a través de Internet una forma fácil de conocer la IP pública es acceder desde el mismo a alguna web que nos la proporcione, como por ejemplo http://www.cualesmiip.com/ y que será del tipo 216.58.210.163. También se puede obtener mediante el siguiente comando:

curl ipinfo.io/ip

Obviamente nuestro cliente no debe coincidir con la IP del servidor, deberán ser diferentes pues se tratan de dispositivos distintos con conexiones diferenciadas.

Pues bien, aclarado todo lo anterior, en la ventana de Remmina seleccionaremos como protocolo a usar VNC, escribiremos la dirección IP del servidor y le daremos a Conectar. Tras lo cual se nos abrirá el escritorio de forma remota y podremos observarlo o interactuar con él según la configuración específica que esté establecida en el servidor.



No hay comentarios: