Introducción
A veces necesitamos ejecutar aplicaciones de un servidor Linux -o Unix- remoto estando conectados a través de SSH, pero estas aplicaciones tienen una interfaz gráfica. Una solución para este problema puede ser iniciar una sesión de VNC (un escritorio remoto de Linux) y ejecutar desde este ambiente nuestra aplicacion. Otra opción que veremos en este post es utilizando X11 tunneling en nuestra sesión SSH, con la ventaja de que agregamos encriptación sobre el canal de comunicaciones.
¿Qué es X11?
X11 es un software creado en los años 80 por el MIT (Massachusetts Institute of Technology) con el propósito de ser una interfaz gráfica para los sistemas Unix de la época.
Tiene una arquitectura cliente-servidor, proveyendo servicios para acceder a la pantalla y los dispositivos de interacción con el ususario, y permitiendo independizar lo que se quiere mostrar (servidor) de la forma de cómo mostrarlo (cliente). Esto permite
también que el cliente de ventanas no esté corriendo en la misma computadora que el servidor, siendo posible ejecutar aplicaciones gráficas de forma remota.
La comunicación entre el cliente y el servidor se realiza utilizando un protocolo determinado (Xprotocol). El hecho de tener tanto un estándar como un protocolo bien definidos tiene como consecuencia una gran portabilidad del código que utiliza X11.
Wikipedia, como ya es de cosumbre tiene información más detallada y bastante clara sobre el sistema de ventanas X, están los links en las referencias.
Sistema de ventanas X en Windows
El tener una definición estándar del manejo de ventanas X permite implementar clientes para Windows. Uno de estos clientes es XMing, una alternativa gratis que funciona muy bien junto a clientes SSH como PuTTY.
Para poder utilizarlo debemos descargar, instalarlo y ejecutarlo. Aparecerá un ícono con una X en el tray, como se ve en la imagen:
n
Luego, al abrir una sesión SSH, debemos activar la opción para poder hacer tunnelling de X11 a través de esa conexión SSH. En PuTTY, esa opcion está en Connection -> SSH -> X11 -> Enable X11 forwarding:
Luego de tener activado el forwarding, siempre que ejecutemos un comando que necesite un ambiente gráfico en esa sesión SSH, se visualizará en nuestro Windows, como si fuera un proceso local.
En mi caso, el X11 forwarding
sirvió para poder utilizar el IBM Webshphere MQ Explorer (comando strmqcfg). Estoy seguro que lo voy a utilizar en alguna otra oportunidad, espero que a ustedes también les sirva.
Referencias
X11
- http://es.wikipedia.org/wiki/X_Window_System
- http://en.wikipedia.org/wiki/X_Window_System
- http://es.wikipedia.org/wiki/Protocolos_y_arquitectura_de_X_Window_System
- http://www2.its.strath.ac.uk/courses/x/
XMing
- http://sourceforge.net/projects/xming/
- http://www.straightrunning.com/XmingNotes/
- http://en.wikipedia.org/wiki/Xming
The post Ejecutar aplicaciones gráficas de X11 (Linux y Unix) en Windows appeared first on José Arrarte.