Métodos para redireccionar X11 de un servidor remoto UNIX/Linux

Con frecuencia la administración de servidores UNIX/Linux se realiza en remoto a través de SSH. También podemos disponer de las funcionalidades del entorno gráfico X11 de la máquina remota de maneras bastante sencillas, tanto si estamos trabajando desde un Windows o desde Linux.

Exportar Display X11 de un servidor remoto UNIX/Linux a nuestro sistema local Windows

Lo primero que necesitamos es disponer de un servidor gráfico X11 para nuestro sistema Windows al que exportaremos la sesión gráfica remota. Podemos utilizar muchas soluciones, aunque en este caso me basaré en Xming por ser uno de los más eficientes y sencillos. Una vez instalado Xming iniciamos el servidor X con Xlaunch que podemos encontrar en el menú Inicio.

Xlaunch (servidor Xming)

Xlaunch (servidor Xming)

Y seleccionamos las siguientes opciones en las ventanas subsiguientes que veremos:

       

  • Multiple Windows
  •    

  • Start no client
  •    

  • No access control

También necesitaremos un cliente SSH para conectar con la máquina UNIX/Linux remota. La opción por excelencia es Putty.

Una vez conectados al servidor remoto con la variable de entorno DISPLAY la máquina en la que se tienen que visualizar las aplicaciones. Introducimos por terminal lo siguiente:

export DISPLAY={IP local donde queremos visualizar}:0.0

En mi caso, la IP de Windows (máquina local) es 192.168.2.144, por lo que:

export DISPLAY=192.168.2.144:0.0

Ejecutamos una aplicación desde la terminal SSH, por ejemplo el navegador web Midori, y debería salir en nuestra máquina local. Esta aplicación estaría ejecutándose en el servidor remoto (con la consiguiente carga de recursos) pero se visualizaría en nuestro equipo local.

Exportando X11 desde el servidor remoto al local

Exportando X11 desde el servidor remoto al local

Si esto no funciona, asegúrate de que en el fichero /etc/ssh/sshd_config esté la siguiente directiva:

X11Forwarding yes

Si no es así, especifícala y reinicia ssh:

service sshd restart

Y por si acaso, autoriza a tu host a visualizar aplicaciones X11 del servidor remoto:

xhosts 192.168.2.144

Exportar X11 de UNIX/Linux a UNIX/Linux

En este caso, tenemos un método mucho más sencillo. Más que en Windows, una vez más y para que luego digan que Linux es complicado… bastará con permitir la redirección de las X con la opción -X a la hora de conectarnos por SSH. Abrimos terminal en nuestro Linux y conectamos. Mi servidor remoto tiene IP 192.168.2.123 y mi usuario es jota:

ssh -X jota@192.168.2.123

Podemos probar de nuevo a ejecutar el navegador web Midori desde la terminal y ver cómo se muestra en nuestro equipo local (el mío es un Debian):

De nuevo, Midori exportado en nuestro X11 local

De nuevo, Midori exportado en nuestro X11 local

Si utilizamos clientes como Putty, suelen contar con opciones para permitir la redirección de las X. Podemos encontrarlo en la pestaña Connection -> SSH -> X11:

Redirección X11 en Putty

Redirección X11 en Putty

¿Y por qué prefiero el método de redirección de las X por SSH? Porque es el más sencillo de UNIX/Linux a UNIX/Linux. Otros métodos en los que hay que dar permisos con xhost, se convierten en un auténtico infiero, ya que muchas veces hay que ajustar aún más parámetros desde gdm (si estamos utilizando Gnome) o kdm (si utilizamos KDE).

Utilidades adicionales y alternativas

Para hacer pruebas de exportación de X11, si no queréis hacer como yo y exportar un navegador web (Midori) que es bastante pesado, os recomiendo unas sencillas utilidades como xeyes, xcalc o xconsole, que podéis instalar en CentOS con:

yum install xorg-x11-apps

Y en Debian con:

apt-get install x11-apps

En entornos Windows tenemos más alternativas aparte de Xming, como por ejemplo Cygwin/X, Xmanager 5 de Netsarang o VcXsrv Windows X Server. También tenemos servidores X11 integrados en herramientas más generalistas, especialmente gestores de conexiones como MobaXterm. A éste último le estoy cogiendo el gusto aunque no acabo de desprenderme de uno de mis gestores favoritos mRemoteNG.