Запустите приложение на локальном компьютере и покажите графический интерфейс на удаленном дисплее.

Можно ли запустить приложение на моем локальном рабочем столе, но отображать графический интерфейс на моем ноутбуке (удаленный X)?

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

Я установил Synergy, и я могу легко управлять своим ноутбуком с помощью клавиатуры / мыши на рабочем столе, но я также хотел бы просто запустить что-то на рабочем столе и отобразить графический интерфейс на экране ноутбука.

Из своего ограниченного опыта работы с X я знаю, что могу запустить программу на удаленном компьютере и использовать отображение первого, чтобы показать результат, но не наоборот.

Любые указатели будут очень полезны. Спасибо

П.С. Запуск XFCE 4.10 в Ubuntu 12.10

35
задан 20 October 2012 в 13:49

7 ответов

Вариант A - Съемка X Windows на другой дисплей:

  1. Следите за тем, чтобы сервер Xserver на вашем ноутбуке запускал прослушивание tcp-соединений. К сожалению, X11-Networking по умолчанию отключен в большинстве дистрибутивов. Поскольку Xserver запускается вашим диспетчером отображения (gdm, lightdm), его необходимо настроить там:

    Независимо от того, какой менеджер отображения вы используете, некоторый файл конфигурации в / etc /, вероятно, будет содержать ответственный параметр XServer. Запустите grep -r 'nolisten tcp' /etc/ на своем ноутбуке, чтобы выяснить, какой файл конфигурации отвечает, и удалите часть, в которой написано -nolisten tcp (не всю строку, только этот параметр). Перезагрузите X на своем ноутбуке.

    Теперь у вашего ноутбука должен быть дисплей, работающий по tcp-порту 6000 (попробуйте запустить nmap -p6000 Laptop на настольном ПК, если порт был отмечен как «открытый», вы зашли так далеко).

  2. Сделайте ваш X-дисплей доступным для настольного компьютера. X11 использует механизм аутентификации для предоставления доступа к дисплею. Вы должны позволить настольному ПК снимать Windows на ноутбук. Обычно путем обмена отображаемым cookie.

    Для начала выполните этот шаг, положив руки на ноутбук. После того, как вы получили понятие с переменной DISPLAY и всем остальным, вы можете сделать это через ssh.

    Быстро и грязно: вы можете запустить xhost +desktops.computers.ip.address на своем ноутбуке, чтобы предоставить X доступ к настольному компьютеру. Обратите внимание, что каждый пользователь на вашем ноутбуке может использовать ваш ноутбук X таким образом. Обратите внимание, что этого достаточно, чтобы установить кейлоггер на дисплей вашего ноутбука. Используйте этот метод только для тестирования.

    Правильно и безопасно: запустите xauth extract cookie-file :0 на своем ноутбуке, чтобы экспортировать секрет доступа к дисплею в «cookie-файл». Перенесите файл cookie на свой настольный компьютер. Run xauth merge cookie-file. Или за один короткий шаг (с вашего рабочего стола) ssh Laptop xauth extract - :0 |xauth merge - Примечание: если ваш ноутбук и рабочий стол используют общий каталог, то есть через nfs, вам не нужно обмениваться никакими учетными данными. База данных учетных данных - это файл .Xauthority в вашем домашнем каталоге, и его можно использовать на разных компьютерах.

  3. Запустите программу: в терминале настольного ПК запустите export DISPLAY=Your.Laptops.IP.Address:0, запустите любую программу X в том же терминале. Он должен появиться на дисплее ноутбука.

Вариант B - Использование SSH с поворотом.

SSH выполняет пересылку X11 путем переадресации в локальный сокет X11 (обычно Unix Domain Socket) в локальный TCP-сокет на удаленном компьютере, затем согласовывает файл cookie дисплея, затем устанавливает DISPLAY-Environment на удаленном компьютере. Таким образом весь трафик X11 шифруется по туннелю ssh. Обычный вариант использования - пересылка локального дисплея на удаленный компьютер (это означает, что удаленные приложения могут отображать x windows локально).

Преимущество использования ssh в том, что вам не нужно переводить ваш X-сервер в режим прослушивания tcp (поскольку используется сокет unix). И ssh обрабатывает обмен учетными данными.

  1. SSH к ноутбуку с настольного компьютера (пока не нужно использовать -X).
  2. В удаленной оболочке введите export DISPLAY=:0, что делает уже работающий дисплей на вашем ноутбуке доступным для оболочки, которую вы получили через ssh. Если вы сейчас выполните какую-либо X-команду, она уже появится на экране вашего ноутбука, но все равно будет работать на вашем ноутбуке (попробуйте, чтобы быть в безопасности).
  3. Из этой оболочки ssh обратно на настольный компьютер используйте -X на этот раз. Теперь у вас есть оболочка на машине, на которой был создан сеанс ssh, но на этот раз с работающим X. Запустите xeyes или xcalc, чтобы протестировать его.
  4. echo $DISPLAY показывает обозначение экрана вашего ноутбука X на настольном компьютере. То есть : 10 или: 11.
  5. Теперь вы можете свернуть терминал. Каждый раз, когда вы вводите export DISPLAY=:10 (посмотрите, какой у вас номер дисплея) сейчас на настольном компьютере, каждая программа, которую вы запускаете впоследствии в той же оболочке, будет отображаться на экране вашего ноутбука.

    Этот вариант простой, но медленный, поскольку весь трафик X11 пересылается через SSH.

Вариант C - оригинальная концепция thinclient:

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

  1. Настройте диспетчер дисплея на рабочем столе для ответа на трансляции XDMCP. Как это сделать, зависит от вашего диспетчера отображения. Некоторые дисплеи не поддерживают это вообще, то есть тонкие. XDM, KDM, WDM, GDM поддерживают это.

  2. Запустите X-сервер на своем ноутбуке, который запрашивает диспетчер дисплея с вашего рабочего стола. Либо вложенный X: Xephyr :1 -query desktop или Xephyr :1 -broadcast, либо выключив X-сервер вашего ноутбука и войдя в системный терминал sudo Xorg :0 -broadcast

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

0
ответ дан 20 October 2012 в 13:49

Вы хотите использовать комбинацию SSH и экрана, чтобы получить нужную вам ситуацию.

На рабочем столе установите экран:

sudo apt-get install screen

Оттуда запустите новый сеанс экрана:

screen

и откройте в нем firefox:

firefox

Используйте firefox все, что вы хотите на своем рабочем столе, а затем подключитесь по ssh к компьютеру с вашего ноутбука:

ssh -X username@hostname

Введите следующую команду, чтобы увидеть, какие сеансы экрана вы используете:

screen -ls
[ 1112] Войдите в свой сеанс экрана (1234 будет числом, которое вам дал экран)

screen -x 1234

Затем вы можете использовать Firefox на своем ноутбуке и закрыть терминал на рабочем столе.

0
ответ дан 20 October 2012 в 13:49

После еще нескольких копаний в Интернете я наткнулся на DMX

С домашней страницы

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

0
ответ дан 20 October 2012 в 13:49

Вы можете использовать ssh X forwarding для достижения своей цели. Если вы находитесь в той же подсети, то она быстро завершается.

Установите ssh-сервер и клиент на вашем ноутбуке и настольном ПК

sudo apt-get install ssh

Чтобы подключиться к настольному ПК, откройте терминал на ноутбуке и введите следующее

ssh -X username@desktop_pc_ip

И вы можете запустить любое программное обеспечение с помощью терминала, например, запустив Firefox, просто наберите firefox в терминале.

0
ответ дан 20 October 2012 в 13:49

VirtualGL создаст дополнительный (фоновый) рабочий стол (стиль TightVNC) , к которому вы можете получить доступ через клиент Turbo VNC . Он будет функционировать как соглашение типа удаленного рабочего стола -> Но он будет воспроизводить плавное видео по сети.

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

http://www.virtualgl.org/

Вы также можете экспортировать среду рабочего стола через SSH как / dude выше.

0
ответ дан 20 October 2012 в 13:49

Подготовка

(вы делаете это только один раз)

На рабочем столе установите SSH-сервер

sudo apt-get install openssh-server

< / blockquote>

С вашего ноутбука:

ssh -X username @ desktop_pc_ip

В терминале вы получаете все, что вы запускаете, будет на вашем рабочий стол, но отображается на вашем ноутбуке. Если вы хотите сделать то же самое, сидя на рабочем столе (и отправить окна на свой ноутбук), продолжайте.

На вашем терминале вы запускаете

echo $ DISPLAY

Это покажет вам что-то вроде:

localhost:10.0

От Ваш рабочий стол:

Откройте терминал и запустите

DISPLAY=:10.0 firefox

Это должно привести к появлению окна firefox на вашем ноутбуке, но работающем на вашем рабочем столе. Убедитесь, что введенное вами число (например, 10.0) совпадает с результатом echo

.
0
ответ дан 20 October 2012 в 13:49

Да, это возможно. Я беру оба компьютера Linux с установленным xclock на локальном компьютере. Я пытаюсь запустить xclock локально и показать часы на удаленном компьютере с Linux.

reboot the remote machine
Disable firewall
Disable SELINUX
Check $DISPLAY variable value by command
echo $DISPLAY
Let say its value is :1
run command
xhost +

Now on local computer
xclock -display remote_machine_IP_address:1
0
ответ дан 20 October 2012 в 13:49

Другие вопросы по тегам:

Похожие вопросы: