Ключевые слова:freenx, x11, x, freebsd, (найти похожие документы)
From: Chigikov Vladimir (Skif Swarogich) <skif@owe.com.uaskif.@ua.fm>
Newsgroups: email
Date: Mon, 14 Mar 2007 14:31:37 +0000 (UTC)
Subject: NXServer и FreeNX на FreeBSD. Решение некоторых проблем в работе
Предыстория.
------------
Так уж сложилось, что в течении n-го количества времени мне приходиться
писать и переписывать один из своих проэктов. В очередной раз
переделывая оный, мной была заменена СУБД и изменена полностью
структура самой БД. Так как основные моменты работы программы
перекладывались на триггеры и функции самой СУБД, я долгое время
экспериментировал с возможными функциями, и восстановлениям данных после
сбоя. Когда наигрался и получил необходимые результаты, пришла пора
писать уже сами необходимые триггера и прочие приблуды. И тут встала
проблема. А именно - все распечатки по структуре БД остались на
работе, электронная версия в формате KWord, вытянуть можно, да вот как
прочитать? Так уж сложилось, что по профессиональным нуждам верная
FreeBSD на домашнем компе была заменена на Windows. Дилемма. Ноутбук со
всеми данными на работе. Ехать туда в праздники как-то желания не было.
Но был вечер. Свободный. И продукт компании NoMachine
(http://www.nomachine.com) в составе портов FreeBSD.
И пришлось мне сделать cd /usr/ports/net/nxserver
Инсталляция
Сам процесс установки сервера, никаких особых сюрпризов не приподнес
cd /usr/ports/net/nxserver
make all install clean && rehash
несколько расстроило только сообщение вида:
*******************************************************************************
This port provides only the NX core binaries and libraries as were released
by NoMachine as source code. To make them work and be used as an NX server,
you will need to:
* either install FreeNX (net/freenx) additionally,
* or install the commercial NoMachine server product (currently not available
in native FreeBSD form)
*******************************************************************************
Что гласило, что мне, нерадивому поставить придется еще и FreeNX,
отдельно. А то вдруг коммерческую версию захочу. Захотел. Только
посмотреть. Что и всем рекомендую. Особенно изучить две странички:
1. http://www.nomachine.com/features.php
2. http://www.nomachine.com/store.php
Привожу сие, что бы понять просто так всего и задаром не бывает. Хотя
вещица уже тогда начала мне нравиться.
Что ж, денег много у меня не было, да и посмотреть всегда полезно,
прежде чем выбивать на что либо деньги у начальства посему
воспользоваться решил тем, чем есть, а именно FreeNX.
Если все же вы заглянули на страничку http://www.nomachine.com/features.php ,
то увидели, что возможны на таком варианте, только два одновременных
подключения для двух пользователей. Немного, но для моего ноутбука и
этого было с головой. Тем боле, что все, что мне требовалось - это
рабочий стол для меня одного и KOffice.
cd /usr/ports/net/freenx
make all install clean && rehash
Проблем с портом тоже не возникло.
Стоит обратить внимание на то, что в http://www.nomachine.com/documentation/node/install.php
отсутствует как минимум FreeBSD, на которой чудно поживает детище NoMachine.
Но, что не маловажно, это низкие требования к продукту, что в случае
моего ноутбука так же немаловажно было: http://www.nomachine.com/select-package.php?os=linux&id=1
Hardware
- 400 MHz processor
- 128 MB RAM
- 32 MB free disk space on your hard drive
- Network connection (either a LAN, or Internet link: dial-up (minimum 33.6 Kbps modem), broadband, cable, DSL, etc.)
Как видите не густо.
Глянув в dmesg, я еще раз убедился, что ресурсов мне хватит. С запасом. Огромным.
dmesg
[root@ackinak.mob] /usr/ports/net/freenx/: dmesg
Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RELEASE-p2 #0: Sat Mar 10 01:00:33 EET 2007
root@ackinak.mob:/usr/src/sys/i386/compile/SKIF
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) 4 Mobile CPU 1.60GHz (1595.30-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf24 Stepping = 4
Features=0x3febf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS
,HTT,TM>
real memory = 536748032 (511 MB)
avail memory = 511647744 (487 MB)
kbd1 at kbdmux0
ath_hal: 0.9.17.2 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
acpi0: <DELL CPi R > on motherboard
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
cpu0: <ACPI CPU> on acpi0
.........
Что ж. Дело сделано, пора и в бой.
Настройка.
Манов не оказалось. То бишь, пишешь:
[root@ackinak.mob] /usr/ports/net/freenx/:man nxserver
No manual entry for nxserver
[root@ackinak.mob] /usr/ports/net/freenx/:man freenx
No manual entry for freenx
[root@ackinak.mob] /usr/ports/net/freenx/:
И становиться как-то тоскливо. Изучение
[root@ackinak.mob] /usr/ports/net/freenx/:less /var/db/pkg/nxserver-1.4.0/+CONTENTS
[root@ackinak.mob] /usr/ports/net/freenx/:less /var/db/pkg/freenx-0.4.4_2/+CONTENTS
подтвердило грустные мысли, что манов нет и придется либо методом
научного тыка либо изучая структуру вражеского сайта.
Впрочем поход в /usr/X11R6/NX/bin чуть-чуть порадовал:
[root@ackinak.mob] /usr/ports/net/freenx/:cd /usr/X11R6/NX/bin/
[root@ackinak.mob] /usr/X11R6/NX/bin/:./nxserver --help
NXSERVER - Version 1.4.0-44 OS (GPL)
Usage: nxserver <option>
--adduser <user>: Add a new user
--passwd <user>: Change password of <user>
--deluser <user>: Remove a user from nx
--listuser: List enabled users
--start: Start the nx server
--stop: Stop the nx server
--status: Show status of nx server
--restart: Restart the nx server and terminate all running sessions
--list [ user | sessionid ]: List running sessions of user or sessionid
--history [ user | sessionid | clear ]: Show history [ of user | sessionid ] or clear the history
--terminate <user | :display | sessionid>: Terminate the session pointed to by
sessionid or display, or all sessions of the specified user.
Use * for all sessions.
--suspend <user | :display | sessionid>: Suspend the session pointed to by
sessionid or display, or all sessions of the specified user.
Use * for all sessions.
--cleanup: Terminates all running sessions. Useful after power-outage.
--broadcast <message>: Send a message to all users
--send <user | :display | sessionid> <message>: Send a message to the specified user or sessionid
[root@ackinak.mob] /usr/X11R6/NX/bin/:
Ух ты, как все просто!
И действительно, достаточно было сделать:
[root@ackinak.mob] /usr/X11R6/NX/bin/:./nxserver --start
NX> 100 NXSERVER - Version 1.4.0-44 OS (GPL)
NX> 122 Service started
NX> 999 Bye
[root@ackinak.mob] /usr/X11R6/NX/bin/:
Казалось бы гора с плеч. Ан нет.
Подключиться не удалось
Конфига не оказалось. То есть node.conf.sample был. А вот о node.conf
никто не подумал, да делов то:
[root@ackinak.mob] /usr/X11R6/NX/bin/:cd /usr/X11R6/NX/etc/nxserver/
[root@ackinak.mob] /usr/X11R6/NX/etc/nxserver/:cp node.conf.sample node.conf
Но и тут нас ждал облом:
[root@ackinak.mob] /usr/X11R6/NX/etc/nxserver/:nxloadconfig --check
Warning: Invalid value "CUPS_ETC=/etc/cups/"
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_GNOME=gnome-session"
Users will not be able to request a Gnome session.
Warning: Invalid value "COMMAND_START_CDE=cdwm"
Users will not be able to request a CDE session.
Error: Invalid value "COMMAND_SMBMOUNT=smbmount"
Error: Invalid value "COMMAND_SMBUMOUNT=smbumount"
Warning: Invalid value "COMMAND_CUPSD=/usr/sbin/cupsd"
Users will not be able to enable printing.
Errors occured during config check.
Please correct the configuration file.
[root@ackinak.mob] /usr/X11R6/NX/etc/nxserver/:
Как видите необходимо внести правки. Какие именно указано. Думаю,
проблем не возникнет с указанием нужных конфигов для CUPSD и X-ов.
Остановлюсь на COMMAND_START_GNOME и COMMAND_START_CDE, а так же
smbmount.
Так как FreeNX разрабатывался и для Solaris, где CDE присутствует, а во
FreeBSD такой нет, а на моем ноуте и в помине нет не только CDE, но и
Gnome, то их значения я сменил на startkde, о чем ни грамму не жалею.
Несколько сложнее было с smbmount. Долгое время, минут 15, у меня рука
не поднималась там написать, что-то другое, с точкой вспоминая старые
добрые времена, когда этим самым smbmount активно приходилось
пользоваться, да вот на моей фряхе ее сейчас днем с огнем не сыщешь,
хотя samba и есть:
[root@ackinak.mob] /usr/X11R6/NX/etc/nxserver/:lf /var/db/pkg/| grep samba
samba-3.0.24,1/
[root@ackinak.mob] /usr/X11R6/NX/etc/nxserver/:
Потосковав, сменил smbmount на mount_smbfs и ни грамму не пожалел. Пока.
Хотя стоит оговориться, что smbmount отнюдь не лишний, кто не поленится
и изучит стартовые скрипты - увидит, там он всплывает не один раз.
[root@ackinak.mob] /usr/X11R6/NX/bin/:./nxloadconfig --check
[root@ackinak.mob] /usr/X11R6/NX/bin/:
Вот теперь порядок. Желающие могут еще поправить конфиг, я например на
первых порах включил уровень для логов равный 7.
Кстати, обратите внимание, что я отталкиваюсь от /usr/X11R6/NX/bin/,
пишу :./nxloadconfig , ./nxserver и т.д. Ответ прост - этого пути нет в
переменной $PATH, посему добавьте его туда.
Не радуйтесь, это не все. Проблему будут. И мы будем их решать.
Но сначала ставим клиент.
Установка клиента.
Детальная инструкция с ходом установки находиться здесь - http://www.nomachine.com/documents/client/install.html#2
Впрочем, процесс установки абсолютно прост и не требует заоблачных
знаний, сиди себе и кликай на кнопки Next да Install
Установка соединения, тоже сложности не вызывает: http://www.nomachine.com/screenshot/windows-client-install.php
Мною были проделаны сходные операции:
Как видите никаких различий
Здесь, я выбрал KDE, так как только она и стоит у меня на FreeBSD.
Разрешение 800x600 - что бы видеть все в окне.
Указываю, что хочу еще раз глянуть настройки
Убедившись, что верно сохраняю их
ввожу имя пользователя и пароль и жму ок. вот здесь нас и поджидает
первый облом:
Server not installed or NX access disabled.
Здесь нужно остановиться немного на том, как работает FreeNX. Работает
он до банального просто - через ssh. Ничего нового. Все старо как
мир(пример с уже рабочего сервера):
[skif@ackinak.mob] /usr/X11R6/NX/bin/:ps auxwww | grep nx
skif 1413 3,1 2,1 13428 10596 ?? S 2:01 0:01,42 /usr/X11R6/NX//bin/nxagent -persistent -name NX - skif@ackinak.mob:1005 - Ackinak-mob (GPL Edition) -option /usr/home/skif/.nx/C-ackinak.mob-1005-CA3AC5B0CD718CBC117C5D2507379C24/options -kbtype pc102/en_US -geometry fullscreen -bs :1005
skif 1400 2,8 1,7 12540 8888 ?? S 2:01 0:01,42 /usr/X11R6/NX//bin/nxagent -persistent -name NX - skif@ackinak.mob:1005 - Ackinak-mob (GPL Edition) -option /usr/home/skif/.nx/C-ackinak.mob-1005-CA3AC5B0CD718CBC117C5D2507379C24/options -kbtype pc102/en_US -geometry fullscreen -bs :1005
root 1125 0,0 0,6 6252 3284 ?? Is 2:01 0:00,05 sshd: nx [priv] (sshd)
nx 1127 0,0 0,6 6252 3320 ?? I 2:01 0:00,01 sshd: nx@notty (sshd)
nx 1128 0,0 0,4 3376 2196 ?? Is 2:01 0:00,13 /usr/local/bin/bash /usr/X11R6/NX/bin/nxserver -c /usr/X11R6/NX//bin/nxserver
nx 1261 0,0 0,4 3376 2176 ?? I 2:01 0:00,00 /usr/local/bin/bash /usr/X11R6/NX/bin/nxserver -c /usr/X11R6/NX//bin/nxserver
nx 1262 0,0 0,1 1248 472 ?? I 2:01 0:00,00 sleep 60
nx 1263 0,0 0,4 3376 2176 ?? I 2:01 0:00,00 /usr/local/bin/bash /usr/X11R6/NX/bin/nxserver -c /usr/X11R6/NX//bin/nxserver
nx 1264 0,0 0,4 3376 2176 ?? I 2:01 0:00,01 /usr/local/bin/bash /usr/X11R6/NX/bin/nxserver -c /usr/X11R6/NX//bin/nxserver
nx 1266 0,0 0,6 3372 2836 ?? I 2:01 0:00,04 [ssh]
nx 1267 0,0 0,1 1268 600 ?? I 2:01 0:00,00 tee -a /var/log/nxserver.log
skif 1271 0,0 0,4 3844 2132 ?? Is 2:01 0:00,03 tcsh -c /usr/X11R6/NX//bin/nxnode --startsession
skif 1272 0,0 0,4 3308 2204 ?? I 2:01 0:00,08 /usr/local/bin/bash /usr/X11R6/NX//bin/nxnode --startsession
skif 1393 0,0 0,4 3328 2224 ?? I 2:01 0:00,00 /usr/local/bin/bash /usr/X11R6/NX//bin/nxnode --startsession
skif 1395 0,0 0,1 1280 736 ?? S 2:01 0:00,01 tail -n1 -f /usr/home/skif/.nx/C-ackinak.mob-1005-CA3AC5B0CD718CBC117C5D2507379C24/session
skif 1396 0,0 0,4 3336 2232 ?? S 2:01 0:00,45 /usr/local/bin/bash /usr/X11R6/NX//bin/nxnode --startsession
skif 1397 0,0 0,4 3328 2224 ?? I 2:01 0:00,00 /usr/local/bin/bash /usr/X11R6/NX//bin/nxnode --startsession
skif 1398 0,0 0,4 3312 2208 ?? I 2:01 0:00,01 /usr/local/bin/bash /usr/X11R6/NX//bin/nxnode --startsession
skif 1420 0,0 0,8 6600 4104 ?? IN 2:01 0:00,00 /usr/X11R6/NX//bin/nxagent -persistent -name NX - skif@ackinak.mob:1005 - Ackinak-mob (GPL Edition) -option /usr/home/skif/.nx/C-ackinak.mob-1005-CA3AC5B0CD718CBC117C5D2507379C24/options -kbtype pc102/en_US -geometry fullscreen -bs :1005
[skif@ackinak.mob] /usr/X11R6/NX/bin/:
Обратили внимание? Присутствует пользователь nx. Смотрим, есть ли он в
/etc/passwd. У меня не оказалось, увы.
Трагедии в этом нет:
[root@ackinak.mob] /usr/X11R6/NX/bin/:./nxsetup --help
nxsetup - Setup the FreeNX server.
Syntax: nxsetup --help
nxsetup --install [--setup-nomachine-key] [--uid <nummber>] [--clean [--purge]]
nxsetup --uninstall [--purge]
--help Displays this help message
--install Install nessesary files and add the nx user
--setup-nomachine-key Allow login with the key shipped with the NoMachine
client. This is not as secure, but it simplifies the
configuration of clients.
Use this option at your own risk.
--ssh2 Additionally create commercial pubkey-support, beware
own _commercial_ ssh2-key is not supported!.
--uid <number> The nx user will be given the uid <number>.
--gid <number> The nx user will be given the gid <number>.
--clean Performs an uninstall prior to the installation
--uninstall Remove log and session files, as well as the nx user
--purge Uninstall will remove extra configuration files and ssh
keys as well. Note that node.conf will always be saved.
[root@ackinak.mob] /usr/X11R6/NX/bin/:
Все что нам нужно пустить nxsetup с ключем -install
[root@ackinak.mob] /usr/X11R6/NX/bin/:./nxsetup -install
И в итоге:
[root@ackinak.mob] /usr/X11R6/NX/bin/:less /etc/passwd | grep nx
nx:*:1002:1002:User &:/home/nx/:/usr/X11R6/NX/bin/nxserver
[root@ackinak.mob] /usr/X11R6/NX/bin/:
То что нам и нужно.
Да вот только картинка не измениться. Причина в ключах для ssh:
NX> 203 NXSSH running with pid: 4324
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 10.0.38.239 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.
Если вы собираетесь строить надежный закрытый сервер, колдуйте с nxkeygen:
[root@ackinak.mob] /usr/X11R6/NX/bin/:./nxkeygen
Backing up existing server key to /home/nx//.ssh/server.id_dsa.pub.key.20070311-021451
Backing up existing client key to /home/nx//.ssh/client.id_dsa.key.20070311-021451
Unique key generated; your users must install
/home/nx//.ssh/client.id_dsa.key
on their computers.
То бишь, сей файл нужно на клиентскую машину положить.
Если не можете, не умеете, нет времени или еще какая причина, тоже есть выход:
[root@ackinak.mob] /usr/X11R6/NX/bin/:nxsetup --install --clean --purge --setup-nomachine-key
Removing user nx ...done
Removing session database ...done
Removing logfile ...done
Removing nx home directory ...done
Removing configuration files ...done
Setting up /usr/X11R6/NX/etc/nxserver/ ...done
Generating public/private dsa key pair.
Your identification has been saved in /usr/X11R6/NX/etc/nxserver//users.id_dsa.
Your public key has been saved in /usr/X11R6/NX/etc/nxserver//users.id_dsa.pub.
The key fingerprint is:
fe:90:8b:28:0f:86:63:ce:20:a7:eb:8f:c5:e3:a8:1d root@ackinak.mob
Setting up /var/lib/nxserver/ ...done
Setting up /var/log/nxserver.log ...done
Setting up user nx ...done
Setting up known_hosts and authorized_keys2 ...Setting up permissions ...done
Ok, nxserver is ready.
PAM authentication enabled:
All users will be able to login with their normal passwords.
PAM authentication will be done through SSH.
Please ensure that SSHD on localhost accepts password authentication.
You can change this behaviour in the /usr/X11R6/NX/etc/nxserver//node.conf file.
Have Fun!
[root@ackinak.mob] /usr/X11R6/NX/bin/:
Как видите, nxsetup спасет мир.
Снова соединяемся видим
Вот оно! Добились! Как бы не так. Расслабляться нельзя, подлянки ждут на
каждом шагу. Окошко висит долго-долго.
Вот тут и приплыли. Смотрим лог(жмем Detail)
NX> 203 NXSSH running with pid: 3608
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 10.0.38.239 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
HELLO NXSERVER - Version 1.4.0-44 OS (GPL)
NX> 105 hello NXCLIENT - Version 1.4.0
NX> 134 Accepted protocol: 1.4.0
NX> 105 SET SHELL_MODE SHELL
NX> 105 SET AUTH_MODE PASSWORD
NX> 105 login
NX> 101 User: skif
NX> 102 Password:
NX> 103 Welcome to: ackinak.mob user: skif
NX> 105 listsession --user="skif" --status="suspended,running" --geometry="1024x768x32+render" --type="unix-kde"
NX> 127 Sessions list of user 'skif' for reconnect:
Display Type Session ID Options Depth Screen Status Session Name
------- ---------------- -------------------------------- -------- ----- -------------- ----------- ------------------------------
NX> 148 Server capacity: not reached for user: skif
NX> 105 startsession --link="adsl" --backingstore="1" --nodelay="1" --cache="8M" --images="32M" --media="0" --session="freebsd-mob" --type="unix-kde" --cookie="******" --geometry="fullscreen" --kbtype="pc102/en_US" --screeninfo="800x600x32+render"
NX> 1000 NXNODE - Version 1.4.0-44 OS (GPL)
NX> 700 Session id: ackinak.mob-1006-1866F583237FC76D73E78134D9F623A8
NX> 705 Session display: 1006
NX> 703 Session type: unix-kde
NX> 701 Proxy cookie: 756e512d34720b3f49a5fa3060ff5527
NX> 702 Proxy IP: 10.0.43.242
NX> 706 Agent cookie: 12ada74861e074b4da3f801b0b62079b
NX> 704 Session cache: unix-kde
NX> 707 SSL tunneling: 0
NX> 105 /usr/X11R6/NX//bin/nxserver: line 880: 3224 Terminated: 15 ( sleep $AGENT_STARTUP_TIMEOUT; exit 1 )
NX> 504 Session startup failed.
NX> 1004 Error: nxagent failed to start with: Unrecognized option: 1
NX> 1001 Bye.
Killed by signal 15.
Не весело. Строка 880 ничего ценного не содержит. После долгих гаданий и
взываний к nxnode выяснилось, что для старта нужен бинарник nxagent, а
вот тут и нарисовалось кое-что интересное и новенькое:
[root@ackinak.mob] /usr/X11R6/NX/bin/:nxagent --help
/libexec/ld-elf.so.1: Shared object "libXcompext.so.1" not found, required by "nxagent"
[root@ackinak.mob] /usr/X11R6/NX/bin/:
Опаньки! Библиотеки-то нет:
[root@ackinak.mob] /usr/X11R6/NX/bin/:ldconfig -r | grep libXcompext
[root@ackinak.mob] /usr/X11R6/NX/bin/:
Точно нет.
Надо прописать
[root@ackinak.mob] /usr/X11R6/NX/:ldconfig -R /usr/X11R6/NX/lib/
[root@ackinak.mob] /usr/X11R6/NX/:ldconfig -r | grep libXcompext
769:-lXcompext.1 => /usr/X11R6/NX/lib//libXcompext.so.1
[root@ackinak.mob] /usr/X11R6/NX/:
Ну вот, совсем другой разговор. Для подстраховки
LD_LIBRARY_PATH=/usr/X11R6/NX/lib прописываю у себя и /etc/ld.so.conf
[root@ackinak.mob] /usr/X11R6/NX/:less /home/skif/.cshrc | grep LD_LIBRARY_PATH
setenv LD_LIBRARY_PATH /usr/X11R6/NX/lib
[root@ackinak.mob] /usr/X11R6/NX/:
[root@ackinak.mob] /usr/X11R6/NX/:less /etc/ld.so.conf
/usr/X11R6/NX/lib
[root@ackinak.mob] /usr/X11R6/NX/:
Проверяем работу nxagent:
[root@ackinak.mob] /usr/X11R6/NX/bin/:nxagent --help
Unrecognized option: --help
use: X [:<display>] [option]
-a # mouse acceleration (pixels)
-ac disable access control restrictions
-audit int set audit trail level
-auth file select authorization file
bc enable bug compatibility
......
Вывод достаточно большой и приводить его, как по мне нужды нет. Кому
интересно, пусть сам глянет. Работает, ну и бог с ним.
Наше дело маленькое - соединиться с сервером.
Пробуем и опять ничего. Та же ошибка, тот же лог. Танцы с бубном да и
только. Выход один - изучать nxnode. Да только что? Все хорошо. Казалось
бы пора лог глянуть. Да вот только там ничего нового, тоже что и у
клиента. Ради интереса можете глянуть. Спросите, а где же тот самый,
расширенный 7-го уровня? Хороший вопрос. А он не там. Совсем не там.
Где? Да у вас в папке пользователя на сервере:
[root@ackinak.mob] /usr/home/skif/:lf /usr/home/skif/.nx/
F-C-ackinak.mob-1007-3DA6862AADE632DDD6CC9FA26616DC7A/
[root@ackinak.mob] /usr/home/skif/:
Видите папку(папки) такого вида? Здесь!
[root@ackinak.mob] /usr/home/skif/:cd /usr/home/skif/.nx/F-C-ackinak.mob-1007-3DA6862AADE632DDD6CC9FA26616DC7A/
[root@ackinak.mob] /usr/home/skif/.nx/F-C-ackinak.mob-1007-3DA6862AADE632DDD6CC9FA26616DC7A/:lf
authority options pids/ scripts/ session
[root@ackinak.mob] /usr/home/skif/.nx/F-C-ackinak.mob-1007-3DA6862AADE632DDD6CC9FA26616DC7A/:
Точнее в файлике session:
[root@ackinak.mob] /usr/home/skif/.nx/F-C-ackinak.mob-1007-3DA6862AADE632DDD6CC9FA26616DC7A/:less session
Warning: Option -bs without arguments disables backing-store.
Warning: Use -bs [forced|when_requested|never] to set required mode.
Unrecognized option: 1
use: X [:<display>] [option]
-a # mouse acceleration (pixels)
-ac disable access control restrictions
-audit int set audit trail level
-auth file select authorization file
bc enable bug compatibility
-br create root window with black background
+bs enable any backing store support
-bs disable any backing store support
.......
Полностью лог приводить нет нужды - мы и так схватили ошибку за хвост!
Вот она : "Warning: Option -bs without arguments disables backing-store."
Что в ней такого? Именно это и вызывает "Unrecognized option: 1",
только одна запись в этом логе имеет такую же ошибку, что и в
логе клиента.
Мучать долго не буду:
[root@ackinak.mob] /usr/home/skif/.nx/F-C-ackinak.mob-1007-3DA6862AADE632DDD6CC9FA26616DC7A/:cd /usr/X11R6/NX/bin/
[root@ackinak.mob] /usr/X11R6/NX/bin/:
[root@ackinak.mob] /usr/X11R6/NX/bin/:ee nxnode
Ищем -bs(подсказка, строка 39):
node_start_agent()
{
# close input and output file descriptors
exec 0<&-
exec 1>&-
exec 2>&-
export DISPLAY="nx/nx,options=$USER_FAKE_HOME/.nx/C-$sess_id/options:$display"
export XAUTHORITY="$USER_FAKE_HOME/.nx/C-$sess_id/authority"
export HOME="$USER_FAKE_HOME"
# backwards compatibility
K=""
[ -n "$keyboard" ] && K="-keyboard $keyboard"
[ -n "$kbtype" ] && K="-kbtype $kbtype"
B=""
[ -n "$backingstore" ] && B="-bs $backingstore"
Не знаю, пока, что такое $backingstore - нет желания разбираться, но
именно он корень зла. Убираем его, приводя строку к виду:
node_start_agent()
{
# close input and output file descriptors
exec 0<&-
exec 1>&-
exec 2>&-
export DISPLAY="nx/nx,options=$USER_FAKE_HOME/.nx/C-$sess_id/options:$display"
export XAUTHORITY="$USER_FAKE_HOME/.nx/C-$sess_id/authority"
export HOME="$USER_FAKE_HOME"
# backwards compatibility
K=""
[ -n "$keyboard" ] && K="-keyboard $keyboard"
[ -n "$kbtype" ] && K="-kbtype $kbtype"
B=""
[ -n "$backingstore" ] && B="-bs"
Все, наша работа закончена:
Итоговый скриншот: https://www.opennet.ru/soft/freenx_freebsd_10.pngПодводим итоги:
На все это было потрачено порядка 3-4 часов включая: компилирование
исходного кода, отвлечение на девушку сидящую рядом и готовку чего-нить
перекусить. Конечно танцы с бубном не самое лучше время препровождения,
но что есть, то есть.
Я к исходу этого времени получил доступ к своему ноутбуку и KOffice, а
остальные, думается мысли по поводу, что не Citrix единым жив человек.
Конечно, многие могут возразить - проще было настроить VNC. Проще. Не
спорю. Но я возлагаю, и не без оснований, большие надежды на NXServer и
FreeNX в частности. Это очень хорошая альтернатива Citrix +
Solaris/HP-UX. Конечно есть куча вопросов и претензий у меня к FreeNX,
но прошло всего несколько часов с момента его установки, что бы взвешено
бросаться обвинениями в адрес продукта, но одно могу сказать твердо -
работать с FreeNX гораздо комфортнее, чем с VNC. Уровень комфорта
сопоставим с Citrix и MS TS.
К сожалению, данная статья не рассматривает вопрос работы клиентов
*nix-like ОС. Но мое мнение, что особых проблем в работе возникнуть
недолжно.
Источники:
1. Сайт компании NoMachine http://www.nomachine.com . Все основные
ссылки перечислены по ходу статьи.
2. Собственно стартовые скрипты продукта, подсмотренные при помощи
утилиты less и редактора ee.
3. man ldconfig
Чижиков Владимир (Skif Swarogich)
Ну в принципе за меня ответили. это раз.
Второе, vnc мне в принципе тоже не нравиться. Неудобен. RAdmin по сравнению с ним манна небесная.
По поводу пускания приложений из винды X-вых, коннект к сессиям и т.д. - тоже не любитель всего этого. Сначала поковыряйся на сервере, настрой, потом поковыряйся на клиенте, тоже настрой. Следует не забывать, что клиент - Windows. Ну гемморно это. Когда прижимало, в те редкие моменты, когда у меня стоял Windows на машине - делал, но приятным время припровождением не назовешь. Это третье.
Четвертое. Так как активно не люблю винду, хотя за нее получаю больше всего денег, то люблю "внедрять" решения альтернативные виндузятным. Есть у меня ряд критичных сервисов, которые глюкаво в определенных условиях работают под виндой, но есть аналоги под *nix, причем визуально похожие. Так как пользуется этим в основном руководство, понятное дело, глюкавость не приветствуется.
Ранее извратами занимался, сейчас - достаточно просто и напрямую можно реализовать, через фряху. При этом в настройке может участвовать человек с уровнем подготовки ниже среднего. Думаю проинсталить клиента, да положить ярлык на стол сможет любой мальчишка из службы саппорта.
Посему ставил сие еще из эксперимента - вдруг чего полезного выйдет - vnc настроить никогда ж не поздно.
Вышло. Теперь отрабатываю модели работы.
> 3) А как сделать "б_О_нальный X forwarding" на виндовую машину? (я знаю, но это - ж@%а :-)
Э-э-э? Аффтар никогда не видел PuTTY? Галочку поставить в настройках соединения -- это жопа?
Огромное спасибо автору!
У самого руки растут немного криво, поэтому помучил freenx пару дней и начал строить сервер терминалов на линухе, с помощью 2xterminalserver http://www.2x.com Теперь всетаки сделаю его на любимой фряхе!
Еще раз спасибо!
собственно, всё здоворово, спасибо автору... всё хочу попробовать покрутить NX, да всё времени не хватает.
но для задачи -- получить доступ из удалённой винды к KOffice, несколько странные трудозатраты. ssh (putty) -C -X и XMing в качестве виндового икс-сервера, и вуаля. Пять минут на настройку, вместе с установкой
Извините? что не все исключения помню, при написании буквы "э" после гласных. Издержки, так сказать, новой украинской системы образования, где в ВУЗах русский язык вообще не изучается. Что помнил со школькной скамьи, то и написал.
Хорошая статья, c приколами, чем хорош NX? -статья в "системном администраторе" (NX в 10 раз более шустрый чем VNC)
На сусе NX уже встроеный. Только с лицензиями не понятно-два входа и все-за остальное плати, мы где или как? Господа-срочно нужно лекарство выдумать от такого безобразия!
В принципе, если _подготовить_ почву, то есть, настроить XDMCP, настроить LBX, тогда да, X -query IP.ADDRESS.of.Notebook с Винды быстрее. И работать будет хорошо. :)
Но если хочется потрахаться с FreeNX -- путь автора, несомненно, правильнее. :)
Блиблиотеку прописал, но вылез следующий глюк:
[fsa@fsawork /usr/X11R6/NX/bin]$ ./nxagent [17:28][16:03:2007]
/libexec/ld-elf.so.1: /usr/X11R6/NX/lib/libXcompext.so.1: Undefined symbol "_NXEnableCleanGet"
Однако нет.
/usr/X11R6/NX/bin/nxagent
/libexec/ld-elf.so.1: /usr/X11R6/NX/lib//libXcompext.so.1: Undefined symbol "_NXEnableCleanGet"
Может еще что подправить ? :( {FreeBSD 6.2-RELEASE-p3}
>Однако нет.
>/usr/X11R6/NX/bin/nxagent
>/libexec/ld-elf.so.1: /usr/X11R6/NX/lib//libXcompext.so.1: Undefined symbol "_NXEnableCleanGet"
>Может еще что подправить ? :( {FreeBSD 6.2-RELEASE-p3}
Привет! меня такой-же тупнячок настиг. вставить /usr/X11R6/NX/lib перед /usr/X11R6/lib я не смог, и просто скопировал libX11* из /usr/X11R6/NX/lib в /usr/X11R6/lib
>Привет! меня такой-же тупнячок настиг. вставить /usr/X11R6/NX/lib перед /usr/X11R6/lib я не смог,
>и просто скопировал libX11* из /usr/X11R6/NX/lib в /usr/X11R6/lib
С этим надо быть по аккуратнее - если вам потребуется работать с иксами локально на машине - можете получить опеределенный гемор с приложениями.
а по трафику кто может чего привести?
для XDMCP,VNC и NX соответственно
одно помню раньше пробовал в винды на KDE через XDMCP сожрало около 20 метров только на открытие сессии.
В общем RDP тут и быстрее всех и гибче и нам *nix-ах пока расти и расти до них ;)
Ну тогда стоит Citrix просить вспомнить вновь о unix-like системах. Ибо их продукт для спарковской соляры, hp-ux-а да aix был в миру. А что-что , но Citrix уж получше rdp будет. ica гораздо боле функционален. Главный его недостаток - надстройка над MS TS.
Померить пока нечем, но прикидки на глаз, по счетчикам netstat, дают примерно 400 кб на открытие сессии с fvwm2 ну и примерно 40 - 60 кб/сек в работе. Это при оптимизации LAN
>Народ а кто подскажет, как конектиться к существующей сессии kde например, а
>не запускать новую, те возможно ли использовать freenx как radmin ?
>
нет. FreeNX работает на основе SSH и каждый раз из под пользоывателя nx создает новую сессию. Все что вам остается из под созданной сессии попробовать подцепить screen уже имеющейся. Но у меня на FreeNX это не получалось.
как radmin можно: необходимо чтобы модуль vnc.so был у тебя в иксах (ну или просто по другому запущен)
а в NXclient'е в параметре Desktop вместо юникс надо выбрать VNC и нажать рядом кнопку сеттингс и заполнить остальные параметры
P.S. правда у меня не freeNX а nxserver-freeedition, gentoo собирал с флагами rdesktop и vnc
если мониторить надо другую машину в сети с виндой то аналогично выбрать RDP и параметры - все работает на ура
дополнительные параметры для vnc и rdp можно прописать в конфиге server.cfg
>В общем RDP тут и быстрее всех и гибче и нам *nix-ах пока расти и расти до них ;)
Да, согласен 100%, хотя сам не перевариваю мелковягких
Гибкость ипт, то все фигня,а вот, что даже по gprs можно управлять тачкой-это уже что-то. нам пока такого не дано.
X-ы компресь-не компресь,а все равно жрет прилично и тормозит.пробовал всякие dxpc,фигня.. vnc самый приемлемый из всех,ххотя тоже отстой
Кто как а я вот не могу понять что нужно записать в
#USER_X_STARTUP_SCRIPT=.Xclients
#DEFAULT_X_SESSION=/etc/X11/xdm/Xsession
Ставил из портов, как и в статье.
(Установлено: FreeBSD 7.0 + X.Org X Server 1.4.2 + KDE 3.5.8)
К сожалению, на FreeBSD FreeNX нормально работать не будет, даже если в итоге и поставить тот старый порт, который, к слову уже давно не поддерживается. Если хотите нормально использовать FreeNX, то это возможно только в Linux.
Подскажите чтот сделать у при попытке исправить багу с библиотеками показует такое
zeone# ldconfig -R /usr/X11R6/NX/lib/
ldconfig: /usr/X11R6/NX/lib/: ignoring world-writable directory
можете подробнее описать этот пункт и дать какуюту инфу что сделать чтооб после ребута оно само стартотовало
С предидущей проблемой разобралса но появилась новая при конекте доходит до получения информации сесии и выбивает вот лог
NX> 707 SSL tunneling: 1
/usr/local/NX/bin/nxserver: line 1190: 43001 Terminated: 15 sleep $AGENT_STARTUP_TIMEOUT
NX> 105 NX> 596 Session startup failed.
NX> 1004 Error: NX Agent exited with exit status 1.
Can't open /usr/local/NX/var/db/running/sessionId{9B027469EE43431978F23868AAD96023}: No such file or directory.
NX> 1006 Session status: closed
mv: rename /usr/local/NX/var/db/running/sessionId{9B027469EE43431978F23868AAD96023} to /usr/local/NX/var/db/closed/sessionId{9B027469EE43431978F23868AAD96023}: No such file or directory
NX> 1001 Bye.
NX> 280 Exiting on signal: 15
Просто этой директории у меня сначала небыло создал сам чмод кинул 777 подскажите
"несколько расстроило только сообщение вида"
На много больше расстраивает сообщение:
"nxserver-2.1.0_8 is only for i386, while you are running amd64.
*** Error code 1"