CentOS、Ubuntu下安装FreeNX远程桌面

NX 是 NoMachine 公司的一项新的远程桌面的技术,可以提供从 56K Modem 到 LAN 环境下的高效能的远程桌面服务,NX Server是其 Commercial 版本(要钱的),FreeNX 是一个 GPL 的 NX Server,给俺们穷人用的。NX的优势是,可以利用22端口进行SSH加密传输,确保密码等敏感信息不被泄露,而VNC则是明文传输,很容易被抓包后 过滤出帐号密码。

如果在 Fedora Core 2 上尝试一下,参考这篇文章 ,该文作者称 "Once you've started using NX, you'll never go back to VNC.",呵呵。在CentOS 4.4 下安装比较简单,先确保 sshd 服务启动并运行在 22 端口 , 然后检查 expect 和 nc 这个两个包是否安装了。

运行 yum install freenx

server 端的安装就结束了。

接下来需要安装一个 NX 的 client,在 NoMachine 网站上下载,我下载一个 Windows 下的 client,安装完后有一个很重要的步骤,需要将 server 上的 client.id_dsa.key 拷贝到 client 机器上去:server 上的文件路径是
/etc/nxserver/
or
/var/lib/nxserver/home/.ssh/

接下来按下图所示来操作

CentOS、Ubuntu下安装FreeNX远程桌面_第1张图片

CentOS、Ubuntu下安装FreeNX远程桌面_第2张图片

CentOS、Ubuntu下安装FreeNX远程桌面_第3张图片

CentOS、Ubuntu下安装FreeNX远程桌面_第4张图片

CentOS、Ubuntu下安装FreeNX远程桌面_第5张图片

接下来可以开始连接 server,运行 client 后有一个向导程序,可以选择用 Gnome / KDE / CDE、选择分辨率等。需要导入client.id_dsa.key文件到客户端中(见图4、图5),最后记得要勾上 "Enable SSL traffic" 这个选项,完成后就可以连接到 server 了。(Linux下的NX客户端设置方式相同)

NX Web Companion的安装

如果没有客户端,NX是用不了的。不过,NoMachine官方提供了一个名叫NX Web Companion 的插件,服务器端安装了这个插件以后,客户端可以直接用浏览器 登录(客户端的浏览器需要有jre支持),然后自动下载客户端,从而登录。这里说一下这个插件的安装方法。

安装好freenx 的前提下:
首先,到 http://www.nomachine.com/download-companion.php下载该插件,我下载的是rpm版本。
运行 rpm -ivh nxplugin-2.1.0-3.i386.rpm进行安装。
该插件会被自动安装到/usr/NX/目录下
运行 cd /usr/NX/share
将安装好的文件cp到网站的目录下
cp -a plugin /home/www/nx/
plugin是该插件的目录,所有文件都在这个目录下,包括图片、各种操作系统的客户 端等。/home/www/是我的网站的根目录(你的可能和我的不一样)。为了区别于网站的其他文件,我在/home/www/下新建了一个nx目录,并 且将plugin目录cp到了这个目录下。

接下来修改配置文件:
cd /home/www/nx/plugin
vi nxapplet.html
nxapplet.html即是NX Web Companion配置文件,也是客户端需要用到的登录文件。
首 先找到下面的这个选项
<PARAM NAME="SiteUrl" VALUE="http://webserver">
将webserver修改成你的网站域名或IP, 如:www.xxx.com、192.168.0.1
然后保存退出。

同时,该插件的运行还需要一个文件,但安装时是没有生成的, 需要手工建一个空文件。
vi /home/www/plugin/session/session.nxs
直接保存退出 即可。

接下来需要设置一下Apache或者Zeus,你可能认为这 个插件好麻烦,需要做这么多工作。其实,安装这个插件,相当于架设一个小网站。
设置的过程这里就这多说了,为了安全起见,应该在Apache或 Zeus下新建一个Virtual Server。其Document root就是plugin所在目录,比如我的Document root 就是/home/www/nx/
设置好以后,就可以用浏览器登录了。

我在IE里输入http://192.168.0.1 /plugin/nxapplet.html就可以出现一个Java对话框,然后自动下载客户端并自动运行,然后按照前面的方法用客户端登录。记住,这里 登录同样需要导入client.id_dsa.key 这个文 件。

FAQ
1、为什么我在客户机的浏览器里输入地址,老是报错?
这种情况很有可能是路径问题造成的,请修改nxapplet.html 文件,并且检查你的Apache Virtual Server 下的路径。

2、我认为浏 览器登录会不安全,能不能加密传输?
可以的。首先,请确认NX工作正常,即可以从80端口登录到服务器。然后,打开Apache和Zeus的 SSL功能,让Apache和Zeus可以支持https传输(只需要在 NX所在的Virtual Server内设置 就行,不需要修改全局变量)。最后,修改一下nxapplet.html文件。找到<PARAM NAME="SiteUrl" VALUE="http://webserver">,将http修改成 https,当然webserver在前面你已经设置成你的域名或IP了。我需要修改成 <PARAM NAME="SiteUrl" VALUE="https://192.168.0.1">

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

因为想把实验室的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是其中的一种而已,大家可以去探索一下。

你可能感兴趣的:(apache,server,centos,ubuntu,application,library)