Ich verbinde mich (über ssh -Y ...
) von einem Computer (= Client) mit einem anderen Computer (= Server, tatsächlich in meinem LAN, aber das ist irrelevant). Dann starte ich einen neuen Netzwerk-Namespace (kurz NNS) auf dem Server, starte einen xterm (aus dem Standard-Namespace), der auf meinem Client perfekt angezeigt wird, und trete schließlich innerhalb des xterm dem nicht standardmäßigen NNS bei ,
ip netns exec NNSName bash
Ich kann überprüfen, ob ich im neuen NNS bin.
ip netns identify $$
und ich kann komplexe Programme wie zum Beispiel OpenVPN innerhalb des neuen NNS ausführen.
Das Problem ist hier: Ich möchte eine grafische Anwendung (auch nur xeyes
für den Moment) innerhalb des neuen NNS starten , aber ich kann nicht, mir wird immer gesagt:Unable to open DISPLAY=...
Zugegeben, ich habe nur das Offensichtliche versucht:
DISPLAY=:0.0
DISPLAY=:10.0
DISPLAY=localhost:10.0
DISPLAY=localhost:20.0
DISPLAY=ClientName:10.0
DISPLAY=ClientIPAddress:10.0
Immer mit xhost +
auf dem Client, für reine Debugging-Zwecke.
Ich habe keine Probleme:
Herstellen einer Verbindung
ssh -Y ....
von Client zu Server, Ausführenxeyes
auf dem Server und Anzeigen auf dem Client;Starten eines neuen NNS auf dem Server und Starten von grafischen Anwendungen innerhalb des NNS, die auf dem Server angezeigt werden sollen ( dh in diesem Fall den Client vergessen).
Wenn ich diese beiden Dinge zusammenstelle (ssh und Namespace), kann ich sie nicht auf den Clientanwendungen anzeigen, die im neuen NNS des Servers ausgeführt werden.
Es scheint, dass der Standard-TCP-Port 6010 zur SSH-Sitzung mit dem Standard-NNS gehört, während der neue NNS seinen eigenen bekommen sollte. Ich kann sicherlich einen SSH-Server im neuen NNS starten und eine direkte Verbindung vom Client zum neuen NNS des Servers herstellen, aber ich habe mich gefragt: Gibt es eine einfachere Möglichkeit, dies zu tun, dh grafische Anwendungen anzuzeigen, die im neuen NNS des Servers auf dem Server ausgeführt werden X11-Server des Clients?
quelle