понедельник, 23 марта 2009 г.

Установка и настройка FreeNX в Fedora 10

Серверная часть

Для начала необходимо запустить терминал:

Приложения > Системные > Терминал

Далее входим как root:

$ su -

Устанавливаем пакеты nx и freenx-server

# yum install nx freenx-server

Далее отредактируйте файл конфигурации ssh-сервера:

# gedit /etc/ssh/sshd_config

Раскоментируйте и измените значения следующих ключей:

PubkeyAuthentication yes
AuthorizedKeysFile authorized_keys2
PermitEmptyPasswords yes

Перезапустите ssh-сервер:

# service sshd restart

Настройте фаервол:

Система > Администрирование > Межсетевой экран

В "Доверенных службах" отметьте галочками следующие службы:

Samba
SSH
Клиент Samba
Клиент сетевой печати (IPP)
Сервер сетевой печати (IPP)

Нажмите "Применить" и закройте окно Настройки межсетевого экрана.

Теперь необходимо создать несколько ссылок на библиотеки:

# ln -s /usr/lib/nx/libXcomp.so.3 /usr/lib/nx/libXcomp.so
# ln -s /usr/lib/nx/libXcompext.so.3 /usr/lib/nx/libXcompext.so
# ln -s /usr/lib/nx/libXrender.so.1.2.2 /usr/lib/nx/libXrender.so.1.2

И отредактируйте установочный скрипт:

# gedit /usr/libexec/nx/nxsetup

Найдите строку содержащую:

passwd -u nx

И измените на:

passwd -uf nx

Теперь можно и нужно запустить этот скрипт со следующими параметрами:

# /usr/libexec/nx/nxsetup --install --setup-nomachine-key --clean --purge

Если всё в порядке, то в выведенном тексте будет содержаться кроме всего прочего:

----> Testing your nxserver connection ...
HELLO NXSERVER - Version 3.2.0-73 OS (GPL, using backend: 3.2.0)
NX> 105 quit
Quit
NX> 999 Bye
<--- done Ok, nxserver is ready.

Если будет содержать:

----> Testing your nxserver connection ...
Permission denied (publickey,gssapi-with-mic,password).
Fatal error: Could not connect to NX Server.

То, нужно перезапустить ssh-сервер:

# service sshd restart

И снова выполнить:

# /usr/libexec/nx/nxsetup --install --setup-nomachine-key --clean --purge

Добавляем в автозапуск скрипт для установки правильных параметров клавиатуры:

# gedit /etc/xdg/autostart/setxkmap.desktop

И вставляем в него следующие строки:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Fix keyboard settings
Exec=setxkbmap -rules xorg -model pc105 -layout "us,ru" -variant ",winkeys" -option "grp:ctrl_shift_toggle"
Terminal=false
Type=Application

Осталось добавить пользователей, например user01:

# useradd -m user01

И установить ему пароль:

# passwd user01

На этом установка и настройка сервера FreeNX закончилась.

Клиентская часть

Зайдите на сайт разработчиков этого терминального сервера:

http://www.nomachine.com/download.php

И скачайте бесплатное клиентское приложение.

Для Windows - "NX Client for Windows". Установка простая и ничем не отличается от любой другой программы.

Для Fedora - "NX Client for Linux" и выбираем "NX Client RPM for Linux - i386".

Сохраните rpm-пакет, например, в папку Загрузки в Вашей домашней папке.

Запустите терминал:

Приложения > Системные > Терминал

Перейдите в папку со скаченым rpm-пакетом:

$ cd Загрузки

Установите приложение:

$ su -c 'rpm -Uhv nxclient*'

Теперь его можно запустить:

Приложения > Интернет > NX Client for Linux > NX Connection Wizard



Введите назнание сессии и IP-адрес или доменное имя сервера. Тип соединения оставьте ADSL.



В качестве рабочего окружения выберите GNOME.



Оставьте галочку Create shortcut on desktop, чтобы создать ярлык на рабочем столе.


Введите имя пользователя и пароль действительные на сервере.



При первом запуске подтвердите действительность ключа безопасности.



После этого появится окно показывающее процесс подключения.


И наконец Вы увидите Ваш удалённый рабочий стол!


6 комментариев:

  1. Потрясающе! Огромное спасибо!

    ОтветитьУдалить
  2. попробывал сделать для f14 подключатся загружает сесию и после этого пишет negotiating link parameters

    ОтветитьУдалить
  3. Можно ли по подробнее сказать о каких проблемах с клавиатурой идет речь:"автозапуск скрипт для установки правильных параметров клавиатуры:"?
    У меня на openSUSE 11.4 используется FreeNX-0.7.2-29.1.x86_64.rpm (из X11:RemoteDesktop/openSUSE_11.4) так вот при подключении к серверу неазвисимо от клиента ("NX Client for Linux" или "Remmina") стабильно возникает проблема в обработке управляющих клавиш, анализ работы клавиатуры выполняю через "Show Current Layout/Показать текущую раскладку", далее полный перечень проблемных клавиш (первае - нажимаемая клавиша, второе - отрабатываемое действие):
    1. "Cursor Up" - "Print Screen";
    2. "Cursor Left" - "Alt-R";
    3. "Cursor Right" - не обрабатывается;
    4. "Cursor Down" - не обрабатывается;
    5. "Super/Win-L" - не обрабатывается;
    6. "Super/Win-R" - не обрабатывается;
    7. "Alt-R" - "Enter-num pad";
    8. "Menu" - не обрабатывается;
    9. "Ctrl-R" - "Page Down";
    10. "Insert" - не обрабатывается;
    11. "Delete" - не обрабатывается;
    12. "Home" - "Pause";
    13. "End" - "Super/Win-L";
    14. "Page Up" - "/ - num pad";
    15. "Page Down" - не обрабатывается;
    16. "/ - num pad" - "Insert";
    17. "Enter-num pad" - "Cursor Down".
    Поиск в Гугле дал ссылу на подобную проблему - http://askubuntu.com/questions/15693/incorrect-key-mappings-in-remote-nx-session

    ОтветитьУдалить
  4. Спасибо! Инструкция очень помогла.
    Сначала застрял на ошибке:
    Setting up special user "nx" ...useradd: невозможно создать каталог /var/lib/nxserver/home

    Потом подправил скрипт /usr/libexec/nx/nxsetup:

    заменил mkdir -p $(dirname "$NX_HOME_DIR")
    на mkdir -p $NX_HOME_DIR"

    и установка прошла до конца.

    ОтветитьУдалить
  5. Спасибо! Инструкция очень помогла.
    Сначала застрял на ошибке:
    NX> 148 Server capacity: not reached for user: user01
    потом исправил скрипт /usr/libexec/nx/nxserver (построчно) :
    < if $COMMAND_NETCAT --send-only "$SERVER_HOST" $PROXY_DISPLAY if $COMMAND_NETCAT --send-only "$SERVER_HOST" $PROXY_DISPLAY /dev/null
    1504c1504
    < if [ "$(getparam 'samba')" = 1 ] && $COMMAND_NETCAT --send-only "$SERVER_HOST" $SAMBA_DISPLAY if [ "$(getparam 'samba')" = 1 ] && $COMMAND_NETCAT --send-only "$SERVER_HOST" $SAMBA_DISPLAY /dev/null
    1512c1512
    < if [ "$(getparam 'media')" = 1 ] && $COMMAND_NETCAT --send-only "$SERVER_HOST" $MEDIA_DISPLAY if [ "$(getparam 'media')" = 1 ] && $COMMAND_NETCAT --send-only "$SERVER_HOST" $MEDIA_DISPLAY /dev/null
    1521c1521
    < if [ "$(getparam 'cups')" = 1 ] && $COMMAND_NETCAT --send-only "$SERVER_HOST" $CUPS_DISPLAY if [ "$(getparam 'cups')" = 1 ] && $COMMAND_NETCAT --send-only "$SERVER_HOST" $CUPS_DISPLAY /dev/null
    1640c1640
    < $COMMAND_NETCAT $SERVER_HOST $PROXY_DISPLAY
    ---
    > $COMMAND_NETCAT $SERVER_HOST $PROXY_DISPLAY 2>/dev/null

    ОтветитьУдалить