图形界面的远程登陆,基于NX技术的freeNX的安装使用详解

因为想把实验室的Ubuntu8主机开个所有同学使用,但是weka和matlab等又必须图形界面登陆,文字的ssh就首先放弃了,考虑到安全性和速度没有使用VNC,Xmanager设置使用都很简单,但是速度实在是非常的慢。

最后锁定nomachine的NX技术,而该公司提供的免费的nx free edition只能让两个用户登陆(除非花钱去买),详细可以看这位兄弟的帖子“的远程桌面连接--安装使用nomachine NX free edition.(不是freeNX)” http://forum.ubuntu.org.cn/viewtopic.php?t=98089

这个帖子我想讲讲免费的freeNX的安装使用,目前freeNX主页没有提供对U8的支持,而且对U7的版本也不能装起来就用,配置文件方面有一些小错误需要使用者自己修改才能正常使用,大部分内容根据网上论坛找到的一些解决方案,但有时会有登陆问题,后来我自己又修改了一些地方。

当然有个前提:服务器必须能正常使用ssh登陆

打开终端,运行

sudo gedit /etc/apt/sources.list

把这个freeNX的源加进去,网上提供的其他源我都试了,我这里只有这个源可以连上

deb http://mirror.ubuntulinux.nl feisty-seveas freenx
deb-src http://mirror.ubuntulinux.nl feisty-seveas freenx

然后下载GPG key,并安装

wget http://mirror.ubuntulinux.nl/seveas.gpg
sudo apt-key add seveas.gpg

更新,安装freeNX

sudo apt-get update
sudo apt-get install freenx

现在安装完了,但是需要做一些修改才能正常使用,主要是因为新系统字体文件位置有所改变

gedit /usr/lib/nx/nxloadconfig

打开,大概是266行,原始的文件是:

[ -z "$APPLICATION_LIBRARY_PRELOAD" ] && APPLICATION_LIBRARY_PRELOAD="$APPLICATION_LIBRARY_PATH/libX11-nx.so.6.2:$APPLICATION_LIBRARY_PATH/libXext-nx.so.6.4:$APPLICATION_LIBRARY_PATH/libXcomp.so:$APPLICATION_LIBRARY_PATH/libXcompext.so.1:$APPLICATION_LIBRARY_PATH/libXrender-nx.so.1.2"

替换成(这么多其实都是一行的内容):

[ -z "$APPLICATION_LIBRARY_PRELOAD" ] && APPLICATION_LIBRARY_PRELOAD="$APPLICATION_LIBRARY_PATH/libX11-nx.so.6.2:$APPLICATION_LIBRARY_PATH/libXext-nx.so.6.4:$APPLICATION_LIBRARY_PATH/libXcomp.so:$APPLICATION_LIBRARY_PATH/libXcompext.so:$APPLICATION_LIBRARY_PATH/libXrender-nx.so.1.2"

还是这个文件的185行,原始的文件是:

AGENT_EXTRA_OPTIONS_X="-fp /usr/share/X11/fonts/misc:/usr/share/X11/fonts/cyrillic:/usr/share/X11/fonts/Type1:/usr/share/X11/fonts/CID:/usr/share/X11/fonts/100dpi:/usr/share/X11/fonts/75dpi:/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType:/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"

替换成(注意:-fp后边有一个空格):

AGENT_EXTRA_OPTIONS_X="-fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi"

再打开另外一个文件

gedit /etc/nxserver/node.conf

在文件最后加入(注意:-fp后边有一个空格):

AGENT_EXTRA_OPTIONS_X="-fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi"

安装完之后可以运行来测试一下NX服务器:

当前状态:
nxserver --status

重启:
nxserver --restart

不过我发现不用增加用户到NX的userlist照样可以登陆使用。

(后来查资料发现新版的freenx,利用PAM去验证,只要用户可以登陆ssh就不用再添加用户到freenx的数据库里面了,很方便。)

Linux上面的客户端,可以去前面提到的源安装:

sudo apt-get install nxclient

winxp上面的客户端,我用nomachine出的,免费的,在这里下载http://www.nomachine.com/download-client-windows.php

下载并安装nxclient-3.2.0-10.exe:session项随意填写,host是218.192.168.15,端口默认22不变,网络连接模式Lan,下一步后选择Unix-GNOM,然后设定以下预期的分辨率比如1024*768,一直默认下一步就配置好了。为了使显示速度快一些,在configure-advanced-cache里面把可用内存全部设置为最大。

然后输入用户名,密码就可以登陆了,速度很快,而且安全,适用于多人需要共享xwindow的场合。

网上最多提出的连接问题:

当xp端连接不上的时候,可能会提示"freenx --status="suspended,running"之类的信息,我是这样解决的。

把xp端的C:\Program Files\NX Client for Windows\share\keys\server.id_dsa.key删掉,这样就可以登陆了。

如果还是不能登陆,复制服务器端/var/lib/nxserver/home/.ssh/client.id-dsa.key到xp端的C:\Program Files\NX Client for Windows\share\keys里面试试?

不过这个key验证的设置应该是在前面提到的两个配置文件中,系统提供好几种验证方式,而key是其中的一种而已,大家可以去探索一下。