Wenn Sie bereits einen X-Server unter Windows ausführen (wie bei Xming), ist die Windows-Seite meistens fertig (einige wichtige Details finden Sie weiter unten). Das verbleibende Schlüsselbit besteht darin, die X11-Apps auf dem Pi anzuweisen, ihre X11-Daten an Ihren Windows-PC zu senden.
Dies erfolgt über die DISPLAY
Umgebungsvariable. Wenn der X-Server und die App auf demselben Computer ausgeführt werden, gibt DISPLAY normalerweise nur die Servernummer an (z. B. :0
wenn Sie nur einen X-Server ausführen ) oder möglicherweise einen Server und einen Bildschirm (z :0.0
. B. ). Da es keine IP-Adresse gibt, teilt dies der X-Bibliothek der Apps mit, dass der Server lokal ist und die Verbindungen entsprechend hergestellt werden (wahrscheinlich durch eine Art Shared-Memory-Transport).
Fügen Sie der DISPLAY
Variablen eine IP-Adresse hinzu, um die App anzuweisen, X11-Daten an einen Remote-Knoten zu senden . Zum Beispiel export DISPLAY=192.168.1.10:0
. Dadurch wird allen X11-Apps mitgeteilt, dass sie eine TCP-Verbindung zum X-Server Nr. 0 auf Knoten 192.168.1.10 herstellen müssen. DNS-Hostnamen sind hier in Ordnung, wenn Sie sie in Ihrem Netzwerk haben.
Zwei mögliche Probleme
Wie ich im ersten Absatz geschrieben habe, reicht es möglicherweise nicht aus, Xming einfach auszuführen. Möglicherweise ist eine zusätzliche Konfiguration erforderlich.
Der erste ist, dass Ihr X11-Server so konfiguriert sein muss, dass Verbindungen von Remote-Knoten über TCP akzeptiert werden. Viele heute verteilte X-Server (ich weiß nichts über Xming) akzeptieren nur Verbindungen von lokal ausgeführten Apps, sofern Sie diese nicht ausdrücklich anders konfigurieren. Dies ist ein Sicherheitsmerkmal, da jeder offene Socket ein potenzieller Angriffsvektor ist.
Der zweite ist, dass Ihr X11-Server eine Datenbank mit Hosts / Benutzern verwaltet, die eine Verbindung herstellen dürfen. Sie müssen die IP-Adresse Ihres Raspberry Pi auf die Whitelist setzen. Sie können dies tun, indem Sie den xhost
Befehl von Xming unter Windows aus ausführen, z. B. von einer Konsole, die in einem xterm ausgeführt wird. Sie können auch eingeben xhost +
, um diese Sicherheitsüberprüfung zu deaktivieren. Dies ist jedoch gefährlich, da jede App von überall auf der Welt Verbindungen zu Ihrem Display herstellen kann. Wenn Sie sich hinter einer Firewall in einem LAN befinden, in dem Sie allen vertrauen (z. B. Ihrem eigenen Zuhause), ist dies der einfachste Ansatz. Nehmen Sie sich jedoch die Zeit, um die Konfiguration ordnungsgemäß durchzuführen, xhost
wenn Sie dies nicht tun.
Alternative: ssh -Y
Mit dem oben beschriebenen Ansatz versuchen alle Ihre X11-Apps, TCP-Verbindungen zu Ihrem X-Server herzustellen. Diese Verbindungen sind nicht sicher. Jemand in Ihrem LAN kann Snooping-Pakete abfangen.
Verwenden Sie zur Lösung dieses Problems den -Y
Parameter, wenn Sie eine Verbindung herstellen , anstatt die Variable DISPLAY auf dem Raspberry pi festzulegen (z slogin -Y hostname
. B. ). Der Parameter -Y (wie -X) erstellt einen Tunnel zwischen den Knoten für die Übertragung von X11-Verkehr. Dadurch bleibt der X11-Verkehr verschlüsselt und sicher. Außerdem wird eine eigene Umgebungsvariable DISPLAY zugewiesen, sodass Apps den Tunnel verwenden. Möglicherweise müssen Sie sich auch nicht mehr damit herumschlagen, xhost
da (was Ihren X-Server betrifft) die Verbindungen lokal (von der Ursprungsseite des SSH-Tunnels) stammen.