Какие инструменты посоветуете для организации работы тонких клиентов на Linux?
Добрый день уважаемые!
Есть задача организовать работу нескольких разработчиков и тестеров по принципу тонкого клиента на linux. Имеется мощный арендованный сервер Dell , но в европейском ДЦ с не очень хорошим от нас до него пингом (>50 мс). В офисе интернет тоже не самый лучший, а некоторым сотрудника иногда приходится работать и через мобильный интернет. Необходимо организовать работу разработчиков (основная система linux), используя удаленный доступ к серверу. Основные задачи: работа с виртуальными машинами VirtualBox , серфинг в браузере.
Исходя из того, что вся основная работа будет вестись с виртуальными машинами, необходимости в покупке или аренде сервера с Windows Server нет, за счет этого можно серьезно сэкономить поставив Linux. Казалось бы , все просто, вариантов масса, но на практике пришлось столкнутся с массой ньюансов, которые просто ставят пока в тупик на ровном месте.
Итак, что приходит в голову? Решений по удаленному доступу к визуалке на linux масса: ssh -X, vnc, xrdp, x2go, nomachines. Опробовав каждый пришли в уныние, нормально заставить работать какой-либо из вариантов все не удалось.
Основная проблема - плавности работы , которая есть из коробки по RDP на Windows Server 2016, достигнуть ее не удалось ни на одном из способов удаленного доступа. Подразумевается, что очень большая часть работы - это серфинг по интернету. И вот простейшая задача - прокрутка даже главной страницы хабра превращается в ад и боль для глаз. Картинки отображаются рывками и от такого серфинга глаза устают уже через несколько минут.
Если в кратце подытожить, то серфинг по удаленному доступу:
Windows Server 2016 - на 5 (наблюдаются минимальные фризы) ssh -XC .. (как только не крутил настройки) - 3- , ужасно медленно и неприятно vnc (tigervnc) - 4- , плавность есть, на даже на минимальных настройках цветности приблизиться к WS не удается. x2go - 4 в целом достаточно хорошо , хотя до плавности WS опять-таки далеко даже на максимальных настройках сжатия. nomachines - 3 , удивительно, но за почти десятилетие разработки гора родила мышь. Юзабельность клиента отдельный разговор, тут на любителя (но как по мне до форка x2go далековато), а вот качество картинки дико падает с понижением качества интернета. И если у WS даже на слабом канале RDP работает достаточно уверенно без потери качества, то nomachines сыплет артефактами. И пусть прокрутка сравнительно плавная, качество пережатой картинки ужасно отстойное. Перепробовал все кодеки и настройки, результат плачевный. xrdp - 4- , просто работает, чуть тормознутей чем x2go. Да и костыль это , как для связки linux-linux.
Кроме всего, обнаружились какие-то непонятные проблемы с последним VirtualBox. vnc, xrdp - при загрузке виртуальной машины и попытке развернуть ее в любое разрешение выше 640x480 машина выключается без ошибок в логах (последняя запись о том, что мол пытаюсь установить разрешение .. )
С x2go не работает передача буффера обмена между гостевой и виртуальной машинами. Видел тикеты с описанием проблемы от 14 года, но похоже так ничего не и пофиксили.
В общем я на распутье, куда двигаться непонятно. Буду пробовать другие дистрибутивы.
А все вышеперечисленное опробовалось в связке Debian (клиент) - Debian (сервер).
Поставить сервер в офисе - не вариант из-за географической составляющей, улучшить интернет пока тоже. Самое обидное , что Windows Server 2016 работает плавно и четко прямо из коробки , в Linux , же , приходится постоянно спотыкаться обо что-то новое. Но платить лишние и немалые деньги за лицуху WS реально не хочется, т.к. ничего кроме RDP там использоваться не будет.
Посему, может кто подскажет еще какие варианты. Я люблю чистые дистрибутивы linux, но уже соглашусь и на любое специализированное решение , в т.ч. и платное, если оно будет стоить адекватных денег и работать без багов и плавно на наших каналах. Неужели нет аналога виндовому RDP в linux ?
Ну мы не против заплатить, правда не совсем понимаю при чем тут системы виртуализации. У нас железный выделенный сервер, нужно обеспечить к нему удаленный доступ с визуалкой. В качестве виртуализации используем VitualBox, под него куча наработок и менять его бы не очень хотелось.
Но несколько хуже, чем x2go и заметно хуже, чем rdp Windows Server 2016. Разница реально огромная если интернет не выделенка и работать приходится с сервером в другой стране. Плюс странные баги с VirtualBox и непонятная работа сессий.
nixts.org/doku.php?id=start
если хочется сделать совсем красиво, на компы можно даже винты не брать. apt-get install remmina - если нужен хороший рдп клиент.
Да на рабочих станциях не проблема настроить все. Мне , к слову, больше нравится xfreerdp консольный, там больше настроек, чем в ремине, работает шустрее.
Виктор Таран: remmina , если я не ошибаюсь, запускает его же (или использует код) просто в окошке и с параметрами. При правильной настройке нет совершенно ни каких проблем, постоянно работаем с ним , подключаясь к виндовым rdp. Плюс из коробки работа с многомониторными системами ...
-depth depth
Set the colour depth of the visual to provide, in bits per pixel. Must be a value between 8 and 32.
-pixelformat rgbNNN|bgrNNN
Set colour format for pixels representation. The viewer can do the conversion to any other pixel format, but it is faster if the depth and pixel format of the server is the same as the equivalent values on the viewer display.
пробовал со всеми настройками сжатия и качества, опять-таки проблема с виртуалками из VirtualBox-а , плюс опять-таки, плавность и отзывчивость ниже чем у x2go и намного ниже, чем у виндового рдп.
Да вообще работать, повторюсь, там даже банально полистать главную хабры с картинками, идет прорисовка часятми, очень неприятно. В остальном также, начать работать в виртуалке, те же проблемы. Ладно бы все свалить на канал и успокоится, но не дает покоя то, что RDP виндовый летает, вот что обидно.
Сменить virtualbox на kvm+spice, только не забыть гостям vdagent поставить и в настройках указать qxl vga.
Не знаю насчет последних версий rdp, но оно было быстрее реализации rdp из windows 7.
Например для разработчиков с Linux вообще не нужен GUI.
Есть git, который можно пушить. Docker для быстрых окружений.
По SSH можно получить ФС и работать как с родной в привычном окружении.
Загружать IDE удаленно, это вверх извращения.
Использовать VB, это в общем странная идея. Очень странная, так как он тормознутый по определению.
Используйте связку из KVM\LXC\Docker.
При очень большом желании , можно организовать доступ в графическое окружение LXC например через Space.
У RH есть готовое решение с VDI, что бы не изобретать велосипеды. У Canonicl есть похожее решение. Да они все стоят денег, но это будет работать и решать задачу. Правда надо будет посчитать, насколько это все будет дешевле , лучше чем у MS с ее Win Server.
Но я вам очень сильно советую продумать как это все у вас будет работать и как это удобнее сделать для большинства. Нужно ли разрабом граф окружение итд итп. Тем более у вас такие не очень хороший интернет.
Хотя если есть опасность, что могут прийти , тогда вопрос снимается.
И что странного в задаче. Если вы пользуетесь данными инструментами, это не значит, что ми ограничивается вся область применения Linux.
Тот же VB прекрасно работает с MS . Я пробрасывал RDP внутрь контейнеров, работало это идеально при пинге > 60ms .
От винды хотелось уйти не по финансовым соображениям.
KVM\LXC\Docker - Как раз добиться хотя бы минимальной плавности работы не удавалось.
x2go вообще хочется забыть как страшный сон. Может сейчас что-то изменилось, на когда я его пытался использовать, ничего кроме мук это не принесло.
Ajex, Странно именно то, что мы микроскопом забиваем гвозди. Зачем ? Что бы что ?
Если вам нужно из разных мест, единый инструмент это одна задача, но как по мне (а я тут в общем сильный сторонник linux) в плане GUI, а точнее в плане реализаций UI их,обнять и плакать. Да и каждый программист любит не что-то шаблонное, а немного под себя.
В итоге сделать конечно можно, это организовать vpn сервер на сервере и уже дать доступ xorg тому кому надо. Можно и раб стол целиком или отдельное окно программы.
Как вариант использовать spice.