Как экспортировать DISPLAY из терминала Linux на ПК с Windows?

Вопрос или проблема

Экспортировать дисплей из Linux-терминала на Linux-десктоп легко; выполните следующее:

На 192.168.90.121 (localPC):

xhost + 192.168.10.164

На 192.168.10.164 (remotePC):

export DISPLAY=192.168.90.121:0.0 <br/>
firefox

Окно Firefox появляется на моем localPC. В приведенном выше случае оба компьютера работают на Linux.

Могу ли я аналогично экспортировать дисплей с Linux на компьютер с Windows? В приведенном выше примере localPC будет Windows, а remotePC — Linux.

Да, можете, если установите X сервер на свой компьютер с Windows. Существует несколько коммерческих вариантов (я некоторое время назад использовал Starnet X-Win32), а также пара открытых решений, например, Cygwin/X и XMing. Это не так просто, как Linux на Linux (или другой Unix-подобной системе, которая нативно использует X11), но результат вполне приемлемый и удобный.

Используйте Cygwin. Я использую Ubuntu в Docker-контейнере, но это будет работать и без контейнеризированной Ubuntu, то есть на полноценном Ubuntu-машине в той же локальной сети, что и машина с Windows.

Просто игнорируйте термин IP контейнера. IP хоста контейнера == IP машины Ubuntu.

IP хоста контейнера Ubuntu 192.168.1.20
Удаленная машина с Windows в той же локальной сети IP 192.168.1.4

В ssh контейнере Ubuntu: sudo vim /etc/ssh/sshd_config:

X11UseLocalhost no

перезапустите ssh-сервер на Ubuntu

На удаленной машине с Windows, на которой запущен Cygwin X сервер:

  1. Откройте Cygwin bash

  2. cd /cygdrive

  3. В bash startx -- -listen tcp &

  4. export DISPLAY=192.168.1.4:0.0

  5. xhost + 192.168.1.20

  6. На X term, который запущен командой в шаге 3, выполните то же самое, что и в шагах 4 и 5

  7. На xterm ssh -Y

  8. Можно также использовать PuTTY. IP адрес хоста docker 192.168.1.20 и ssh порт 22

  9. Включите перенаправление порта SSH —> X11, отметьте галочку для включения перенаправления порта. В той же вкладке используйте местоположение Display для удаленной машины с Windows 192.168.1.4:0.0, на которой удаленный контейнер Ubuntu будет отображать свое изображение

  10. Нажмите подключиться, введите учетные данные и запустите X11-GUI, например, xeyes

  11. На удаленной машине с Windows на 192.168.1.4:0.0 появятся два глаза, не используя дисплей Linux.

  12. Таким образом, нет необходимости устанавливать отдельный полноценный X11 сервер на Ubuntu, оставляя контейнер легким

  13. О да, для xeyes вам нужно установить некоторые x-11 GUI приложения, sudo apt-get install x11-apps.

  14. Убедитесь, что вы вводите xeyes &, чтобы не блокировать оболочку.

  15. На Xterm вы можете сделать то же самое, что и в PuTTY. ssh -Y [email protected]. Флаг -Y необходим для доверенного перенаправления порта. После входа в систему введите xeyes &.

.

Ответ или решение

Экспорт отображения из терминала Linux на Windows ПК может быть сложной задачей, но с помощью установки X-сервера на Windows эту задачу можно успешно решить. Для начала необходимо понять, как работает система X11, которая отвечает за графический интерфейс в UNIX-подобных операционных системах, таких как Linux. X11 позволяет приложениям с графическим интерфейсом взаимодействовать с пользовательским дисплеем, и этот функционал можно перенаправить на удалённый ПК, что и является целью нашего задания.

Теория

X11 – это компонент в архитектуре UNIX-подобных систем, который предоставляет основу для графического интерфейса. Она составляет базу для запуска оконных менеджеров и графических оболочек. В случае экспорта отображения с одного компьютера на другой, X11 позволяет перенаправлять графический поток через сеть. Это особенно полезно, когда сервер и клиент находятся на разных физических машинах, и требуется отобразить графический интерфейс на клиентской стороне.

Чтобы перенаправить дисплей с Linux на Windows, ваш Windows компьютер должен иметь X-сервер, который может принимать графические команды и преобразовывать их в графический вывод на локальной машине. В Linux дисплей может быть передан удалённо через X11 протокол, и это осуществляется путём назначения переменной окружения DISPLAY соответствующего IP адреса с номером дисплея машины, на которую производится экспорт.

Пример

Для экспорта отображения с Ubuntu или другой Linux системы на Windows, вам потребуется установить X-сервер на Windows. Существует множество X-серверов, таких как:

  1. Cygwin/X – это бесплатное и open-source программное обеспечение, которое позволяет запускать X-сервер на Windows. Оно предоставляет виртуальную Unix среду на платформе Windows, что делает его отличным выбором для данного приложения.

  2. Xming – это ещё один популярный X-сервер для Windows, который лёгок в установке и использовании. Он обладает базовыми функциями X-сервера и хорошо подходит для большинства пользователей.

  3. Starnet X-Win32 – это коммерческий продукт, который предлагает дополнительные функции и поддержку, что делает его подходящим для предприятий, где необходимы дополнительные возможности и техническая поддержка.

После установки X-сервера на Windows, он сможет получать графические данные с удалённой Linux машины, так как в Linux выполняется настройка перенаправления дисплея.

  1. Установите X-сервер на Windows, например, Cygwin/X:

    • Загрузите и установите Cygwin, в процессе убедитесь, что выбраны компоненты для X11.
    • После установки запустите Cygwin, и внутри открытого окна введите команду startxwin.exe или startx, чтобы запустить X-сервер.
  2. На Linux машине убедитесь, что SSH сервер настроен для перенаправления X11. Отредактируйте файл /etc/ssh/sshd_config, чтобы установить X11Forwarding yes и X11UseLocalhost no. Затем перезапустите SSH сервис командой sudo systemctl restart sshd.

  3. На Windows в окне Cygwin введите команду для запуска графического интерфейса X11:

    startx -- -listen tcp &

    Это включит возможность принять входящие соединения для X-сервера.

  4. С Windows машины используйте SSH клиент, например PuTTY, чтобы подключиться к Linux машине. В настройках SSH выберите "Connection" -> "SSH" -> "X11" и включите "Enable X11 forwarding". Укажите X display location как localhost:0.

  5. Завершите подключение, введя адрес и логин для Linux машины.

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

    xeyes &

    Приложение откроется на Windows экран.

Применение

Экспорт дисплея с Linux на Windows полезен в случае, когда важно работать с графическими интерфейсами на удалённых машинах без необходимости физически находиться рядом с ними. Это особенно актуально для системных администраторов и разработчиков, которым необходимо взаимодействовать с серверным окружением непременно через графический интерфейс. Таким образом, сконфигурированный X-сервер на Windows значительно упрощает данную задачу, предоставляя доступ к удалённым графическим средам без значительных усилий и потерь времени.

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

Эта методология позволяет пользователям эффективно взаимодействовать с удалёнными графическими приложениями на Linux, работая с Windows интерфейсом, тем самым расширяя возможности использования рабочего окружения и продуктивности сотрудников.

Оцените материал
Добавить комментарий

Капча загружается...