Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Фон [ править ]

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

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

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

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

Особенности [ править ]

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

NX использует VirtualGL для запуска высокопроизводительных X-приложений на основе OpenGL и программ трехмерного САПР.

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, чтобы минимизировать объем передаваемых данных, и кэширует данные, чтобы поддерживать максимальную скорость отклика сеанса. Например, при первом открытии меню это может занять несколько секунд, но впоследствии открывается почти мгновенно.

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 (аналогично Xephyr ), обычно запускается на удаленном (клиентском) компьютере, что позволяет избежать большинства циклов обработки протокола X11. Вместе с nxproxy (встроенным в nxagent) эта установка хорошо работает в каналах с низкой пропускной способностью и высокой задержкой.

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

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

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

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

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

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

Производные и вилки NX [ править ]

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

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

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

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

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

Другие недавние и активно поддерживаемые клиенты OSS NX включают OpenNX , описываемую как «заменяющую замену [проприетарного] nxclient от NoMachine» с полной приостановкой и возобновлением работы.

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

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

Предыдущие схемы сжатия X11 [ править ]

  • Низкая пропускная способность X (lbxproxy; устаревшее и представляет исторический интерес только)

См. Также [ править ]

  • Сравнение программного обеспечения удаленного рабочего стола
  • Thinstation  - реализация тонкого клиента для Linux с дополнительным встроенным клиентом NX
  • GNU Screen  - терминальный мультиплексор для консольных (текстовых) приложений
  • Xpra  - система для подключения и отключения удаленных X-программ
  • xmove  - инструмент, позволяющий перемещать программы между дисплеями X Window System (устарело)

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • X2Go X2Go Вводная страница
  • Страница проекта FreeNX в BerliOS .
  • Страница проекта FreeNX в Arch Linux .
  • Страница проекта OpenNX , SourceForge .