У меня есть Linux-машина ubuntu, в которую я уже вошел, и работает X-сервер (он передает диспетчер входа в систему, например gdm). Я могу получить доступ к этой машине через ssh. Моя цель - запустить x11vnc на этом компьютере и подключить его к уже запущенному X-серверу.
Когда я подключаюсь к машине по ssh и запускаю x11vnc, он говорит:
X11 was unable to open the X DISPLAY ":0", it cannot continue.
Как я могу запустить x11vnc на удаленном компьютере, если у меня нет физического доступа к нему, а Xserver уже запущен. Причина, по которой я хочу это сделать, заключается в том, что на удаленной машине открыто несколько окон, над которыми я хочу работать.
РЕДАКТИРОВАТЬ: Я также пробовал x11vnc -find. На этот раз он не выдал мне это сообщение об ошибке и смог определить, что клиент подключен:
Got connection from client x.x.x.x
...
wait_for_client: find display cmd failed
wait_for_client: bad reply '
'
Похоже, что команда -find просто отсрочивает неизбежное.
Спасибо,
Я обнаружил, что на своем рабочем столе Gentoo kde это отлично работает, когда kde уже запущен.
x11vnc -xauth / var / run / xauth / A: 0-bHJFac -display: 0 -passwd "пароль" -forever -shared
Я использовал gnome, поэтому я просто дал x11vnc авторитетный файл x, который использовал gnome. Это сделали:
x11vnc -xauth /var/lib/gdb/:0.Xauth -display :0
Я решил это очень окольным путем, поэтому я просто подробно расскажу, как я это сделал, что очень неоптимально и сложно. Другие уже дали изящные и короткие решения.
Проблема, с которой я столкнулся, заключалась в том, что x11vnc отказался запускаться через SSH, заявив, что не нашел графического дисплея. Итак, моим решением было ....
Во-первых, через SSH как root я запустил сервер TigerVNC на машине с отображением: 1
# vncserver :1
(начинать с root было глупо)
Затем я подключился к этому дисплею с помощью TigerVNC со своего клиентского компьютера.
Connect to: a.b.c.d:1
Теперь я нахожусь в графическом интерфейсе как root (очень глупо). Я открыл терминал и запустил x11vnc как мой первоначальный пользователь
# sudo -u milind x11vnc -many -display :0
Теперь я смог
Connect to: a.b.c.d:0
Готово! хотя и весьма окольным образом.
Для меня
Description: Debian GNU/Linux 6.0.5 (squeeze)
Release: 6.0.5
Codename: squeeze
apt-cache policy gdm3
gdm3:
Installiert: 2.30.5-6squeeze4
это сработало, даже если я вхожу удаленно через ssh:
su -c "x11vnc -auth /var/run/gdm3/auth-for-username*/database -display :0 -forever -passwd foo"
изменить: вы также можете использовать, например, ssvnc для удобного использования vnc поверх ssh. Просто запустите x11vnc, как указано выше, но с параметром "-localhost":
su -c "x11vnc -auth /var/run/gdm3/auth-for-username*/database -display :0 -forever -passwd foo -localhost"
затем вы можете нажать «Использовать SSH» в скрипте ssvnc, и он будет подключаться через ssh, поэтому нет необходимости для x11vnc для глобального прослушивания!
Использовать x0vncserver
вместо:
x0vncserver - это сервер TigerVNC, который обеспечивает удаленный доступ к любому дисплею X через VNC, TigerVNC или совместимые программы просмотра. В отличие от Xvnc (1), он не создает виртуальный дисплей. Вместо, он просто использует существующий X-сервер (обычно тот, который подключен к физическому экрану).