Технология NX - NX technology

Технология NX
изначальный выпуск2003
Стабильный выпуск
6.12.3 / 30 сентября 2020; 57 дней назад (2020-09-30)
Размер28 МБ
ТипУдаленный рабочий стол программного обеспечения
ЛицензияБесплатное ПО
Интернет сайтwww.nomachine.com

Фон

Технология NX, широко известный как NX или NoMachine, это проприетарное программное приложение для удаленного доступа, совместного использования рабочего стола, виртуального рабочего стола (только в Linux) и передачи файлов между компьютерами. Он разработан люксембургской компанией NoMachine.[1]

Дизайн NX был заимствован из проекта компрессора протокола Differential X (DXPC). В 2003 году был создан протокол сжатия и транспорта NX для повышения производительности собственного протокола отображения X, чтобы его можно было использовать в медленных соединениях, таких как модемы удаленного доступа. Он обернул удаленные подключения в SSH сеансы для шифрования. Технология сжатия ядра была выпущена под лицензией GNU. GPL2 лицензия (NX 1) для серверов Linux, в то время как другие компоненты, такие как NX Server и программы NX Client, оставались проприетарными, 14 февраля 2003 года. Последнее обновление этой версии с открытым исходным кодом было выпущено в 2012 году.

В 2010 году компания решила закрыть источник, и была принята проприетарная лицензия.[2]

В 2013 году версия 4.0 была выпущена для широкой публики под лицензией с закрытым исходным кодом и впервые предоставила нативную версию для серверов Windows и Mac.[3] В 2013 году программное обеспечение NX стало программным обеспечением NoMachine.

Функции

NoMachine NX можно установить на серверах ARM под Windows, Mac, Linux и Linux для доступа к физическому дисплею. Клиентское программное обеспечение доступно для Windows, Mac OS X, iOS, Android, Linux, Linux ARM и HTML / JavaScript. Его продукты Linux также предлагают возможность запускать несколько виртуальных экземпляров Linux на одном компьютере (функциональность Linux Terminal Server). Другие функции включают перенаправление USB, запись сеанса, передачу файлов, мультимедийные возможности и доступ через браузер. Продукты более высокого уровня включают в себя кластеризацию с несколькими вычислительными узлами и возможности аварийного переключения.

NX использует VirtualGL запустить элитный OpenGL приложения на основе X и программы 3D CAD.

NX 4 и более поздние версии

В NX 4 реализовано оптимальное сжатие и кэширование изображений с использованием новейших технологий кодирования видео.

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

При соединении хостов по сети протокол NX работает как общий туннель с дополнительной информацией о кадрировании и управлении потоком, а также динамически адаптирует сжатие и пропускную способность в соответствии со скоростью и пропускной способностью сети. Для совместимости мультиплексирование основано на версии 3.

В NX 4 добавлены новые типы каналов для обработки таких сервисов, как перенаправление новой файловой системы, новая система печати, виртуальные сетевые интерфейсы, смарт-карты и USB-устройства. Большинство компонентов NoMachine, включая программу агента, олицетворяющую сеанс рабочего стола на сервере, включают так называемые «подчиненные серверы» - легковесные серверы, обеспечивающие межпроцессный обмен данными и автоматизацию, которые можно использовать для создания дополнительных каналов под управлением клиент и сервер.

Приложения по-прежнему могут запрашивать передачу данных по каналам, используя сжатие протокола NX X Window System. В версии 4 добавлены новые типы каналов для видео и аудио, что позволяет использовать несколько кодеков в одном потоке. В настоящее время каналы отображения (видео) могут обрабатывать данные в H.264, VP8, MJPEG и других форматах с дополнительными примитивами, используемыми для реализации специальных операций кодирования одновременно со стандартными аудио- и видеопотоками.

После установления сеанса между клиентом и сервером данные NX могут перемещаться по потокам TCP и UDP. Клиент и сервер динамически выбирают, какой транспорт использовать, в зависимости от типа данных и состояния сети. Если связь через UDP разрешена, клиент и сервер могут автоматически дать команду маршрутизатору открыть необходимые порты. UDP использует симметричное шифрование Blowfish. Интерфейс и порт хоста, а также ключ шифрования Blowfish согласовываются через безопасный канал TCP. Связь UDP отключена при использовании туннелирования SSH, поэтому все данные используют одну и ту же ссылку SSH.

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

Аутентификация

Начиная с версии 4.0, когда используется протокол NX по умолчанию, вход в систему может осуществляться через аутентификацию на основе пароля, закрытый ключ или Kerberos проверка подлинности билета.

Когда NX настроен на отправку данных SSH (доступно только на серверах корпоративной версии) доступны следующие методы аутентификации:

Клиент на сервер

  • Вход в NX как пользователь NX с использованием ключа NX SSH и аутентификации на основе пароля пользователя
  • Вход в систему с аутентификацией на основе пароля
  • Вход в систему с аутентификацией на основе ключа SSH
  • Вход в систему с аутентификацией на основе ключа SSH и ключ SSH, хранящийся на смарт-карте
  • Вход в систему с билетом Kerberos, существующим на стороне клиента

От сервера к узлу

  • Войти с паролем
  • Вход в систему с ключом SSH, перенаправленным от клиента (например, NoMachine Player) через сервер на узел
  • Вход с билетом Kerberos, перенаправленным от клиента через сервер на узел
  • Вход с билетом Kerberos, запрошенным Kinit на хосте сервера
  • Войдите в систему с билетом Kerberos, запрошенным модулем PAM на хосте сервера.
  • Войдите с паролем в билет Kerberos, запрошенный модулем PAM на узле

Унаследованная технология

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

NX быстрее, чем его предшественники, поскольку он устраняет большую часть X круглые поездки, а dxpc и MLView только сжимают данные.

Двумя основными компонентами NX являются nxproxy и nxagent. nxproxy получен из dxpc и запускается как на удаленных (клиент в терминологии X), так и на локальных (сервер в терминологии X) машинах, имитируя X-сервер на клиенте и перенаправляя удаленные запросы протокола X на локальный X-сервер.

Простейшая настройка:[4]

удаленные клиенты (xterm и т. д.) ↕ клиент nxproxy ↕ сеть ↕ сервер nxproxy ↕ локальный X-сервер (монитор / клавиатура)

nxproxy только обеспечивает степень сжатия от 1:10 до 1: 1000[5], уменьшая полосу пропускания, но не устраняя большую часть синхронных циклов передачи данных X, ответственных за большую часть воспринимаемой задержки X.

nxagent, полученный из Xnest (аналогично Ксефир ), обычно запускается на удаленном (клиентском) компьютере, что позволяет избежать большинства циклов обработки протокола X11. Вместе с nxproxy (встроенным в nxagent) эта установка хорошо работает в каналах с низкой пропускной способностью и высокой задержкой.

Типовая установка:[4]

 удаленные клиенты (xterm и т. д.) сторона сервера nxagent  сторона клиента xagent исполняемый файл nxagent клиент nxproxy / ↕ сеть ↕ сервер nxproxy ↕ локальный X-сервер (монитор / клавиатура)

В системах с функциональной реализацией X11 nxproxy и nxagent - это все, что необходимо для установления соединения с требованиями к низкой пропускной способности между набором удаленных X-клиентов и локальным X-сервером. SSH можно использовать для установления безопасного туннеля между хостами. NX 3 полагается на функции SSH и существующее программное обеспечение SSH с открытым исходным кодом, что позволяет запускать современные настольные компьютеры Unix и Windows, а также произвольные сетевые приложения через Интернет в защищенном и контролируемом режиме.

FreeNX и различные клиенты NX используются для настройки, обработки приостановки и возобновления, безопасного туннелирования через SSH, а также печати и звука.

Другие протоколы отображения

Протокол NX от NoMachine позволяет клиентам подключаться к хостам через Протокол удаленного рабочего стола (для сеансов Windows Remote Desktop Services) и удаленного Виртуальные сетевые вычисления сессий (большинство современных платформ операционных систем общего назначения), а также XDM.

Производные NX и вилки

До версии 4.0 компания NoMachine выпускала базовую технологию NX под Стандартная общественная лицензия GNU, и предложил несвободный коммерческие решения NX,[6] бесплатные клиентские и серверные продукты для Linux и Солярис, и бесплатное клиентское программное обеспечение для Майкрософт Виндоус, Mac OS X и встроенные системы.

Из-за того, что старые выпуски NX были свободными, проект FreeNX был начат с предоставления сценариев оболочки для библиотек GPL NX.[7] FreeNX был разработан и поддерживается Фабиан Франц, но не объявлял о выпуске с 2008 года.[8]

Программное обеспечение 2X разработал еще один коммерческий терминальный сервер для Linux с использованием протокола NX.[9]

7 июля 2009 г. Google анонсировали свой сервер NX с открытым исходным кодом, Neatx, как внутренний проект.[10][который? ] Проект не имеет релизов и активно не развивается. Его исходный код доступен по лицензии GNU GPL v2.[11]

X2Go основан на библиотеках NX 3.x, но несовместим с другими реализациями.[12][13] Клиент и сервер выпускаются под комбинацией GNU GPLv2 или более поздней версии и GNU AGPLv3 или более поздней версии.[14]

Клиенты

Основными клиентами NX являются официальное бесплатное ПО, NoMachine и NoMachine Enterprise Client. Несколько Открытый исходный код проекты также могут использовать протокол NX, но многие из этих проектов OSS не работают с более поздними версиями официального программного обеспечения NX.

Зрелый проект ОС был разработан Лоуренсом Руфаилом. nxc клиентская библиотека, полная библиотека, которую можно использовать для других клиентов. В nxrun приложение использует эту библиотеку. По состоянию на 2006 г., библиотека не позволяет приостанавливать или возобновлять сеансы и использует только JPEG сжатие графики.

В kNX Проект был экспериментальным приложением, написанным Джозефом Веннингером, и в его планах в конечном итоге стать полноценным клиентом NX, чтобы показать, что можно написать клиент с открытым исходным кодом. Его разработка была остановлена ​​до завершения. В конце 2005 г. Фабиан Франц и Джордж Райт начал модифицировать kNX для использования библиотеки nxc, но отказался от проекта.

Более поздние разработки с открытым исходным кодом включают QtNX, который предлагает полную приостановку и возобновление. Однако сообщалось, что он несовместим с самыми последними библиотеками NX.

Nxcl, aОбновление nxclientlib, ядра QtNX, было завершено Себом Джеймсом в сентябре 2007 года и работает с версией 3 основных библиотек NX.[нужна цитата ] Он также избавляется от зависимости от Qt, что не позволяет nxclientlib широко использовать в качестве кроссплатформенной основы для клиентских программ NX. nxcl предоставляет библиотеку, которая может быть связана с клиентской программой (libnxcl), и автономный клиент NX с D-автобус API (двоичный файл nxcl). Он доступен на FreeNX Subversion сервер.

Среди других недавних и активно поддерживаемых клиентов OSS NX: OpenNX, описываемый как "прямая замена [проприетарного] nxclient от NoMachine" с полной приостановкой и возобновлением.

Различные проекты терминальных серверов с открытым исходным кодом, такие как X2Go, также используйте протокол NX. Однако X2Go несовместим с другими серверами или клиентами NX.

Реммина, еще один недавний клиентский проект удаленного рабочего стола GTK +, объявил о возможности использования протокола NX в своем выпуске 0.8.

Предыдущие схемы сжатия X11

Смотрите также

Рекомендации

  1. ^ NoMachine.
  2. ^ Технология сжатия NX будет закрыта, Slashdot
  3. ^ Доставка удаленных рабочих столов Mac, Linux и Windows с помощью NoMachine NX, brianmadden.com
  4. ^ а б «Сборка и использование компонентов NX». NoMachine. 2015-05-22. Получено 2015-08-21.
  5. ^ Сборка и использование компонентов NX, NoMachine.
  6. ^ Терминальный сервер NX и программное обеспечение удаленного доступа (подробности о продукте), NoMachine.
  7. ^ «FreeNX - бесплатный NX». DE: Берлиос. Архивировано из оригинал на 2013-11-11. Получено 2014-02-14.
  8. ^ FreeNX (страница проекта), DE: Berlios.
  9. ^ «2X TerminalServer для функций Linux». 2X. Архивировано из оригинал 16 января 2012 г.. Получено 2016-03-30..
  10. ^ «Выпуск Neatx, сервера NX с открытым исходным кодом», Открытый исходный код (Всемирная паутина log), Google, сентябрь 2009 г..
  11. ^ "Neatx", Код, Google.
  12. ^ «X2Go - везде @ дома». 2013-12-28. Получено 2014-02-14.
  13. ^ Часто задаваемые вопросы, X2go.
  14. ^ Информация о лицензии, X2go.

внешняя ссылка