RX/about

Материал из Etersoft wiki
Перейти к: навигация, поиск

RX@Etersoft — терминальный сервер под Linux

Описание

RX@Etersoft позволяет организовать терминальный сервер, на котором выполняются приложения Linux или Windows, а на рабочие станции передаётся только изображение.

RX@Etersoft - это система, основанная на протоколе NX, которая позволит вам запускать удаленные сеансы X11 даже через сетевые каналы с низкой пропускной способностью. Для подключения к серверам можно использовать различные операционные системы, которые поддерживает клиент RX@Etersoft: Linux, Mac OS X, Solaris и Windows.

Благодаря уникальному методу сжатия данных, передаваемых по X-протоколу и набору прокси-агентов, алгоритму "ленивого" кодирования и способности NX подстраиваться под задержки и пропускную способность канала достигается удобство работы и достаточная скорость обновления экрана даже на низкоскоростных соединениях.

Кроме того, с NX возможно подключиться к удалённому VNC- или RDP-серверу, опираясь на клиенты RDesktop и TightVNC, путем инкапсуляции сессий RDP и RFB в рамках сессии X11.


Преимущества терминального сервера RX@Etersoft по сравнению с обычным подключением к Linux-серверу:

  • простота администрирования;
  • значительное ускорение работы приложений, которые активно используют передачу данных по сети (например, 1С:Предприятие 7.7);
  • возможно удалённое безопасное подключение через интернет;
  • подключение клиентского оборудования (принтеры, сканеры, фискальные регистраторы);
  • возможность подключаться как Linux, так и из MS Windows.
  • эффективное сжатие трафика X;
  • механизм кэширования для повторного использования данных, передаваемых между сервером и клиентом;
  • резкое сокращение временных затрат на обращение к X;
  • алгоритм ленивого кодирования для отложенного обновления экрана

Если вы хотите увидеть разные возможности RX@Etersoft, попробуйте различные настройки графического клиента:

  • При выборе типа соединения "LAN", ни сжатие NX, ни "ленивое" кодирование использоваться не будут.
  • На типе "ADSL" вы увидите в действии все эти методы, в том числе и кэширование.


Варианты использования

RX@Etersoft позволяет организовать работу несколькими способами:

  • Режим полноценного рабочего стола:
    • Клиент полностью подключается к терминальному серверу. Рабочий стол и все приложения выполняются на терминальном сервере.
  • Режим одного приложения
    • Клиент использует локальный Рабочий стол и к терминальному серверу подключается только при использовании одного приложения


Некоторые основы NX

В основе протокола X лежит связь между X-сервером и X-клиентом. Клиент представляет собой программу с простым графическим интерфейсом, облегчающим работу пользователя. X-сервер - это программа, которая способна отрисовывать графический интерфейс X-клиента и любой другой запущенной программы на экран. Так же он обрабатывает события от клавиатуры и мыши, отправляя их обратно в программу X-клиента, обрабатывающего эти действия как пользовательские команды.

Когда X-клиент хочет отобразить что-либо на экране, он выдает серию соответствующих запросов X-серверу. Существует около 160 различных типов запросов, включая расширения, указанные в протоколе X. Некоторые запросы, например, представляют собой графические примитивы. Они описаны в конце файла с исходным кодом Xproto.h, включенным в NX-X11 Open Source и доступном по этой ссылке.

Некоторые запросы, посланные клиентом, нуждаются в ответе X-сервера. Это замедляет реакцию программы, поскольку для завершения запроса необходима двухсторонняя передача данных.

Для протокола X сеть является прозрачной. То есть, не имеет значения, где находится клиент, а где сервер. Они могут находится на одной и той же машине, а могут быть и на разных компьютерах в километрах друг от друга. Локальный X-сервер может отрисовывать графический интерфейс как локальной программы-клиента, так и запущенной на другом компьютере. Удаленному клиенту можно даже отправить события от локальных клавиатуры и мыши.

Если у вас есть аккаунт на удаленной системе Linux или Solaris, вы можете проверить это, выполнив из локального терминала xterm команду:

ssh -X username@server xterm

Эта команда создаст защищенный канал SSH для туннелирования трафика X11 c удаленного сервера. Если на нем настроен проброс X, то новый xterm с сервера появится на экране вашего локального монитора.

Обратите внимание, что первое окно с удаленного сервера будет выводиться достаточно медленно, поскольку количество начальных запросов клиента исчисляется многими тысячами. Это создает ощущение, будто вы работаете за медленной, непроизводительной системой. Когда же клиент и сервер работают на одном и том же хосте, связь между ними идет через UNIX-сокеты и обращения происходят довольно быстро. Но в случае, если клиент и сервер запущены на разных машина, их межпроцессное взаимодействие осуществляется через протокол TCP/IP и физическую сеть. В этом и есть причина медленной работы X через сеть.

NX-протокол.png

Проблем с производительностью добавляют так же и задержки в сети. Качество связи любого типа описывается двумя параметрами: её пропускной способностью и задержками. Полоса пропускания относится к набору байтов, которые могут быть переданы в секунду, в то время как задержки указывают на время, необходимое для перемещения из одного конца сети в другой. Как правило, Dial-UP модемы имеют задержку от 200 до 500 миллисекунд. ADSL-соединение имеет задержку около 50 миллисекунд, а задержки в местной локальной сети составляют менее одной миллисекунды. Задержки в UNIX Domain Socket ниже 0.1 миллисекунды.


Технический принцип

  • Клиент с помощью публичного ключа авторизуется от имени пользователя nx на ssh-сервере, где запущен nx-сервер.
  • Пользователь nx из специального шелла авторизует конечного пользователя.
  • Под пользователем запускается nxnode, который в свою очередь запускает nxagent в качестве X и DesktopManager (если необходим).

Детали

RX@Etersoft без проблем работает в отдельном контейнере типа OpenVZ.

Клиент от nomachine позволяет использовать режим rootless, когда программа запущенная в терминале отображается как «нативная» на рабочем столе пользователя, а не в терминале.

Nomachine клиент в линуксе профили настроек сессий хранит в /.nx/config в файлах с расширением .nxs.