So erhalten Sie die vollständige Adresse des X-Servers

So erhalten Sie die vollständige Adresse des X-Servers

Bearbeitet bezüglich der Antwort von @terdon.

Auf meinem Ubuntu-Computer:

Wenn ich über einen Server verbinde ssh -X my_server, kann ich ein Programm starten.

Dann sudo -iwerde ich Root, aber ich kann das gleiche Programm nicht starten.
Fehler:

X11-Verbindung wegen falscher Authentifizierung abgelehnt. qt.qpa.xcb: Verbindung zum Display localhost:18.0 konnte nicht hergestellt werden qt.qpa.plugin: Das Qt-Plattform-Plugin „xcb“ konnte in „“ nicht geladen werden, obwohl es gefunden wurde. Diese Anwendung konnte nicht gestartet werden, da kein Qt-Plattform-Plugin initialisiert werden konnte. Eine Neuinstallation der Anwendung kann dieses Problem beheben.

Verfügbare Plattform-Plugins sind: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Abgebrochen (Core Dump)


Ich habe einWindows-VMmitMobaXterm. Es zeigt mir die Adresse, die der X-Server verwendet.

Bildbeschreibung hier eingeben

Wenn ich dasselbe wie oben mache, habe ich dasselbe Problem. Aber ich kann tippen export DISPLAY=172.30.4.66:0.0und es funktioniert.

echo $DISPLAYgibt mir dann die eingegebene Adresse.


Wie kann ich diese Adresse auf meinem Ubuntu-Computer erhalten?

Beim Eintippen echo $DISPLAYerhalte ich :0. Und export DISPLAY=<my ip>:0es funktioniert nicht.

Die "x11-xserver-utils" sind nicht installiert (es gibtkein xhost).

Antwort1

Erstens brauchen Sie nie sudo su. Warum also zwei Programme verwenden, wenn eines ausreicht? Führen Sie einfach aus sudo -i. Zweitens, warum brauchen Sie das überhaupt? Wenn Sie das Programm als Root ausführen möchten, führen Sie einfach aus sudo programName. Außerdem geht es hier nicht darum, die IP zu erhalten (und es hat übrigens keinen Sinn, Ihre IP zu verschleiern: 172.30.4.66 ist eine interne Adresse in Ihrem Heimnetzwerk, nicht Ihre öffentliche IP), sondern darum, den Zugriff zu ermöglichen.

Wenn Sie wirklich möchten, dass Root grafische Programme in Ihrer X-Sitzung starten kann, müssen Sie ausführen, xhost +um allen Benutzern Zugriff zu gewähren. Führen Sie es also einfach aus xhost +und versuchen Sie dann, es zu starten. Wenn das nicht funktioniert, aktualisieren Sie Ihre Frage mit der Ausgabe.

verwandte Informationen