FreeNX (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи FreeNX. Дата последней синхронизации: 27 августа 2008. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: не обновлялось с 2008-го (обсуждение: Talk:FreeNX (Русский)#)

Установка

Пакет разделён на две части:

  • freenx (сервер)
  • nxclient (клиент)

Настройка

Сервер

Открытая реализация сервера находится в пакете 'freenx'.

  • Чтобы разрешить вход на сервер, добавьте 'sshd' в список демонов в /etc/rc.conf.

Основной конфигурационный файл - /opt/NX/etc/node.conf. Если вы используете KDE или Gnome, то вам нет необходимости править этот файл, установки по умолчанию вам подходят. Если у вас другой оконный менеджер, такой как Fluxbox/Openbox или Xfce, вам может понадобиться слегка отредактировать этот файл (смотрите ниже).

Ключи

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

Клиентский ключ находится в файле /opt/NX/home/nx/.ssh/client.id_dsa.key.

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

/opt/NX/bin/nxsetup --install --setup-nomachine-key --clean --purge

Пересоздать случайные ключи:

  • /opt/NX/bin/nxsetup --install --clean --purge

Перенести ключи на другой сервер freenx:

  • директория /opt/NX/home/nx/.ssh содержит файлы ключей
 -rw------- 1 nx root  697  9. Okt 12:55 authorized_keys
 -rw------- 1 nx root  668  9. Okt 11:48 client.id_dsa.key
 -rw------- 1 nx root  609  9. Okt 12:55 server.id_dsa.pub.key
  • Сохраните эти файлы
  • Добавьте эти файла на новый сервер. Им нужны те же самые права доступа, имена, группа и директория!
 # cp authorized_keys client.id_dsa.key server.id_dsa.pub.key /opt/NX/home/nx/.ssh/
 # chmod 600 /opt/NX/home/nx/.ssh/*
 # chown nx /opt/NX/home/nx/.ssh/*
 # chgrp root /opt/NX/home/nx/.ssh/*
  • Пересоздайте файл known_hosts:
 # echo -n 127.0.0.1 > /opt/NX/home/nx/.ssh/known_hosts
 # cat /etc/ssh/ssh_host_rsa_key.pub >> /opt/NX/home/nx/.ssh/known_hosts
 # chmod 633 /opt/NX/home/nx/.ssh/known_hosts
 # chown nx /opt/NX/home/nx/.ssh/known_hosts
 # chgrp root /opt/NX/home/nx/.ssh/known_hosts

Запуск сервера

После установки для запуска сервера не надо делать ничего вручную, он уже запущен. Единственная служба, которая необходима для соединения - sshd.

В действительности, если вы проверите список процессов (ps aux), вы не увидите запущенного nxserver. Причина в том, что nxserver действительно стартует только при входе в sshd специального пользователя 'nx'. В качестве оболочки (shell) для этого пользователя указан nxserver, так же, как для обычных пользователей указан bash.

Клиент

Arch Linux

Загрузите клиент с помощью pacman:

pacman -S nxclient

Windows

Загрузите клиент с сайта компании Nomachine: https://www.nomachine.com

Замечание: Nomachine собирается удалить старые клиенты с сайта, так что если ваша установка работает, сохраните её в надёжное место. :)

Настройка

Как упомянуто выше, клиент должен содержать правильный ключ для доступа к серверу. Если вы используете сгенерированные вами во время установки ключи, вам необходимо скопировать клиентский ключ в следующее месторасположение:

  • Windows: <yourinstalldironwindows>/share/keys/client.id_dsa.key
  • Arch Linux: /opt/NX/share/keys/client.id_dsa.key

После помещения ключей вам возможно придётся импортировать их с помощью nxclient GUI. В конфигурационном диалоге нажмите кнопку 'Key...' и импортируйте новый клиентский ключ.

Запуск

Горячие клавиши

CTR+ALT+F          Переключить полноэкранный режим. 
CTRL+ALT+T         Показать диалог завершения или приостановления сессии.
CTRL+ALT+M         Максимизировать или минимизировать окно.
CTRL+ALT+Mouse     Drags the viewport, so you can view different portions 
                   of the desktop. 
CTRL+ALT+Arrows 
or                 Moves the viewport by an incremental amount of pixels. 
CTRL+ALT+Keypad 
CTRL+ALT+S         It will activate "screen-scraping" mode, so all the GetImage
                   originated by the clients will be forwarded to the real
                   display. This should make happy those who love taking
                   screenshots ;-). By pressing the sequence again, nxagent
                   will revert to the usual "fast" mode.
CTRL+ALT+E         Ленивое кодирование изображений.
CTRL+ALT+Shift+ESC Экстренный выход и закрытие окна.

Выход из полноэкранного режима

Существует магический пиксель в верхнем правом углу, где обычно находится панель работы с окошкой в nx-приложениях в полноэкранном режиме. Кликните по нему правой кнопкой мыши и в приложении в этом углу появится панель управления.

Советы по возобновлению

  • Возобновление - это немного экспериментов, и "падения" после восстановления сессии могут показать какие приложения успешно восстанавливаются, а какие нет.
  • Восстановления между сессиями Linux и Windows не работают.
  • Если восстановление неудачно, то подождите немного, не нажимайте кнопку Cancel/Отмена иначе сессии останутся открытыми и будут в холостую занимать оперативную память на сервере. Чтобы завершить сессию, используйте программу Session Admin для убийства нужного процесса.

Правка DPI настроек

Если Вы хотите себе одинаковые размеры шрифтов и dpi во всех Ваших клиентских сессиях, поправьте файл для Х-сервера под названием "Xft.dpi". К примеру, добавленная строка "Xft.dpi: 100" в "~/.Xresources" сделает на десктопе 100dpi.

Настройка менеджеров рабочего стола KDE или Gnome

Перед тем как делать что-нибудь из этого раздела, убедитесь, что сервер работает и подключения к нему разрешены. Далее будут решения проблем связанных с NXClient.

Вот простой пример подключения к сессиям Gnome и KDE, однако,процесс подключения к другим оконными менеджерам, типа fluxbox, xfce и whatever несколько отличается.

Выберите "custom" и используйте команду "startx", далее появится один из двух результатов: на пустом экране после лого !М или клиентская часть сообщит об ошибке, связанной с Х-сервером. Если команда "startx" не сработала, то используйте другую команду для запуска вашего оконного менеджера.

Alternative fix

A simple fix without resorting to the above seems to involve a simple edit to the config file. This should work for fluxbox/openbox/xfce or any other window manager that uses the .xinitrc startup file in a call to startx.

Simply edit the config file (as root):

/opt/NX/etc/node.conf

and change

#USER_X_STARTUP_SCRIPT=.Xclients

to

USER_X_STARTUP_SCRIPT=.xinitrc

Remember to remove the # symbol from the start of the line.

Then in the client under configuration settings, choose Custom as the desktop, and click on settings:

  • In the first group select - Run the default X client Script on server
  • In the second group select - New virtual desktop

Problems

Отладка проблем

Редактируйте конфиг nxserver :

 vi /opt/NX/etc/node.conf

Измените:

 #SESSION_LOG_CLEAN=1

на

 SESSION_LOG_CLEAN=0

Тогда вы сможете смотреть/отлаживать лог файл

 $HOME/.nx/T-C-<hostname>-<display>-<session-id>

Для удачных соединений:

 $HOME/.nx/F-C-<hostname>-<display>-<session-id>

Для неудачных.

Авторизация OK, соединение пропадает

Если вы пытаетесь startkde

 vi /opt/NX/etc/node.conf

Ищите:

 COMMAND_START_KDE=startkde

Замените на:

 COMMAND_START_KDE=/opt/kde/bin/startkde

Key changes

Change the key in GUI setup to new generated key.

Xorg 7

Be aware that you have to remove the /usr/X11R6 directory, else strange things can happen.

Wrong password / No connection possible

  • If you get always wrong password or no connection after authentication was done and you are sure that you typed it correct, check that your server can connect to itself using localhost by ssh and that it is not blocked either by /etc/hosts.deny or not allowed by /etc/hosts.allow.
  • If you messed up your key files, create new ones or fix the old ones, it is probably caused by a wrong known_hosts file.

NX Crashes on session startup

If your NX Client shows the NX logo then disappears with a Connection Problem dialog afterwards.

Then it could be due to missing fonts. Mostly applies if you have installed Arch Linux base and then installed freenx after without the whole X11 set.

Solution until FreeNX Dependencies is fixed is to install xorg-fonts-misc on your NX Server (pacman -S xorg-fonts-misc) and your NX should work.

Note: This does not apply to freenx 0.6.1-3 and above, fix has been incorporated in it and following versions.

NX logo then blank screen

If you see the NX logo (!M) then a blank screen.

This problem can be solved by running a login manager- The problem is that X11 is not started, and it appears that "startx" or similar do not work from the freenx client. Follow these instructions to setup a login manager and load it at startup: Display manager

Blind: If this does not resolve your issues, be aware that freenx and bash_completion do not play well together. I only got things to work after removing bash_completion from the .bashrc.

GDM/XDM Session Menu Error with non-KDE or Gnome Desktop Managers (more common with non-Arch Linux users)

Problem: A session menu comes up talking about "chooseSessionListWidget." A window manager never loads.

Fix :

Double check to see if ~/.xinitrc is executable.

 ls -la ~/ | grep .xinitrc

If the file is not executable, simply

 chmod +x ~/.xinitrc

Keep in mind this command should be executed along with pertinent instructions on this page about "Setting up non-KDE or Gnome desktop managers"