LinuxForum.Fans
Тема

X11, VNC, ...

Автор: yurart 4 сообщений 4265 просмотров
#29854

Исследовал тему терминальных серверов под Линукс.
Имея определенные требования, попытался выяснить, какое ПО сможет удовлетворить мои потребности:
1. монтирование usb-flsah на сервере при подключении их к терминальному клиенту;
2. передача звука от терминального сервера клиенту, запустившему, например, mp3-файл;
3. работа должна производиться с полным рабочим столом под учётной записью пользователей, заведенных на сервере терминалов;
4. доступность печати с принтера, подключенного к терминалу;
5. открытый исходный код;
6. серверная часть должна быть линуксовой, как и клиентская;
7. клиент должен стартовать из уже запущенной операционки, т.е. по сути являться приложением.

Не всё из перечисленного обязательно должно присутствовать. Но чем больше пунктов, тем лучше.

Начал поиски с исследования протоколов, по которым работают терминальные системы.
Это:
X11
Telnet
SSH
NxNoMachine
VNC
Citrix ICA
RDP

Telnet и SSH - уже не удовлетворяют требованиям из-за исключительно текстового режима,
ICA из-за платности.
NxNoMachine - только частично открыт или я ошибаюсь?
RDP - виндовый протокол, поэтому тоже не устраивает.

Остается только X11 и VNC.

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


Приложения для реализации терминальных серверов.

X11

Если я не ошибаюсь LTSP поддерживает и монтирование usb-flash, и звук, и печать и работает, вроде, даже через X11, однако, он использует загрузку по сети и подключиться к нему из какой-либо программы-клиента невозможно. Если я не прав, прошу меня поправить.

VNC

На настоящий момент в глаза кинулись три наиболее часто встречающихся сервера (может быть есть еще?):
TightVNC,
RealVNC,
ultraVNC,
но ни передачи звука, ни монтирования usb-flash, ни печати там нет.

Есть ли какие-нибудь мысли по поводу, каким ПО можно реализовать хотя бы часть из описанных выше требований?
Пожалуй, самым важным будет монтирование usb-flash.

#30068
yurart написал:
X11

Если я не ошибаюсь LTSP поддерживает и монтирование usb-flash, и звук, и печать и работает, вроде, даже через X11, однако, он использует загрузку по сети и подключиться к нему из какой-либо программы-клиента невозможно. Если я не прав, прошу меня поправить.

Не уверен, но полагаю, что неправ. X11 в настоящее время суть базовый протокол юниксового GUI. И если надо иметь многопользовательский доступ в графическом режиме к юниксовому хосту, то надо, скорее всего, использовать именно X11. И "программы-клиенты" для этого дела есть. Прежде всего это тот же самый юникс у юзера. Юзер из своего "GUI" делает команду ssh -X username@remotehost, вводит свой пароль на ремутном хосту и потом элементарно дает в консоли ssh нужную команду, запускает нужную X11-программу. Эта программа будет исполняться на ремутном хосту, но отображаться будет на юзерской рабочей станции. Отображаться так, будто она работает именно на юзерской рабочей станции (но с ресурсами ремутного хоста). Если надо получить ремутный рабочий стол в полном объеме - тоже нет проблем, запускаем, например, Xnest, в него запускаем xterm, в этом xterm'e - ssh -X username@remotehost, а далее то, что надо, хоть gnome-session, хоть что иное. И это будет отображаться в окне Xnest'а. То есть мы будем иметь полноценную графическую консоль удаленного хоста на своей рабочей станции.

Недостаток X11 один. Очень прожорлив до сетевых ресурсов. На медленной сети тормозит сильно. А достоинство - каждый юзер работает под своим именем. То есть персонально. Что отвечает требованиям определения "терминальный сервер". И отвечает полностью твоему требованию за номером 3.

yurart написал:
VNC

VNC и иже с ними не являются по определению терминальными "серверами". Они просто транслируют удаленному юзеру состояние рабочего стола своего хоста. И в результате все юзера видят одно и то же. Этот протокол хорош тем, что до сетевых ресуросов нетребователен, на медленной сети (по сравнению с Х11) просто летает, но применять его может только администратор _монопольно_ для целей администрирования хоста. Типа офтопичного radmin'а. А это не отвечает требованию №3 ни разу.

По требованию №1. Указанные продукты не обучены монтировать на сервере какие либо девайсы, которые подключаются к юзеской рабочей станции. Но что мешает юзеру сделать общий сетевой доступ на этот девайс, а на сервере примонтировать этот девайс в файловую систему сервера?
Про звук ничего не скажу. Мне это неактуально совершенно.
Про печать - CUPS тебе в руки. Это (печать, как и монтирование ремутных девайсов) к терминальным серверам не имеет отношения. И решается стандартными юниксовыми протоколами.
Требования 6 и 7 - юникс сам себе и X11-сервер, и X11-клиент. И ничего дополнительного не требуется.
Требование 5 - бери linux и будет тебе море открытого исходного кода.

Таким образом все твои требования легко реализуются стандартными или почти стандартными юниксовыми протоколами - X11, CUPS, NFS. Но поимеешь проблему с пропускной способностью сети. В локалке не заметишь, а вот с доступом через Инет.... Надо иметь хотя бы мегабит гарантированный на отдачу. Лучше больше.

#30120

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

Например, на nfs-сервере втыкаем флешку, автоматически создается каталог /mnt/sdc1/, в который флешка монтируется.
Вопрос , может ли nfs-клиент автоматически определить, что на nfs-сервере появился каталог /mnt/sdc1/ и так же автоматически его подмонтировать?

Может, хоть кто-то в курсе, как это сделать?

#33608

yurart, use autofs

Войдите или зарегистрируйтесь, чтобы ответить.