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

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

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

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

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

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

P.S. Запуск XFCE 4.10 на Ubuntu 12.10

Вариант A - Перенос X окон на другой ДИСПЛЕЙ:

  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-display доступным для настольного компьютера. X11 использует механизм аутентификации для предоставления доступа к дисплею. Вы должны разрешить настольному компьютеру снимать Windows на ноутбук. Обычно путем обмена отображаемым файлом cookie.

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

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

    Правильно и безопасно: запустите xauth extract cookie-file :0 на вашем ноутбуке, чтобы экспортировать ваш секрет доступа к дисплею в "cookie-файл". Перенесите файл cookie на свой настольный компьютер. Бежать 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) в локальный сокет TCP на удаленной машине, затем согласовывая отображаемый файл cookie, а затем настраивая среду отображения на удаленной машине. Таким образом, весь трафик 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. Как это сделать, зависит от вашего дисплейного менеджера. Некоторые дисплейные менеджеры вообще не поддерживают это, например, slim. XDM, KDM, WDM, GDM поддерживают его.

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

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

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

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

sudo apt-get install ssh

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

ssh -X username@desktop_pc_ip

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

Подготовка

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

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

sudo apt-get устанавливает openssh-сервер


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

имя пользователя ssh -X@desktop_pc_ip

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

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

отображение echo $

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

localhost:10.0

С вашего рабочего стола:

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

DISPLAY=:10.0 firefox

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

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

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

sudo apt-получить экран установки

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

экран

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

браузер Firefox

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

ssh -X имя пользователя@имя хоста

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

экран -ls

Войдите в свой экранный сеанс (1234 - это номер, который вам дал screen -ls)

экран -x 1234

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

Virtualgl создаст дополнительный (фоновый) рабочий стол (Стиль TightVNC) к которому вы можете получить доступ через клиент turbo VNC>. Он будет функционировать как сделка типа удаленного рабочего стола, но это будет воспроизведение плавного видео по сети.

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

http://www.virtualgl.org/

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

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

reboot the remote machineDisable firewallDisable SELINUXCheck $DISPLAY variable value by commandecho $DISPLAYLet say its value is :1run commandxhost +Now on local computerxclock -display remote_machine_IP_address:1

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

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

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