Показаны сообщения с ярлыком NX. Показать все сообщения
Показаны сообщения с ярлыком NX. Показать все сообщения

27 мар. 2011 г.

RX@Etersoft (ex. NX) Новые сведения.

Много байт утекло с тех пор, когда был написан пост о процессе установки и настройки NX-сервера на сервере с Debian'ом. Не скажу, что кардинально все поменялось, но кое-что освежить стоит.
Итак, на сегодняшний день по-прежнему практически единственным средством реализовать терминальный linux-сервер остается решение от NoMachine. Простота развертывания, защищенность передачи данных сеанса, скромные требования к ширине канала - все это в комплексе и без финансовых  затрат на ПО (при использовании свободных версий, конечно)  реализуется с помощью пары nxserver+nxclient. К тому же клиентская часть кросплатформенна, что во многом имеет определяющее значение.
В своей практике я использую решение от компании "Этерсофт", сейчас это два пакета - сам сервер nx-3.4.0, и их доделки-допилки - rx-etersoft. Выбрать сборку для своего дистрибутива (ссылки даны для Debian 5.0 Lenny) можно там же, поднявшись на пару уровней выше. Установка по сравнению с прошлым постом упростилась - нужно установить эти два пакета и выполнить команду rxsetup (и то и другое, конечно же, от имени суперпользователя). В директории, откуда rxsetup выполнялся, создастся файл rxsetup.log, заглянув в который, можно поглядеть подробности установки и справиться о наличии ошибок. 
Да, в некоторых дистрибутивах в базовой поставке отсутствует netcat и expect, которые используются в работе rx, поэтому их следует установить. Пару раз сталкивался, что отсутствовал пакет binutils, который также необходим для корректной настройки и работы rx-сервера. Таким образом, получатся такая последовательность команд:
delayer@inspire:~$ mkdir rxtemp
delayer@inspire:~$ cd rxtemp
delayer@inspire:~/rxtemp$ wget -c ftp://ftp.etersoft.ru/pub/Etersoft/RX%40Etersoft/1.1.1/Debian/5.0/nx_3.4.0-eter13.3debian_i386.deb
delayer@inspire:~/rxtemp$ wget -c ftp://ftp.etersoft.ru/pub/Etersoft/RX%40Etersoft/1.1.1/Debian/5.0/rx-etersoft_1.1.1-eter8debian_i386.deb
delayer@inspire:~$ su -
inspire:/home/delayer/rxtemp# aptitude update && aptitude install netcat expect binutils
inspire:/home/delayer/rxtemp# dpkg -i nx_3.4.0-eter13.3debian_i386.deb rx-etersoft_1.1.1-eter8debian_i386.deb
inspire:/home/delayer/rxtemp# rxsetup
inspire:/home/delayer/rxtemp# /etc/init.d/freenx-restart
Теперь можно ставить на клиентскую рабочую станцию клиента - или "ванильного" от NoMachine (win, lin), или сборку "community edition" (win), которую усиленно пилят резиденты unixforum-a во главе с dimbor'ом (за что и огромный респект, ибо попилено немеряно). Уточню, что хотя сборки NXClientCE можно взять не только в соотвествующих ветках самого unixforum'а, но и на ftp-сервере "Этерсофта" (там же, где и rx), сама компания к разработке этого продукта отношения не имеет. Это неочевидно, но тем не менее.
Практика использования rx показала, что нет надобности делать nxserver --adduser, все прекрасно и "из коробки" работает с существующими системными (или ldap) пользователями. Авторизация происходит аналогично обычному ssh-логину, с той лишь разницей, что сначала по ключу авторизуется специальный пользователь nx, а от его имени уже происходит дальнейшая авторизация заданного в настройках подключения пользователя. 
В качестве клиента я бы рекомендовал использовать сборку Community Edition, так в ней поправлены многие проблемы с раскладкими, кодировками, буфером обмена, работой в rootless-режиме и много чего еще. Всю биографию NXClientCE можно попытаться осилить - труд "Курощение.." находится тут.
Предложенная связка уже не первый год работает более чем в двух десятках различных организаций Кирова и области, "боевой" опыт использования имеет место быть. Как показывает статистика посещений моей странички, прошлый пост по этой теме практически с момента публикации держится в топе посещаемости относительно всех остальных заметок  Посему тема, выходит, достаточно востребована и популярна.

30 сент. 2010 г.

NX Client + Multimedia support

Появилась интересная задачка - получить звук с удаленного терминала на локальную рабочую станцию. И там и там linux (Debian Lenny и Ubuntu Lucid), терминал - NX (не ванильный NX-free от NoMachine), а RX@Etersoft, но в данном вопросе сие неважно). 
Немного потыкавшись по интернетам, выяснил, что сие возможно, причем без излишнего шаманства. Разработчики клиента добавили функционал "проброса" аудио-потока через nx-сессию, поэтому со стороны клиента достаточно в настройках подключения во вкладке Services выставить галку Multimedia Support. 
С серверной стороны действий несколько больше. Вскрытие показало, что для передачи аудио-потока используется eSound. В принципе, никаких допольнительных настроек оного не требуется, достаточно просто его установить:
apt-get install esound
Затем выставляем галку "Включить программное смешивание звука (ESD)" в Система - Параметры - Звук - вкладка Звук. Если установлен пакет gnome-audio, то тут же можно проверить работоспособность на звуковых файлах, нажав "Воспроизвести".
В принципе, всё. Можно слушать музыку, смотреть фильмы и так далее, нужно лишь установить какой-нибудь поддерживающий esd медиаплаер. Например, для работы с amaroK нужно в настройках движка xine (должна быть установлена библиотека libxine1) выставить модуль вывода esd. 
Непонятно, правда, как правильно задать вывод через esd для vlc, я ниасилил сделать это в интерфейсе настроек. Однако рабочим является такой вариант: vlc --aout=esd file:///home/user/Track1.mp3. Предварительно стоит установить пакет vlc-plugin-esd, который по умолчанию не всегда установлен.
Таким образом, если ширина канала позволяет, звук идет без артефактов. Теоретически, думаю, можно регулировать канал потока, но этим я не занимался пока что.

9 сент. 2010 г.

NX + numlock + клавиатура

Так, оставлю заметку здесь, чтобы помнить, где искать. Если имеется RX@Etersoft в качестве терминального сервера (или просто freenx, неважно) и nxclient в качестве, соответственно, клиента, то может проявиться пренеприятный баг: при создании терминального подключения сходят с ума клавиатурные маппинги некоторых клавиш (например, при нажатии стрелки вверх запускается скриншотер, т.е. отрабатывает PrScn). Лечится изменением типа клавиатуры на управляемую evdev. После переподключения проблема не воспроизводится. Правда, в некоторых случаях следует сходить в настройку клавиатуры, в часть горячих клавиш, и поменять там биндинг "Снять скриншот" с Print на Ctrl+Print.
Еще одна проблема - отваливается дополнительная клавиатура. Она лечится добавлением директивы NUMLOCK_METHOD="on" в /etc/nxserver/node.conf.d/50-numlockx.conf. Дополнительно может потребоваться отключение слежения DE за состояникм Numlock'а. В Gnome это делается с помощью gconf-editor'а: снять галку /desktop/gnome/peripherials/keyboard/remember_numlock_state.
Править можно также и вручную, все описанные директивые по такому же пути доступны в xml-файлах в /home/$user/.gconf.
UPD: В некоторых непонятных случаях ничего из вышеперечисленного не помогает. В некоторых случаях из этих некоторых помогает еще одна таблетка - переинициализация среды gnome. Это можно сделать, удалив из ~ директории .gconf .gconfd .gnome .gnome2 .gnome2_private .nautilus  .themes. После перезахода она создадутся заново, и numpad магическим образом начинает работать.

11 мая 2008 г.

NX@Etersoft on Debian HOW-TO

Для многих задач наиболее актуальным, а зачасту и единственным, является решение терминальной работы приложения, которое разработано по принципу клиент-серверной архитектуры. Если речь идет о nix-сервере, то резонным встает вопрос о терминальном сервере. В принципе удаленный доступ можно организовать с помощью разным протоколов: ssh, vnc, rdp, nx... У каждого есть свои преимущества и недостатки, а также соотвествующая область применения. Далее будет рассмотрена установка и базовая настройка FreeNX сервера с наработками от компании Etersoft - RX@Etersoft, на базе дистрибутива Debian 4.0_r0. Цепляться к нему будем удаленно из openSuSE10.3 с помощью NX-клиента от компании NoMachine.
Почему решение от Etersoft'a? Уж не знаю что они допилили по сравнению с авторской реализацией, однако обещается (разработчиком естественно) корректная работа с рендерингом кириллических шрифтов. При использовании обычного freenx'а шрифты (замечено на многих win-приложениях - WinRAR, 1С, etc) накладываются друг на друга и получается каша. Если отключить рендеринг на стороне клиента (винды то бишь), то резко возрастает обмен трафиком и тормозится работа - вследсвие того что все фонты начинают передаваться bitmap'ами, что нехило по размеру. Решением спецы с Etersoft'a предлагают свой пакет NX'a. С ним и будем работать.
Качаем отсель собранные для нашего дистриба пакеты (freenx_0.7.2-1_i386.deb и nx_3.1.0-1_i386.deb). Затем устанавливаем их, перейдя в соответствующий каталог.
interra:/home/delayer/# cd .\!/rx
dpkg -i *.deb
Так же уже должен стоять пакет openssh-server. Если нет, то следует установить и его.
apt-get install openssh-server
В принципе все - далее займемся конфигурацией.
Для успешной авторизации клиентов нам нужны ключи. Их созданием занимается утилита nxkeygen
interra:/home/delayer/!/rx# nxkeygen
Unique key generated; your users must install
/var/lib/nxserver/home/.ssh/client.id_dsa.key
on their computers.
Далее этот файлик нам пригодится для пользовательских машин, сей ключ мы импортируем nx-клинентам для успешной авторизации на сервере.
Создаем пользователя (или пользователей =)) в системе любым удобным методом, например с помощью adduser.
Запускаем собственный инсталлер сервера, который произведет его настройку и запуск. На "выхлопе" получим примерно следующее:
interra:/home/delayer/!/rx# nxsetup
------> You did select no action.
FreeNX guesses that you want to _install_ the server.
Type "y" to abort the installation at this point in time.
"N" is the default and continues installation.
Use "/usr/bin/nxsetup --help" to get more detailed help hints.

Do you want to abort now? [y/N] n
------> It is recommended that you use the NoMachine key for
easier setup. If you answer "y", FreeNX creates a custom
KeyPair and expects you to setup your clients manually.
"N" is default and uses the NoMachine key for installation.

Do you want to use your own custom KeyPair? [y/N] nSetting up /etc/nxserver ...done
Generating public/private dsa key pair.
Your identification has been saved in /etc/nxserver/users.id_dsa.
Your public key has been saved in /etc/nxserver/users.id_dsa.pub.
The key fingerprint is:
81:a9:42:ea:97:59:51:41:c3:e4:f0:63:29:cc:d8:10 root@interra
Setting up /var/lib/nxserver/db ...done
Setting up /var/log/nxserver.log ...done
Setting up known_hosts and authorized_keys ...done
Setting up permissions ...done
Setting up cups nxipp backend ...done

----> Testing your nxserver configuration ...
Warning: Could not find nxdesktop in /usr/bin. RDP sessions won't work.
Warning: Could not find nxviewer in /usr/bin. VNC sessions won't work.
Warning: "/usr/lib/cups/backend/smb" is not executable.
Users will not be able to enable printing.
Warning: Invalid value "DEFAULT_X_SESSION=/etc/X11/xdm/Xsession"
Users might not be able to request a default X session.
Warning: Invalid value "COMMAND_START_KDE=startkde"
Users will not be able to request a KDE session.
Warning: Invalid value "COMMAND_START_CDE=cdwm"
Users will not be able to request a CDE session.
Warning: Invalid value "COMMAND_SMBMOUNT=smbmount". You'll not be able to use SAMBA.
Warning: Invalid value "COMMAND_SMBUMOUNT=smbumount". You'll not be able to use SAMBA.
Error: expect necessary for /usr/bin/nxnode-login could not be found in '/usr/bin/expect'. Please install it or change nxnode-login accordingly.

Errors occured during config check.
Please correct the configuration file.
На сообщения об опасности особого внимания обращать не стоит, часть из них, что ругается на Invalid value, есть следствие того, что указанные переменные не определены ввиду отсутствия установленных компонентов (CUPS, samba), остальные уведомляют, что не могут найти некоторые компоненты nx-пакета. Однако ни RDP, ни VNC протокол мы использовать не будем, поэтому нам это не вредит ничуть %).
По поводу второго вопроса (с первым я думаю все ясно), связанного с KeyPair, выбираем вариант использования ключей специально для NoMachine, который и будет использоваться в качестве клиента. Хотя по сути, если мы создаем ключ заново nxkeygen'ом, а затем его импортируем клиентам, то смысл ответа n в принципе то теряется. Но подумал я об этом только сейчас, когда уже все работает ;). Так что по уму стоит поставить y, если мы хотим использовать свои ключи, сгенеренные на этой системе, и n, если планируется работать с NoMachine nx-клиентом и его дефолтными ключами. Тогда этап отработки nxkeygen'a выпадает.
Теперь зарегистриуем пользователя для nx-соединения через nxserver. Это делается через примерно следующий диалог:
interra:/# nxserver --adduser delayer
NX> 100 NXSERVER - Version 2.1.0-72-SVN OS (GPL)
NX> 1000 NXNODE - Version 2.1.0-72-SVN OS (GPL)
NX> 716 Public key added to: /home/delayer/.ssh/authorized_keys
NX> 1001 Bye.
NX> 999 Bye
interra:/var/lib/nxserver/home/.ssh# nxserver --passwd delayer
NX> 100 NXSERVER - Version 2.1.0-72-SVN OS (GPL)
New password:
Password changed.
NX> 999 Bye
Для надежности перезапустим nxserver
interra:/home/delayer/!/rx# nxserver --restart
Eсли пользователя нет в ОС, то nxserver вернет ошибку, так как при регистрации используется домашний каталог пользователя.
После этого на стороне клиента настраиваем NX-клиент, в данном примере от NoMachine - http://www.nomachine.com/download-client-linux.php, доступны сборки как для deb-, так и для rpm-орентированных дистрибутивов, ну и tarball тоже имеется. Поддерживаются linux, BSD, MacOS, Win системы.
Создав подключение (пояснение не привожу, так как считаю что ничег осложного в этом нет, все исключительно user friendly), импортируем сохраненный ранее ключ. Вот так: Configure -
General -> Key... -> Import -> /path/to/dsa-key -> Save
Все, проверяем подключение.
Если для секурности есть желание изменить ssh порт, то это делается в /etc/ssh/sshd_config, меняя значение Port. Аналогично изменяется директива SHHD_PORT на желаемое значение в /etc/nxserver/node.conf. Там же стоит изменить уровень логирования с дефолтного 0 на 2 или 4 ( опция NX_LOG_LEVEL). Подробности прямо в конфигурационном файле. Это полезно при начальной настройке и обкатке. Впоследствии несложно отключить и рестартнуть nxserver
interra:/# nxserver --restart
После перезагрузки самой системы freenx поднимается сам, благодаря init-скриптам.