Я не розумію чому, але факт залишається фактом і питань створення термінального сервера для віддаленого запуску графічних додатків в Linux приділяється дуже мало уваги.
Можу припустити, що це швидше за все пов'язано з відсутністю великовагових додатків на зразок 1С які потрібно запускати локально на сервері з наданням віддаленого доступу (хоча зараз вже є нативна Linux-реалізація платформи 1С підприємство), але швидше за все причина більш банальна, а саме, в Windows віддалений доступ до графічної консолі використовується для адміністрування серверів і робочих станцій, а в Linux і Unix для цих же цілей використовується віддалений консольний доступ за допомогою SSH.
Зараз, в адмініструванні Windows, тільки набирає обертів використання PowerShell. та й чесно кажучи я бачив не так багато адміністраторів які ознайомилися з основами PowerShell, а повноцінно використовують і розробляють скрипти автоматизації взагалі одиниці.
Зараз ви прослухали невеликий ліричний відступ на тему чому все так погано, а зараз ми розглянемо віддалений запуск графічних додатків в Linux і перевіримо чи реально взагалі створити з Ubuntu Linux термінальний сервер.
У Linux графічна підсистема спочатку була спроектована таким чином, що додаток використовує віддалений графічний X-сервер, але в реальній практиці більшість про це просто не здогадуються, так як додаток і X-сервер розташовані на одному комп'ютері, але ніхто не забороняє вам запустити додаток вказавши для відтворення віддалений X-сервер.
Найпростіше це зробити додавши до команди підключення по ssh параметр -X:
$ Ssh -X [email protected]
Тепер ви можете запустити віддалений додаток і як X-сервера для відтворення графіки буде використовуватися ваш локальний X-сервер. Ось здавалося б на цьому можна і закінчити, але така техніка працювала дуже давно і останнім часом Xorg отримав можливості 3D і 2D прискорення і робота X-сервера тепер вже не зводиться до банального малювання графічних примітивів.
Якщо у вас і вийде запустити повноцінне графічне додаток на зразок інтернет-браузера з запущеним на ньому YouTube. то для повноцінної передачі даних для відтворення графіки вам знадобиться як мінімум гігабітний канал, та й звичайна програма на зразок OpenOffice Writer здивує вас вимогливістю до мережевої підсистеми, так як текст тепер передається не у вигляді параметрів відтворення шрифту, а у вигляді растра.
Як ви напевно зрозуміли, це не найефективніший метод запуску віддалених графічних додатків в Linux і звичайно є й інші, більш ефективні методи.
У Windows на відміну від Linux при термінальному доступі передаються не графічні примітиви а зображення, точніше змінилися частини робочого столу або додатки в разі використання RemoteAPP. Цей метод відмінно себе зарекомендував і в процесі розвитку протоколу RDP механізми кешування і стиснення переданого зображення постійно поліпшувалися.
Повернемося до реалізації термінального сервера в Linux. Як ви напевно зрозуміли, порожній ця ніша не залишилася і був розроблений механізм проксінг, кешування і стиснення переданих даних.
Спочатку цим питанням займалася компанія NoMachine. але ці хлопці пропонують комерційне рішення з підтримкою і вартість їх продуктів зовсім не маленька і нам відповідно не підходить. У світі OpenSource це звичайна справа. Варіантів завжди два безкоштовний і комерційний, перший треба колупати і допілівать, а другий ось вам готовий і з підтримкою.
Ми будемо розглядати перший варіант який не буде коштувати нам ні копійки. Він до речі сказати побудований на тих же технологіях, що і комерційний, але періодично доставляє багато головного болю.
Збірка x2go клієнта або сервера це велика пригода у мене наприклад пішло близько місяця що б його зібрати і запустити.
В Ubuntu Linux є репозиторій містить вже зібрані пакети і ви можете просто виконати кілька команд для установки клієнта або сервера. Вони не дуже свіжі і судячи з активності в GIT проект досить активно допрацьовується.
Установка серверної частини:
# Apt-add-repository ppa: x2go / stable
# Apt-get update
# Apt-get install x2goserver x2goserver-xsession
Установка клієнтської частини:
# Apt-add-repository ppa: x2go / stable
# Apt-get update
# Apt-get install x2goclient
Так як ця замітка більше оглядова і більш детально настройка буде розглядатися в наступних частинах, ми проведемо завмер навантаження на мережеву підсистему при використанні x2go і заодно продемонструємо як користуватися x2go-клієнтом.
Створити нове підключення проблем не становить, до ваших послуг зручний графічний додаток:
Як ви бачите навантаження на канал набагато менше, але є артефакти і ривки при прокручуванні. Версія з GIT-репозитария поводиться набагато краще, але так само не позбавлена ряду недоліків.
Надалі ми обов'язково розглянемо питання побудови термінального сервера Linux докладніше, але на сьогодні ми закінчимо і повернемося до цього питання коли будемо працювати над проектом по впровадженню x2go.