Назад | Перейти на главную страницу

Клонировать сеанс xorg удаленно

Кто-нибудь знает, как клонировать / подключиться к работающему серверу xorg, чтобы увидеть в мягком реальном времени, что показывает монитор / дисплей (дисплей находится в паре миль, но я могу добраться до него через TCP / IP)? У меня есть небольшой скрипт для получения снимка экрана, но он немного ограничен.

#!/bin/bash
REMOTE_USER=root
IP=$1
IMAGE_FILE=/tmp/host_${IP}_`date +"%Y%m%d-%H:%M:%S"`.png
ssh root@$IP 'xwd -d :0 -root | gzip' | gunzip | convert - $IMAGE_FILE

Я подумал, что было бы неплохо посмотреть, что показывает дисплей в мягком реальном времени, если, конечно, возможно. :)

Заранее спасибо,

Humber

Если вы хотите установить x11vnc на удаленном компьютере, вы можете использовать его следующим образом:

ssh remote_ip_address sudo x11vnc -auth /home/some_user/.Xauthority -display: 0

Не забудьте включить перенаправление X11 в sshd.config. И вам нужен клиент VNC.

Если вы не хотите использовать VNC, вы можете использовать любую другую программу, например Xnest:

Xnest -geometry 1024x768: 1 & DISPLAY =: 1 ssh -X gnome-session

Потребуются некоторые модификации для вашего конкретного случая, но для тех, кто использует xwd, это не должно быть проблемой.

У меня это в bin / startvnc на моих машинах:

x11vnc -display :0 -localhost -nopw -clear_mods

Если на коробке есть другие пользователи, удалите -nopw если вы параноик по поводу безопасности.

Я вхожу в систему примерно так:

ssh -C -L 5904:localhost:5900 box

а затем запустить startvnc

затем на моем локальном компьютере запустите

xvncviewer 0:1

Это не так автоматизировано, как одиночная команда, но я всегда вхожу в сеанс экрана, поэтому, если я хочу использовать vnc, я просто открываю новое окно экрана и запускаю startvnc,

Может быть, для вашего конкретного случая это перебор. Но я все равно отправлю его на случай, если он будет полезен другим людям, которые будут задавать этот вопрос в будущем.

Другой способ подключиться к сеансу X - настроить FreeNX на машине, которой вы хотите управлять удаленно. Затем на вашем локальном компьютере вы должны запустить клиент NX, запросив теневой сеанс.

Когда клиент NX подключается к удаленному компьютеру, вам будет показан список доступных сеансов. Если вы выберете «X0 (Local)», вы сможете видеть удаленный дисплей и управлять им.

Более подробную информацию вы можете найти на Начало работы с NX (см. раздел 4.5, «Совместное использование рабочего стола и теневое копирование сеанса»)

На самом деле с некоторым дистрибутивом, таким как Opensuse 11.2, если вы собираетесь использовать x11vnc, вам, вероятно, понадобится использовать файл .Xauthority, созданный для диспетчера входа (gdm, kdm), вместо файла, созданного для самого пользователя. (что-то вроде /home/user/.Xauthority или около того), и вы можете найти его в Opensuse, посмотрев на:

/ var / lib / xdm / authdir / authfiles / что-то-имя-псевдослучайно сгенерировано

  • вероятно, вам следует очистить этот каталог, прежде чем пытаться использовать файл .Xauthority (это будет много ранее созданных файлов аутентификации для предыдущих сеансов X), выключить X и затем перезапустить его, после этого вы найдете новый файл , фактическая авторизация для нового X-сеанса началась недавно.

Если вы используете другой дистрибутив, вам, вероятно, следует посмотреть / var / lib / gdm, / var / lib / kdm и аналогичные каталоги.