快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
Crazier
帖子: 1051
注册时间: 2007-09-23 17:06
送出感谢: 1 次
接收感谢: 8 次
联系:

快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#1

帖子 Crazier » 2011-03-29 15:58

先夸奖一下NX吧:NoMachine NX 是一个快速终端服务和桌面虚拟化系统,由于它对X11的流进行了压缩,所以远程桌面的时候它能提供快速的访问,减少延迟;而做为虚拟化系统,它可以提供真正的图形化多用户环境,比如你登录远程服务器,它会全新给你打开一个桌面,而不是直接登录已经打开了的桌面。当然,如果你想直接登录已经打开的桌面也是可以的。另一个就是它是多协议支持 VNC,及windows的RDP。

再认识一下什么是NX吧:

199x年,满怀梦想的Keith Packard,当时工作于SuSE,是XFree86的核心开发成员,一心想要开发一个在低带宽下依然性能完好的传输协议(LBX - Low Bandwidth X)。他为了LBX倾注心血,将LBX视为自己的孩子,然而最后他还是失败了,LBX最终并没有得到广泛应用。原因是LBX的性能还不够好。于是,他在2001年写一篇LBX的验尸报告 - An LBX Postmortem,以告慰后人,想要实现这样一个高性能的协议是多么的不可能。

2001年3月,XFree86的邮件组里横空出现了一篇题为About our effort at NoMachine的文章,作者是Gian Filippo Pinzari。文章隆重的介绍了经过作者三年研究,在低带宽下依然工作良好的,兼容RDP,VNC等协议的NX协议。Gian将NX的核心组件基于GPL开源出来,他说,“它就在这,大家都来用吧!”。

Gian的公司NoMachine开发的NX Client、Server等都是收费的产品。但是NX核心组件是开源的,于是出现了大量的开源的NX Client和NX Server。比如,NX Client就有OpenNX,QtNX,NX Server又有FreeNX,NeatX等等。

NoMachine的NX是如何做到的呢?NoMachine的秘密,主要有三个:
1. 在X协议的基础上,使用优化的压缩算法,进行压缩传输。压缩比达到10:1,甚至100:1。
2. 在客户端和服务端使用了缓存机制(Cache),避免同样的数据进行不必要的重复传输。
3. 减少客户端与服务端请求、回应的时间。


NX使用

NoMachien的NX面向C/S的,所以它分为两部分:NX Client和NX Server。NX Server是安装在服务器端,来开启服务器端的Nx功能。的部署见文档,还不算复杂。部署完成后,就可以使用NX Client进行连接了。NX Client有Windows版本,Linux版本,Mac版本和Solaris版本。

以上引自:http://www.cnblogs.com/coderzh/archive/ ... chine.html

下面就来说一下安装吧:

1. 因为Nx通过SSH隧道通信,所以先要确保你的系统安装了openssh
如果没有安装,在Ubuntu中,默认是安装了ssh-client的,那就:
sudo apt-get install openssh-server
2.在服务器端安装:nxclient nxnode nxserver
到网站:http://www.nomachine.com/download-packa ... od_Id=2520
下载 NX Free Edition for Linux 中的三个软件 nxclient nxnode nxserver
为什么安装服务器,要下载三个呢?网站是这么说明的:The client is needed because it ships libraries used by the node. The node is needed because it ships tools needed by the server
所以呢,这三个软件是要按顺序安装的,先安装 Client->node->nxserver

安装nxclient:
sudo dpkg -i nxclient_3.4.0-7_i386.deb
终端会有提示
Selecting previously deselected package nxclient.
(Reading database ... 324917 files and directories currently installed.)
Unpacking nxclient (from nxclient_3.4.0-7_i386.deb) ...
Setting up nxclient (3.4.0-7) ...
Showing file: /usr/NX/share/documents/client/cups-info

CUPS Printing Backend

The NX Client set-up procedure detected that your "IPP CUPS" printing
backend doesn't allow printing from the NX session. In order to have
printing support in your NX system, you need to set proper permissions
on the IPP backend. Please execute:

chmod 755 /usr/lib/cups/backend/ipp
所以执行一下:
sudo chmod 755 /usr/lib/cups/backend/ipp
再依次安装nxnode,nxserver:
sudo dpkg -i nxnode_3.4.0-16_i386.deb
sudo dpkg -i nxserver_3.4.0-17_i386.deb

安装结束

OK,检查一下安装是否成功:
sudo /usr/NX/bin/nxserver --status
如果输出是下面的就表示成功了:
NX> 900 Connecting to server ...
NX> 110 NX Server is running.
NX> 999 Bye.
如果不成功,那就到新立得找到这个三个软件,把它们彻底卸载,再按照上面重新安装。
下面的一些命令也许你会用到:
/usr/NX/bin/nxserver --help
--useradd
--userdel
--passwd
--userlist
--start
--stop
--status
--restart

sudo /usr/NX/scripts/setup/nxserver --keygen 生成密钥
到现在为止,服务器端已经安装成功,不需要设置其它的,就已经可以用了。如果你想再有针对性的进行设置,可以看看这个配置文件,相关的文件是:
/usr/NX/etc/node.cfg
/usr/NX/etc/server.cfg
如果你要修改与通信端口与认证方式的设置,还要修改ssh的相关配置,而SSH的配置文件是:
/etc/ssh/sshd_config
关于进一步的设置,稍后说一下。

服务器端的配置说明:
如果你出于安全的考虑,想修改SSH的默认端口,比如修改成5678,那要修改以下文件:
/etc/ssh/sshd_config 中的

代码: 全选

Port 22
改成

代码: 全选

Port 5678
/usr/NX/etc/node.cfg中的
#SSHDPort = "22"
改成(去年注释号“#“)
SSHDPort = "5678"
/usr/NX/etc/server.cfg中的
#SSHDPort = "22"
#SSHDAuthPort = "22"
改成
SSHDPort = "5678"
SSHDAuthPort = "5678"
修改完配置之后要重启服务人员,重启SSH和Nxserver
sudo /etc/init.d/ssh restart
sudo /etc/init.d/nxserver restart
另注:
对于服务器做下面一引动配置可令系统更加安全
/usr/NX/etc/server.cfg中的的
EnableAutokillSessions
EnableUnencryptedSession
两项分别修改成下面的样子:
EnableAutokillSessions = "1"
EnableUnencryptedSession = "1"

其中 EnableAutokillSessions = "1" --意思就是允许自动结束会话
比如已经到达系统所能达到最大的会话数,它就会自动Kill旧的而给新的Session资源来建立。
EnableUnencryptedSession = "1" --意思就是加密会话连接,如果不启用的话,那通话的安全性就取决于客户端了,客户端想加密就加密,不想加密的话也是可以的。那它就会允许不加密的会话。

下面说一下
客户端的安装配置:


根据你的客户端系统安装相应的版本。http://www.nomachine.com/download.php,这个就不用说的太多了。如果你的系统仍是Ubuntu,直接用上面已经下载的nxclient就可以了。
安装完成后,会在Application-》Internet看到该软件的菜单,然后打开NX Connection Wizard
如下图:
screenshot2.png
NX Connection Wizard
点击下一步:如图
screenshot4.png
在上图中的:
Session:即是你想给这个连接命的名字,这个随你的意,只要方便记忆,方便识别你的这个连接是跟谁连接即可;
Host:这里就是你的服务器端的IP地址,或者是域名都可以;
Port:SSH的端口,默认的SSH端口是22,所以这里要填22,如果你为了安全,修改了端口号,记得这里也要改成相应的端口号哦。

再点击下一步:这一步没有什么好说的,选择 生成桌面图标即可,这样子,下次直接点击就能快速连接了。
screenshot5.png
现在直接点击桌面上已经生成的图标,如下图:
screenshot7.png
screenshot7.png (18.2 KiB) 查看 6771 次
选择Configure进行一些其它的配置。
screenshot6.png
在上图中Desktop需要说一下:
点击Desktop可以看到:Unix,Windows,VNC,和Shadow。下面一一解释:
Unix:如果你的服务器端是Linux,那就要选择这个了,一旦选择这个,那你连接成功之后就会全新的打开一个桌面,就借刚开机的样子一样。如果你想帮朋友解决他正遇到的问题,那不能选择这个,选择Shadow;
Windows:如果你想连接的是Windows XP 等,那就要用这个,对了,它是只支持RDP协议的,到现在我都没实验成功过,如果有成功用NX连接上WINdows的,请告知一下。 :em06

VNC:就是支持VNC协议,具体没有试过。
Shadow:也就是影子的意思,我的理解就是直接克隆你的桌面,而不是新建一个独立的桌面。论坛里有人提问过这个问题,就说为什么能过客户端进去之后不能看到原来打开的程序,好像开机的样子,就是因为没有选择这个选项的原因。

而下一个选择框里有:GNOME,KDE,CDE,XDM,根据你自己的桌面选择相应的即可,还要说一下的是CUSTOM,这个很有意思,你选择它之后,可以再进一步点击后面的 Setting ,如下:你可以选择Run the following command,再填进去一个命令,这个时候,你就不会打开整个桌面了,而只是打开了你与命令关联的程序。比如我输入的是stardict,那就打开了这个程序,轻松实现了软件共享。很爽! :em11
screenshot9.png
screenshot9.png (23 KiB) 查看 6769 次
其它的设置就不是太重要了,一般用不上。如果你有特殊需要,可以看看,说不定会实现你的梦想呢!
在上面完成对客户端的设置之后,你就可以直接点击桌面的图标输入用户名和密码了。
这里默认你Linux系统的用户名和密码就是可以的。 你可以试试。如果你想增加其它用户也是可以的。下面会讲到。

如果系统默认的密码认证方式还不能够令你放心,或者你用的SSH本就是关闭了密码认证,只开启了公钥、私钥认证,那下面的内容你就要看一下了。

如果你在/etc/ssh/sshd_config里这样子设置,
PasswordAuthentication no
禁用了密码认证,也就是只能通过Key的方式认证,因为NX是通过ssh认证的,所以NX的配置也要做一些修改。
1. /usr/NX/etc/server.cfg文件里把下面三项设置成这个样子:
EnableUserDB = "1"
EnablePasswordDB = "1“
EnableUnencryptedSession = "0"
2.因为已经禁用了默认的系统密码认证,那这个时候系统默认的帐号是不能用,所以要生成新的用户。

代码: 全选

sudo /usr/NX/bin/nxserver --useradd test 
上面的命令是添加新用户test,这里的用户可以是你系统里已经有的,也可以是系统里没有的。执行这个命令的时候会提示你输入密码,密码可以与你系统原有帐号的密码一样,也可以不一样。
NX> 900 Setting password for user: test.
NX> 102 Password:
NX> 102 Confirm password:
NX> 110 Password for user: test added to the NX password DB.
NX> 900 Adding public key for user: test to the authorized keys file.
NX> 716 Public key is already present in: /home/test/.ssh/authorized_keys2.
NX> 900 Verifying public key authentication for NX user: test.
NX> 900 Public key authentication succeeded.
NX> 301 User: test enabled in the NX user DB.
NX> 999 Bye.
3.因为已经禁用了密码认证了,那就要用NX自带的Key认证了。
在服务器端执行
sudo /usr/NX/bin/nxserver --keygen
会在目录/usr/NX/share/keys/下面生成default.id_dsa.key这个文件,下面你要做的就是把这个文件的内容复制到客户端里的Configure——》General——》Key里面即可。这个时候你就可以用你刚刚生成的用户,和这个key来登录了,即使别人有你的你用户名和密码,如果他没有这个key文件,他也也是不能登录你的系统的。

另外:
如果你已经SSH登录设置了用户限制,即在 /etc/ssh/sshd_config文件里有下面这一项
AllowUsers your_user_control_list
那就要把nx加入到这一行里最后,即允许NX 通过ssh,因为NX是通过SSH隧道,使用nx这一用户认证的嘛。所以最后把这行改成这样子就行了:
AllowUsers your_user_control_list nx
NX 常用快捷键:

Ctrl + Alt + T 终止会话
Ctrl + Alt + F 全屏切换
Ctrl + Alt + M 最小化 NX 窗口

参考:http://www.benmccann.com/dev-blog/2011/02/
http://www.cnblogs.com/coderzh/archive/ ... chine.html
http://www.nomachine.com/ar/view.php?ar_id=AR01C00126
上次由 Crazier 在 2011-09-16 17:13,总共编辑 8 次。
可可火山
帖子: 4
注册时间: 2009-07-22 1:09
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#2

帖子 可可火山 » 2011-03-29 17:58

不错的教程,我记得还有一步是要把需要登录的用户加到NX server中,还要配置需要登录用户与nx用户间的ssh key认证。
可能是另外的认证方式,这点自己上次配置时也有点迷糊。
头像
Crazier
帖子: 1051
注册时间: 2007-09-23 17:06
送出感谢: 1 次
接收感谢: 8 次
联系:

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#3

帖子 Crazier » 2011-03-29 18:02

可可火山 写了:不错的教程,我记得还有一步是要把需要登录的用户加到NX server中,还要配置需要登录用户与nx用户间的ssh key认证。
可能是另外的认证方式,这点自己上次配置时也有点迷糊。
是的,认证方式的确是可以改变的,默认的系统是用的是系统自带的key,如果你觉得不安全可以更新key的。明天我会事理出来,再下来的。
头像
cupid1984
帖子: 3
注册时间: 2011-04-03 20:25
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#4

帖子 cupid1984 » 2011-04-09 17:34

楼主大大,先谢谢你的帖子和耐心啊。
我是一个使用Ubuntu不到一周的菜鸟,昨天晚上到现在,花了很多时间弄远程桌面,看了你的帖子终于有点懂了,
但是照着配了一下,还是连不上啊,不知道什么原因,下面是客户端的报错信息:
NX> 203 NXSSH running with pid: 5692
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: 172.17.110.71 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.
能不能帮我看看啊。
头像
cupid1984
帖子: 3
注册时间: 2011-04-03 20:25
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#5

帖子 cupid1984 » 2011-04-09 17:42

cupid1984 写了:楼主大大,先谢谢你的帖子和耐心啊。
我是一个使用Ubuntu不到一周的菜鸟,昨天晚上到现在,花了很多时间弄远程桌面,看了你的帖子终于有点懂了,
但是照着配了一下,还是连不上啊,不知道什么原因,下面是客户端的报错信息:
NX> 203 NXSSH running with pid: 5692
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: 172.17.110.71 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.
能不能帮我看看啊。
从错误信息看,使用的用户名是nx,但是我登陆的时候用的用户名是我ubuntu上面的wangzl这个用户啊。
顺便描述一下我的情况啊:
我在我办公室电脑上装了ubuntu,然后在实验室用我的笔记本(win7系统)远程办公室电脑,连不通啊
前提是:
办公室和实验室的网段是不一样的,一个是172.17.110网段,一个是192.168.129网段
如果我把笔记本放在办公室,然后去远程我的台式机就没有问题
但是从实验室去远程,就连不上,ping能ping通的
办公室台式机ubuntu系统上已经加路由了
我又做了一个测试,我把笔记本插办公室网线,然后在实验室找一台windows的系统远程连我的笔记本(win7系统),是可以的
还有一个问题是windows默认的远程桌面端口3389被禁用了,所以我修改了远程桌面的端口为6666,但是从实验室远程办公室电脑,windows-windows是可以的,windows-ubuntu就不行,实在不知道什么原因啊。。。
头像
123rps
帖子: 189
注册时间: 2009-04-30 16:17
送出感谢: 0
接收感谢: 1 次

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#6

帖子 123rps » 2011-04-09 18:50

收藏一下
东西大街南北走
出门碰到人咬狗
搬起狗来砸砖头
却被砖头咬了手
OpenOffice.org Math公式编辑器完全教程
头像
Crazier
帖子: 1051
注册时间: 2007-09-23 17:06
送出感谢: 1 次
接收感谢: 8 次
联系:

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#7

帖子 Crazier » 2011-04-14 10:15

cupid1984 写了:
cupid1984 写了:楼主大大,先谢谢你的帖子和耐心啊。
我是一个使用Ubuntu不到一周的菜鸟,昨天晚上到现在,花了很多时间弄远程桌面,看了你的帖子终于有点懂了,
但是照着配了一下,还是连不上啊,不知道什么原因,下面是客户端的报错信息:
NX> 203 NXSSH running with pid: 5692
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: 172.17.110.71 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.
能不能帮我看看啊。
从错误信息看,使用的用户名是nx,但是我登陆的时候用的用户名是我ubuntu上面的wangzl这个用户啊。
顺便描述一下我的情况啊:
我在我办公室电脑上装了ubuntu,然后在实验室用我的笔记本(win7系统)远程办公室电脑,连不通啊
前提是:
办公室和实验室的网段是不一样的,一个是172.17.110网段,一个是192.168.129网段
如果我把笔记本放在办公室,然后去远程我的台式机就没有问题
但是从实验室去远程,就连不上,ping能ping通的
办公室台式机ubuntu系统上已经加路由了
我又做了一个测试,我把笔记本插办公室网线,然后在实验室找一台windows的系统远程连我的笔记本(win7系统),是可以的
还有一个问题是windows默认的远程桌面端口3389被禁用了,所以我修改了远程桌面的端口为6666,但是从实验室远程办公室电脑,windows-windows是可以的,windows-ubuntu就不行,实在不知道什么原因啊。。。

你好,你说这是两个网段,但是又可Ping通,你是不是在路由器里做了端口映射啊。你的192的网段是不是通过网通或电信连接上网的,而172的网段又是你们的另一个网段啊?
你说能从win-win连通,这个也好解释,它们的协议是一样的,都是RDP;
而win-ubuntu则不通,因为默认的win是不支持ubuntu的远程桌面协议VNC或者其它的。所以你要想win-ubuntu则需要安装相关的软件,你可以试试realvnc
至于你说的Nx无法连接的问题,你先要确认用ssh是否能远程连接你的电脑,如果不能贴出你的ssh和NX的相关配置,我再帮你看看。
dowelldram
帖子: 16
注册时间: 2009-08-31 22:01
来自: NEU
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#8

帖子 dowelldram » 2011-04-18 18:04

想问一下楼主:
我想通过家里的计算机远程登录公司的电脑,但是我们没有路由器的密码(无法从管理员那里弄到,故不知如何做端口映射),想问一下有什么高招没?
头像
Crazier
帖子: 1051
注册时间: 2007-09-23 17:06
送出感谢: 1 次
接收感谢: 8 次
联系:

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#9

帖子 Crazier » 2011-04-19 16:35

dowelldram 写了:想问一下楼主:
我想通过家里的计算机远程登录公司的电脑,但是我们没有路由器的密码(无法从管理员那里弄到,故不知如何做端口映射),想问一下有什么高招没?
这个我还真不知道,不过前段时间看到论坛里有人和你的情况一样,有人建议说是用什么 木马或是 花生壳之类的。你可以找一下,但是应该比较麻烦。
drl_snake
帖子: 2
注册时间: 2011-08-06 11:39
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#10

帖子 drl_snake » 2011-09-02 15:56

为什么我增加用户和设置密码后,没有生成SSH key2?
搞得现在用户认证不了~
头像
灰色小狼
帖子: 4572
注册时间: 2008-12-06 10:38
系统: Arch
送出感谢: 21 次
接收感谢: 30 次

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#11

帖子 灰色小狼 » 2011-09-02 16:06

直接ssh过去嘛好了,省牛量 :em05
drl_snake
帖子: 2
注册时间: 2011-08-06 11:39
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#12

帖子 drl_snake » 2011-09-02 17:14

灰色小狼 写了:直接ssh过去嘛好了,省牛量 :em05
主要是想试试Nomachine NX的速度,现在刚学linux,玩VPS,呵呵~
by780g
帖子: 129
注册时间: 2010-01-06 11:50
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#13

帖子 by780g » 2011-09-16 15:37

做个记号 :em11 :em11
mces89
帖子: 5
注册时间: 2009-03-18 18:36
送出感谢: 0
接收感谢: 0

Re: 快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)

#14

帖子 mces89 » 2011-10-19 18:31

试了下,用win7连接ubuntu11.10,没有成功...,直接ssh是可以连接的。
回复

回到 “服务器基础应用”