Как получить полный адрес X-сервера

Как получить полный адрес X-сервера

Отредактировано относительно ответа @terdon.

На моем компьютере с Ubuntu:

Если я подключусь к серверу через ssh -X my_server, то смогу запустить программу.

Затем я пытаюсь sudo -iстать root, но не могу запустить ту же программу.
Ошибка:

Соединение X11 отклонено из-за неправильной аутентификации. qt.qpa.xcb: не удалось подключиться к дисплею localhost:18.0 qt.qpa.plugin: не удалось загрузить плагин платформы Qt "xcb" в "", хотя он был найден. Это приложение не удалось запустить, поскольку не удалось инициализировать плагин платформы Qt. Переустановка приложения может решить эту проблему.

Доступные плагины платформ: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Прервано (сброс ядра)


у меня естьWindows ВМсMobaXterm. Он показывает мне адрес, который использует X-сервер.

введите описание изображения здесь

Если я сделаю то же самое, что и выше, у меня та же проблема. Но я могу печатать, export DISPLAY=172.30.4.66:0.0и это работает.

echo $DISPLAYзатем выдает мне введенный адрес.


Как мне получить эти адреса на моем компьютере Ubuntu?

Набрав echo $DISPLAYя получаю :0. И export DISPLAY=<my ip>:0не работает.

"x11-xserver-utils" не установлены (естьнет xhost).

решение1

Во-первых, вам никогда не понадобится sudo su, зачем использовать 2 программы, когда подойдет одна? Просто запустите sudo -i. Во-вторых, зачем вам это вообще нужно? Если вы хотите запустить программу как root, просто запустите sudo programName. Далее, речь идет не о получении IP (и, кстати, нет смысла скрывать свой IP: 172.30.4.66 — это внутренний адрес в вашей домашней сети, это не ваш публичный IP), а о разрешении доступа.

Если вы действительно хотите, чтобы root мог запускать графические программы в сеансе X, вам нужно запустить, xhost +чтобы разрешить доступ всем пользователям. Так что просто запустите xhost +и попробуйте запустить. Если это не сработает, обновите свой вопрос с выводом.

Связанный контент