爱编程、爱生活
分类: LINUX
2015-01-07 17:43:12
一、Linux远程桌面控制
1.远程显示协议(Remote Display Protocol )简称RDP。提供C/S之间的连接、提供多通道通信,协议通过TCP/IP进行数据传输,在实际数据前进行了ISO/MCS/SEC三层的包装ISO/MCS两层为多点并发式通信提供了可靠的传输保障,SEC层提供对RDP详细数据的加解密处理。
搭建环境:S端需要设置桌面共享为允许其它设备连接控制、以及sudo apt-get install xrdp来提供协议支持;C端需要利用Remmina远程桌面客户端来进行设置连接的属性要求,然后登录即可远程控制S端。
缺点:图形界面质量不好、操作有延迟;
2.VNC(Virtual Network Computing)是基于RFB(Remote Frame Buffer)协议进行通信的,是一个基于平台无关的简单显示协议的超级瘦客户系统,
RFB (远程帧缓存) 是一个远程图形用户的简单协议,工作在帧缓存级别上,应用于所有的窗口系统,例如:X11,Windows,Mac系统。
远程终端用户使用机器(比如显示器、键盘、鼠标)的叫做RFB客户端,提供帧缓存变化的被称为RFB服务器。RFB是基于tcp的一个应用层协议
搭建环境:S端需要设置桌面共享为允许其它设备连接控制、以及sudo apt-get install xrdp来提供协议支持;C端需要利用Remmina远程桌面客户端来进行设置连接的属性要求,然后登录即可远程控制S端。
3.nomachine
NX 的原理和 VNC 很接近,同样也是通过在远程机器上虚拟一个 Xserver 的方式,将远程的应用程序绘制的图像都绘到虚拟的 Xserver 上,再通过 NX 协议将图像发送到客户端来,并接受客户端的键盘和鼠标事件。
同 VNC 比起来,NX 主要有以下几大优点:
a.速度,NX 协议允许对传输的图像进行压缩,在网络带宽有限的情况下,NX 可以动态地牺牲部分图像质量,获得更流畅的操作效果,而 VNC 受协议限制,无法做这样的动态有损压缩。
b.安全性,VNC 使用自己单独的端口,使用自己定义的协议来传输数据,并且具有自己的一套密码认证方案,因此安全性完全取决于它自身实现的健壮性。NX 使用的是系统 SSH 协议,没有自己单独的一套身份验证机制,因此安全性完全依赖于系统 SSH 的安全性,不会引入新的安全隐患。
c.其它服务的转发。NX 内置了对于文件共享、打印机共享以及本地声音系统共享的转发机制,连接到远程系统的时候可以非常方便地使用本地的资源。VNC 本身是不支持这些操作的,虽然对于高级用户而言,通过各种辅助软件和精妙的配置,以上功能都能实现,但毕竟不如 NX 这样本身内置了全部支持来得方便。
附VNC原理:
a. VNC是把被控制端的屏幕做成图像,经过压缩后传送到控制端,控制端的控制信息(如鼠标信息)传送到被控制端后进入消息队列。
C XS
App
vnc
viewer<==========>Xvnc(vnc
server)<===========>applications
(vnc protocal)
(X protocal)
其控制是基于tcp/ip的,其中vnc
server扮演了双重角色,vnc
protocal是基于RFB
protocal的。
b.VNC使用的截屏方式比较独特,它有两种方式:第一种是使用钩子自动报告需要截屏的区域;第二种是轮询某一个区域(如前景窗口)。截屏后使用某种压缩算法压缩后发送。
c.传输
1.RFB协议传输:
在控之端不能直接改变显示大小,只能进行缩放,如缩放为原大小的几倍。原理是在远程机器上运行一个额外的X服务器,X服务器和客户机器都在远程跑。然后通过RFB协议用自己的客户端显示到本地。
2.X协议:
X 视窗系统提供了一个公开协议,由其客户程序可以查询和更新 X 服务器上的信息。X 视窗系统(X 协议)允许网络中不同计算机上的进程在其它网络显示器上显示内容。