domingo, 13 de diciembre de 2015

Conexión desde Windows 8 a Ubuntu 14.04 con escritorio remoto

Problema: Deseas conectarte a una máquina Ubuntu 14.04 mediante conexión a escritorio remoto de Windows 8 (seguramente también funcione en 7 y en 10)

Aviso: Soy novato en Ubuntu, por tanto seguramente algo de lo que diga no sea preciso al 100%. Si alguien cree que se  pueden matizar mis palabras para que algo quede más claro, por favor que comente. 

Comentario: El protocolo RDP (Remote Desktop Protocol) es propiedad de Microsoft, pero podemos utilizar un servidor xRDP en nuestra máquina Ubuntu y funcionará bien. Sin embargo, xRDP no funciona en Ubuntu 14.04 (al menos hasta donde yo sé) y por tanto hay que utilizar un Gestor de Escritorio diferente al realizar las conexiones. 

  1. Esto implica que cuando te conectes remotamente no verás el escritorio normal de Ubuntu (llamado Unity) sino otro que instalaremos. Concretamente usaremos Mate, que tiene un aspecto bastante parecido a Unity.
  2. También implica que la sesión remota será una sesión paralela a la local. Si tienes Ubuntu en una máquina virtual, esto no será inconveniente porque lo normal será que siempre accedas a él mediante escritorio remoto. Pero si no es así o bien accedes alguna vez a la máquina virtual desde Hyper-V, Vmware, Virtual box, etc, será importante que nunca hagas logout de la sesión remota (a menos que ya quieras apagar la máquina), ya que sino se quedará en un limbo (en ese caso lo más fácil para un novato sería reiniciar Ubuntu y que desaparezca). Lo normal será que cierres la ventana de la sesión remota y te conectes a ella repetidamente manteniendo la sesión activa hasta querer apagar.
Solución:  
En Ubuntu abrimos un terminal y seguimos este procedimiento:
  1. Actualizamos el sistema: 
    • sudo apt-get update
  2. Instalamos xrdp: 
    • sudo apt-get install xrdp
  3. Añadimos los repositorios de los que descargaremos Mate (¡los dos!):
    • sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
    • sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
  4. Instalamos Mate (le añadimos un daemon para notificaciones): 
    • sudo apt-get install mate-desktop-environment mate-notification-daemon
  5. Aseguramos que todo el sistema está actualizado:
    • sudo apt-get update
    • sudo apt-get upgrade
  6. Configuramos Ubuntu 14.04 para que use Mate en las sesiones xrdp:
    • echo mate-session >~/.xsession
  7. Y modificamos también el fichero startwm.sh. Abrimos el editor nano y nos vamos a la última línea del archivo:
    • sudo nano /etc/xrdp/startwm.sh
    • Nos debería quedar algo así, atención a la última línea "mate-session":


Guardamos y salimos (CTRL+O, CTRL+X)
  1. Reiniciamos el servidor xrdp:
    • sudo service xrdp restart
Ahora vamos a Windows y establecemos la conexión de escritorio remoto hacia la máquina Ubuntu. Tras escribir login, password de la sesión Ubuntu, aparece una consola que cargará Mate. Es muy importante leer el puerto que se ha usado para establecer esta primera conexión y anotarlo (en mi caso 5910). Observad la imagen:


  1. Abrimos una aplicación y la dejamos abierta (la usaremos para verificar que estamos volviendo a la misma sesión al reconectar).
  2. Cerramos la sessión de escritorio remoto
  3. Volvemos a Ubuntu y modificamos el fichero xrdp.ini:
    • sudo nano /etc/xrdp/xrdp.ini
    • Bajamos hasta la sección [xrdp1] y donde pone port=-1, ponemos port=ask 5910, donde pone 5910 deberéis escribir vuestro puerto. Guardamos y salimos.
  4. Reiniciamos el servidor xrdp:
    • sudo service xrdp restart
Otra vez a Windows, establecemos una nueva conexión remota. Veremos que aparece el número de puerto configurado debajo del login y password. Al entrar comprobaremos que la aplicación que habíamos dejado abierta sigue allí. Por tanto, confirmamos que todo funciona correctamente.

Comentario final: Para tener el puerto 5910 tuvimos que hacer una primera conexión con el puerto -1 (fijaos que al cambiar el fichero xrdp.ini es el que estaba apareciendo). Esto es así porque no se asigna el puerto hasta conectar por primera vez. Si reiniciamos Ubuntu, todo se resetea por tanto, la primera vez que hagamos la conexión, tendremos que usar -1 y fijarnos de nuevo en el puerto que salga en la consola (normalmente será el mismo y por eso, por defecto en el cuadro de diálogo que pide login y password lo hemos dejado así configurado, de modo que sólo habrá que cambiarlo por -1 en esa primera conexión que hagamos tras haber reiniciado Ubuntu).

Por favor, no uses adblockers en esta página. Los anuncios no son invasivos y quizá veas algo que te interese. Esta página se mantiene gracias a ellos. Si encontraste una solución a tu problema y ahorraste tiempo, ya me doy por satisfecho. También podrías invitarme a un café con una pequeña donación en Paypal. ¡Gracias! 


No hay comentarios:

Publicar un comentario