XServer, удаленная рабочая станция Debian [закрыто]

Я хочу создать автономную рабочую станцию ​​под управлением Debian Linux. Я бы хотел запустить XServer на другом компьютере. Подумайте о тонком клиенте, хотя машина с «тонким клиентом» на самом деле довольно мощная. В максимально возможной степени я хочу, чтобы машина с тонким клиентом чувствовала , как будто я все делаю локально, при этом фактически сохраняя все файлы (кроме конфигурации, кеша и, возможно, закрытых ключей ssh, я полагаю) на удаленная рабочая станция и выполнение всей обработки ЦП на удаленной рабочей станции. Два компьютера подключены к локальной сети.

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

Как мне этого добиться? VNC на самом деле не подходит, поскольку он требует (или, кажется, требует). Я вхожу в систему локально, на рабочей станции, а затем просто удаленно повторяю рабочий стол. Я мог бы использовать ssh, но для этого требуется, чтобы я запускал полную среду рабочего стола на машине с тонким клиентом, но мне действительно нужно как можно меньше.

Мне не нужно держаться за руки, я просто не знаю, какие у меня есть варианты. Очевидно, это возможно, мы делали это еще в начале 90-х, просто не знаю как. Тонкий клиент имеет много места на жестком диске, много мощности процессора и 32 ГБ оперативной памяти, просто рабочая станция более мощная. И лучше контролируется.Но сидит в шкафу без монитора.

0
задан 12 June 2017 в 00:25
3 ответа

На клиенту вам понадобится достаточно ОС для загрузки, загрузки библиотек, управления локальным видео / клавиатурой / мышью и запуска X-сервера. На удаленном безголовом устройстве выполните обычную установку того, что вы хотите, и настройте на нем средство приветствия (gdm, kdm, mdm, xdm - типичные варианты, в зависимости от среды рабочего стола и т. Д.), Чтобы разрешить запросы через протокол XDMCP. Как только это будет сделано, на вашем локальном клиенте запустите X-сервер и попросите его запросить приветствующего на удаленном хосте. Приложения запускаются с удаленного хоста, взаимодействие с пользователем происходит на локальном клиенте.

Вы даже можете запустить полную ОС на своем локальном компьютере, а когда вам нужно что-то с удаленного компьютера, вы можете использовать Xnest для вложения второй X-сервер внутри вашего текущего, запросите удаленный хост и запустите второй рабочий стол как приложение, так же, как работает VNC.

1
ответ дан 4 December 2019 в 13:32

Включить автоматический вход на тонком клиенте. Установите запускаемое приложение на рабочий стол тонкого клиента для выбранных вами программ удаленного входа. Рассмотрим RDP, который также легко подключается к любым серверам Windows, которые у вас могут быть.

Тонкому клиенту потребуется достаточно графического интерфейса для запуска X-сервера или его эквивалента. Существуют специализированные, легкие дистрибутивы корневых тонких клиентов только для чтения, такие как LTSP. Или просто ssh -X и запускайте удаленные программы ad-hoc.

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

0
ответ дан 4 December 2019 в 13:32

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

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

Тем не менее, я обращусь к этому, коснувшись поверхности некоторых моментов, которые вы должны четко иметь в виду, приближаясь к удалению приложений в системах Unix / Linux / XWindows:

  1. " X Оконная система "лежит в основе почти каждого приложения Linux, которое показывает какой-то графический интерфейс. Приглашая вас проверить подробности самостоятельно (существует более чем 30-летняя история, которую вы можете найти), я хочу подчеркнуть очень важный момент: по замыслу X11 был спроектирован таким образом, чтобы каждое отдельное приложение могло запускаться на хосте и одновременно отрендерил (что касается GUI) на совершенно другом хосте . Это без каких-либо явных усилий со стороны программиста.

    Это радикально отличается от того, к чему люди привыкли на платформе Win32, где только добавление явного уровня (RDP и соответствующие службы терминалов) обеспечивают аналогичное поведение, начиная с несколько десятилетий назад (но наверняка отсутствовали в Win 3.XX, Windows 95, Windows 98, Windows NT и, вероятно, в некоторых более поздних системах. Не говоря уже о проблемах с лицензированием ...)

    Так что это означает - в целом - - что в начале 90-х вы могли сидеть перед X-Terminal и отображать приложение, которое вы запускали на другом сервере. Точно развязка, которую вы указываете в своем OP.

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

Is этого достаточно? К сожалению, нет .... Позвольте мне объяснить, почему:

  1. " удаленное приложение " vs. " удаленный рабочий стол ": иногда этого было бы достаточно, чтобы иметь на моем рабочем столе (я ' m, имея в виду графические материалы, которые отображаются на мониторе моего ноутбука, где я запускаю полный рабочий стол Ubuntu) графический интерфейс приложения, которое выполняется где-то еще. Например, у меня обычный рабочий стол, но ... окно «firefox» связано с «firefox», запущенным на другом компьютере. В таком случае я обращаюсь к удаленному приложению в среде моего рабочего стола .

    В других случаях я бы предпочел, чтобы удаленная система отображала весь рабочий стол, а не отдельный Приложения. Следовательно, удаленная система должна решить немного больше проблем, так как ... есть также какое-то "специальное" окно (то, которое покрывает весь монитор и более или менее не имеет границ) для рендеринга, и, в первую очередь, рендеринга весь набор настольных приложений (строка меню, строка состояния и т. д. и т. д.). В таком случае я получаю доступ ко всему удаленному рабочему столу .

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

Это все? Еще нет ... к сожалению.

  1. « транспорт »: очевидно, что разделение логики приложения (работающего на сервере) от графического интерфейса пользователя (отображение на удаленном дисплее) подразумевает необходимость в надежный сетевой канал связи. Когда разрабатывался X11, я, наверное, еще не родился (кстати: мне 46!). Интернета не было. И не было понятия «риски, связанные с сетью». Таким образом, в протоколе X11 не было абсолютно НИКАКОЙ точки безопасности. Таким образом, если вы сидите перед X-терминалом с IP abcd , вы можете просто telnet efgh и оттуда запустить что-то вроде:

xclock --display abcd: 0.0

, и внезапно появилось окно xclock. В то время, если бы ваш друг сидел на терминале yzxw , и вы дали бы ему оболочку root на efgh , вы (из abcd ), может быть просто:

telnet e.f.g.h
su -
xterm --display y.z.x.w:0.0 &

и вдруг у вашего друга появилось окно xterm с правами root и без ввода пароля!

Имейте в виду, что мы говорим о временном интервале, когда системы Win32 работали не существует. В лучшем случае это было время Windows 3.11.

Теперь перенесемся на 20 лет вперед. Пришел Интернет. Проблемы с безопасностью. И внезапно многие люди обнаружили, что легко захватить «видео», «мышь» и «клавиатуру» в незашифрованном сеансе X11.

Было реализовано несколько решений (многие из которых все еще неясны / неизвестны мне), но безусловно, лучший из них - SSH-X11-Forwarding . Благодаря этому, даже сейчас, в 2017 году, каждый божий день, когда я сажусь за свой стол на работе, я:

  • кладу ноутбук на док-станцию ​​и включаю его (в углу стола);
  • войдите в систему на моем настольном компьютере (левый включен, дисплей / сеанс "заблокирован"), подключенный к двум большим 27-дюймовым дисплеям;
  • с моего рабочего стола, ssh к моему ноутбуку с ssh -X (скрыть) получившийся терминал, запустить thunderbird & ;

Итак, у меня есть мой thunderbird, установленный и работающий на ноутбуке (со всеми соответствующими архивами), и отображается на гораздо большем удобные дисплеи 2 x 27 дюймов.

Это ... несмотря на то, что с момента появления X11 прошло более 30 лет ... и без необходимости в каких-либо формах лицензирования !

Это все? Еще нет: -)

  1. X.client vs. X-Server : думая о том, что я делаю каждый день с моим thunderbird, вы должны увидеть, что:

    • thunderbird - это X-клиент , работающий на моем ноутбуке, где никто не сидит впереди;
    • мой настольный ПК с Linux - это X-сервер , принимающий X11-поток от клиента и его рендеринг на локальном дисплее.

    Похоже, что роли клиента и сервера поменялись местами. Именно это происходит с тем, что вы называете «Тонким клиентом»: они НЕ клиенты с сетевой точки зрения: они являются «сервером». Вот почему для отображения удаленного приложения X11 на вашем устройстве вам нужен X-сервер, работающий на нем: потому что вам нужен X-сервер, способный понимать поток X11, поступающий из сети (... от клиента ) и правильно визуализируем полученный дисплей.

    В предыдущих ответах вам рассказывали о Xnest , и на самом деле я бы добавил Xephyr : это:

    • стандартные приложения X11 , с точки зрения локального XServer. Как таковые, они типично визуализируются «локально» на локальном дисплее;

    • они являются X-серверами в том смысле, что они могут получать поток X11 от удаленного приложения (типичного, полностью удаленного рабочего стола). , и визуализировать его ВНУТРИ в одном окне.

В общем, ничто не мешает вам использовать уже установленный XServer на вашем компьютере без необходимости использования Xephyr или Xnest. Другими словами, вы можете захотеть использовать свой XServer, установленный на вашем собственном Linux-хосте, для подключения к удаленному хосту с просьбой получить весь поток X11-desktop-stream. В общем, это так же просто, как:

  • выйти из X11, вернуться в текстовый интерфейс командной строки (без GUI);
  • просто запустить что-то вроде: X -запрос abcd

где abcd - это IP-адрес хоста, на котором протокол XDMCP был настроен и включен (более или менее).

Гуру на этом сайте скажут, что я слишком упрощаюсь .... и они правы! Поэтому, пожалуйста, используйте описанный выше подход ( X-запрос ) только как точку для дальнейшего исследования.

Мы закончили? Да ... но не раньше, чем добавить пару других быстрых замечаний:

  1. Эффективность протокола : X11, разработанный более 30 лет назад, определенно неработающий протокол: у вас будет МНОГО проблем с используя его с пропускной способностью ниже 100 Мбит / с (кстати: в моем офисе у меня гигабитное соединение между моим ноутбуком и моим настольным компьютером). YMMW, но, пожалуйста, имейте это в виду, когда будете экспериментировать (окно xclock может появиться даже через 30 секунд, когда вы запустите его на удаленном VPS). У меня нет проблем с тем, чтобы признать, что протокол RDP от Microsoft, появившийся много лет спустя, намного более дружественен к пропускной способности. С этой точки зрения RDP действительно превосходит X11;

  2. Для решения пункта 5 в нескольких проектах было приложено много усилий. Основные из них - IMHO - это NX и связанный с ним FreeNX (который на самом деле кажется мертвым проектом, к сожалению);

  3. На мой взгляд, в настоящее время (2017 г.), пытаются добиться удаленности всего рабочего стола (без Xnest или, лучше, Xephyr) намного сложнее, чем раньше ... и определенно намного сложнее, чем удаленное управление только теми приложениями, которые вам нужны. Это связано с тем, что текущая среда рабочего стола развивалась на таком более высоком уровне, что ... у них есть много проблем с "приспособлением" к удаленному дисплею X11 (подумайте об удивительной анимации, которую вы можете получить с compiz ] -подобные технологии и соответствующие требования для приличного удаленного рендеринга. Это в дополнение к проблемам безопасности, вызванным внутренними уязвимостями протокола X11).

Вот и все.

Я действительно знаю, что абсолютно НЕ ответил Ваши вопросы: Я только надеюсь, что дал вам действительно хорошее представление об этом чудесном мире X11 ... вы будете счастливы открыть для себя сами: -)

1
ответ дан 4 December 2019 в 13:32

Теги

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