Si ya está ejecutando un servidor X en Windows (como lo está con Xming), entonces el lado de Windows está hecho en su mayor parte (pero vea a continuación algunos detalles importantes). El bit clave restante es decirle a las aplicaciones X11 en el pi que envíen sus datos X11 a su PC con Windows.
Esto se hace a través de la DISPLAY
variable de entorno. Normalmente, si el servidor X y la aplicación se ejecutan en la misma computadora, DISPLAY solo especificará el número de servidor (por ejemplo, :0
si solo está ejecutando un servidor X) o tal vez un servidor y una pantalla (por ejemplo :0.0
). Como no hay una dirección IP, esto le dice a la biblioteca X de las aplicaciones que el servidor es local y que las conexiones se realizarán en consecuencia (probablemente a través de algún tipo de transporte de memoria compartida).
Para indicarle a la aplicación que envíe datos X11 a un nodo remoto, incluya una dirección IP en la DISPLAY
variable. Por ejemplo, export DISPLAY=192.168.1.10:0
. Esto le indicará a las aplicaciones X11 que necesitan abrir una conexión TCP al servidor X # 0 en el nodo 192.168.1.10. Los nombres de host DNS están bien aquí, si los tiene en su red.
Dos problemas potenciales
Como escribí en el primer párrafo, simplemente ejecutar Xming puede no ser suficiente. Puede haber una configuración adicional necesaria.
La primera es que su servidor X11 debe estar configurado para aceptar conexiones desde nodos remotos a través de TCP. Muchos servidores X distribuidos hoy (no sé sobre Xming) solo aceptan conexiones de aplicaciones que se ejecutan localmente a menos que las configure explícitamente de otra manera. Esta es una característica de seguridad, ya que cada socket abierto es un vector potencial de ataque.
El segundo es que su servidor X11 mantiene una base de datos de hosts / usuarios que pueden conectarse. Debe incluir en la lista blanca la dirección IP de su Raspberry Pi. Puede hacerlo ejecutando el xhost
comando desde Xming en Windows, por ejemplo, desde una consola que se ejecuta en un xterm. También puede escribir xhost +
para deshabilitar esta comprobación de seguridad, pero eso es peligroso porque permitirá que cualquier aplicación de cualquier parte del mundo abra conexiones a su pantalla. Si está detrás de un firewall en una LAN en la que confía en todos (por ejemplo, en su propia casa), ese es el enfoque más fácil, pero tómese el tiempo para configurarlo adecuadamente xhost
si no lo está.
Alternativa: ssh -Y
Usando el enfoque anterior, todas sus aplicaciones X11 intentarán abrir conexiones TCP a su servidor X. Estas conexiones no son seguras. Alguien en sus paquetes de espionaje de LAN puede interceptarlos.
Para resolver este problema, en lugar de configurar la variable DISPLAY en la Raspberry pi, use el -Y
parámetro cuando se conecte (p slogin -Y hostname
. Ej .). El parámetro -Y (como -X) creará un túnel entre los nodos para transportar tráfico X11. Esto mantendrá el tráfico X11 encriptado y seguro. También asignará su propia variable de entorno DISPLAY para que las aplicaciones usen el túnel. También puede eliminar la necesidad de meterse xhost
ya que (en lo que respecta a su servidor X) las conexiones se originan localmente (desde el lado de origen del túnel SSH).