Exportar display de linux en un mac

quark
#1 por quark el 24/01/2006
Alguien sabe si se puede hacer.
La cuestión es que conectando por ssh un mac con un linux quiero saber si puedo exportar el display del linux en mac.
La Debian del linux utiliza el sistema de ventanas xfree86 y el mac ni idea de que utiliza.
Bueno, la cuestión es que puedo conectar a traves de consola en el mac con un linux pero no puedo exportar el display, ni se si se podrá.

Un saludo.
Subir
rumbe
#2 por rumbe el 24/01/2006
No se si te soluciona, pero si no se levantan las X desde ssh, puedes probar con otro software como puede ser vnc.

Para OSX tienes :

http://netmath.math.uiuc.edu/VNC-osx.htm


Configura tu linux como servidor de VNC y en tu mac accede con el cliente. Tendrás un inicio de sesion de tu kde/gnome deseando que le metas mano.

Saludetes
Subir
quark
#3 por quark el 24/01/2006
Pues no se si funcionará porque el linux está en una red con su firewall etc ( en el trabajo) y yo quiero acceder desde casa.
Lo probaré a ver que tal.
Gracias rumbera.
Subir
Nethox
#4 por Nethox el 27/01/2006
Hola.

Sí que se puede, precisamente el protocolo X11 está diseñado para ser independiente del Sistema Operativo y la localización (local o remota) del cliente y servidor. Basta con que el software implemente correctamente el protocolo y serán compatibles.

Necesitas un servidor de X Window System para MacOSX, creo que ya viene de serie aunque igual tienes que arrancarlo manualmente: http://www.apple.com/macosx/features/x11/. No uso MacOSX así que en esto no te puedo ayudar más.

El proceso es el siguiente (adapto una contestación que hice en otro foro):
- En el Mac, lanzar el servidor X al cual se conectarán las aplicaciones cliente remotas (cada programa gráfico es y se llama cliente). Verifica que se arranque SIN la opción que suele venir como seguridad "-nolisten tcp" (en Internet es inseguro porque te pueden monitorizar las pulsaciones del teclado, por ej.) para permitir recibir conexiones por TCP en vez de sólo por sockets UNIX locales.
- Permitir accesos remotos una vez lanzado el servidor X con xhost +hostname (la IP del GNU/Linux de tu trabajo) o con xauth (genera MIT-MAGIC-COOKIES almacenadas en ficheros ~/.Xauthority).
- Permitir tráfico entrante (me refiero al firewalling) al servidor X por el puerto TCP 6000+num_display (comienzan en :0).

###

- Ahora ya conectas al GNU/Linux del trabajo por SSH y puedes lanzar cualquier cliente X (pero especificando que el DISPLAY sea el Mac que esta a la escucha de conexiones remotas):
$ xclock -display ip-del-mac &
- Para hacerlo cómodo, se usa la variable de entorno DISPLAY; si tu shell es BASH, usa la siguiente órden para exportar la variable a todas las subshells:
$ export DISPLAY="ip-del-mac:0"

A partir de exportar la variable puedes lanzar aplicaciones desde la shell ssh del Linux así:
$ xclock &

- Por último, usa la aplicación que se tiene que estar mostrando en tu Mac aunque interna y remotamente se ejecuta en el PC con GNU/Linux.


Se puede automatizar la exportación de la variable DISPLAY si el servidor de SSH permite la opción X Forwarding (teniendo la línea "X11Forwarding yes" en el archivo de configuración sshd_config).
Si es así, para conectar al Linux lo harías con ssh -X y desde esa shell para lanzar los clientes ya directamente: $ xcalc o todo un escritorio completo en segundo plano: $ gnome &.

Con el ordenador del trabajo no deberías tener problemas de firewalling porque una vez conectado por SSH sólo actúa como cliente (no requiere conexiones _nuevas_ entrantes) al lanzar cada programa gráfico.

También tienes la opción de usar software como VNC, en ese caso cambia el concepto de cliente-servidor con respecto al del X Window System por el que se conoce habitualmente y sería necesario tanto cliente (para el Mac) que implemente el protocolo VNC como servidor (para el GNU/Linux).
De esta forma podría ser problema instalar un servidor VNC en el servidor del trabajo, conseguir que te permitieran tráfico entrante a través del firewall, etc.

Si tienes dudas concretas no dudes en hacerlas.
Suerte, un saludo :).
Subir
Zetaz
#5 por Zetaz el 27/01/2006
Si que se puede, y utilizando la encriptación ssh.

Echa un vistazo a Freenx, yo lo uso para windows y linux, pero creo que tambien funciona con mac.

No funciona como si fuera un terminal server, sino abriendo nuevas sesiones.
Subir
quark
#6 por quark el 27/01/2006
Pues lo he conseguido.
Muchas gracias Nethox y Zeta.
Simplemente me he instalado el x11 i ya está.
Bueno, debido al firewall que hay en el servidor del trabajo se tiene que hacer una especie de "tunel" con ssh pero bueno, ya funciona.
Un saludo.
Subir
danner
#7 por danner el 28/01/2006
Estoy flipando :shock:

Desde la máquina 1, hago un ssh a maquina2, allí escribo en el prompt "mozilla-firefox", y me lo abre... ¡Pero instanciado en maquina1! No, no exportado. Como lo sé? Me voy a "archivo -> abrir fichero" y tengo los ficheros de maquina1; también si desde un supuesto firefox de maquina2 y uno de maquina1 abro "ayuda -> acerca de", me abre una sola ventana de info, es decir, son la misma instancia.

No me había pasado nunca :shock:
Subir
danner
#8 por danner el 28/01/2006
Por cierto, para no caer en el off-topic. Aviso que esto podría ser mucho más preciso, pero cometeré algunas incorrecciones en favor de hacerlo más 'entendible'.

¿Qué es un display?
El software de GNU/Linux y de otros UN*X está desarrollado casi siempre alrededor de la idea de modularidad, la flexibilidad y las piezas intercambiables. Es otro grado de libertad que da trabajar con estos S.O., como ahora se verá (y a lo largo de toda la vida de este foro, creo ;) )

Con la presentación gráfica también se cumple esta filosofía. El sistema gráfico más común es el llamado X Window (bajo el que trabajan KDE, Gnome, Firefox, etc). Sin entrar en detalles, los programas en entornos gráficos (todo lo que sean ventanitas) no dibujan directamente en la pantalla. En su lugar, el trabajo se reparte en dos:es un display (una entidad que 'muestra' cosas)Así que tendremos el Servidor X en marcha y lanzaremos firefox. Firefox hace el trabajo de bajarse las webs, interpretar el código HTML, y cuando ya sabe qué es lo que se tiene que enseñar, se lo pasa al servidor X. El servidor X, entonces, en la ventana que hay reservada para firefox, irá dibujando lo que le digan.

¿Qué es exportar un display?
Si eres nuevo en esto, y estás leyendo el foro desde GNU/Linux con firefox (o konqueror, u opera, o...), ya tienes el display en marcha, y el cliente trabajando con ese display. De hecho, ese es su uso más habitual, el servidor X o display, y el cliente o programa, se encuentran en la misma máquina, es por eso que los programas que uno pone en marcha se muestran en el monitor del mismo ordenador.

Pero la comunicación entre display y programa también funciona por red, con lo que nada impide que el programa se ejecute en un ordenador, y lo que se tenga que mostrar se muestre en otro ordenador. El programa se seguirá mostrando en el servidor dentro de una ventana, que se podrá igualmente mnimizar, cambiar de tamaño, etc.

Los pasos para configurar esto, es decir, ver en un ordenador lo que se ejecuta en otro, se llama 'exportar el display', es decir, 'pasarle el trabajo de mostrar cosas a otro'. Está explicado en los mensajes anteriores (aunque es un caso concreto, la mecánica es parecida), pero simplificando mucho, es tan sencillo como, antes de lanzar el programa en cuestión, configurar una variable para decirle "... y el display donde te tienes que ir a dibujar está en la dirección D".

Aplicación práctica
La flexibilidad que da esto para un estudio es enorme. Pongamos que tenemos 3 ordenadores con GNU/Linux:(y aquí, cada uno que haga crecer la lista con todos los ordenadores baratos, barebones, etc que pueda ir apilando en casa ;) )

En otras condiciones, necesitaríamos un monitor para cada ordenador, con su teclado y su ratón. Pero gracias a la magia de las X Window, podemos exportar el display del sampler, de los plugins, de los sintes virtuales, etc. de los ordenadores secundarios, y controlarlo todo desde el ordenador principal.

Además, a diferencia de otras soluciones (como VNC, que para trabajar cómodamente con él lo mejor es trabajar a pantalla completa), aquí tendríamos ventanas individuales de cada programa, con lo que las podemos ordenar en la pantalla para tenerlo todo a la vista.
Subir
Hilos similares
Respuesta rápida

Regístrate o para poder postear en este hilo