VNC(Virtual Network Computing),为一种使用RFB协议的屏幕画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及实时的屏幕画面。
VNC与操作系统无关,因此可跨平台使用,例如可用Windows连接到某Linux的电脑,反之亦同。甚至在没有安装客户端程序的电脑中,只要有支持JAVA的浏览器,也可使用。
简史
VNC由Olivetti & Oracle研究室所开发,此研究室在1999年并入美国电话电报公司(AT&T)。AT&T于2002年中止了此研究室的运作,并把VNC以GPL发布。
因为它是免费的, 以及可用于数量庞大的不同操作系统, 它的简单,可靠,和向后兼容性, 使之进化成为最为广泛使用的远程控制软件,多平台的支持对网络管理员是十分重要的,他使网络管理员可以使用一种工具管理几乎所有系统。
原来的AT&T版本已经不再使用,因为更多有重大改善的分支版本已经出现, 像是RealVNC, VNC tight 和UltraVNC, 他们具有全面的向后兼容。至少对于基本的远程控制功能而言。 Real VNC 是当前最活跃和强大的主流应用。
VNC对于简单的远程控制几乎完美,但是缺少对于大机构的桌面帮助功能, 主要是日志记录和安全功能没有足以达到此目的。 VNC为远程工作人员或瘦客户机也没有做好准备, 因为目前还没有支持远程应用程序的本地打印。
因为VNC 本来是开发用在局域网的环境, 因此用在互联网上存在安全问题, 当您计划在远程位置访问远程PC,你应该考虑一个专用的调制解调器或ISDN的拨号连接,VPN隧道,所有使用SSL或包裹VNC通信。
参与VNC开发的人员有:
- Tristan Richardson(发明者)
- Andy Harter(专案经理)
- Quentin Stafford-Fraser
- James Weatherall
- Ken Wood
- Andy Hopper
- Charles McLachlan
- Paul Webster
2002年研究室中止运作之后,部份团队中的成员另起炉灶开发出RealVNC。
原理
VNC系统由客户端,服务端和一个协议组成
VNC的服务端目的是分享其所运行机器的屏幕, 服务端被动的允许客户端控制它。 VNC客户端(或Viewer) 观察控制服务端,与服务端交互。 VNC 协议 Protocol (RFB)是一个简单的协议,传送服务端的原始图像到客户端(一个X,Y 位置上的正方形的点阵数据), 客户端传送事件消息到服务端。
服务器发送小方块的帧缓存给客户端,在最简单的情况,VNC协议使用大量的带宽, 因此各种各样的方法被发明出来减少通讯的开支,举例来说,有各种各样的编码方法来决定最有效率的方法来传送这些点阵方块)
协议允许客户端和服务端去协议哪种编码会被使用, 最简单的编码,被大多数客户端和服务端所支持的是, 从左到右的像素扫描数据的原始编码, 当原始的满屏被发送后,只发送变化的方块区域。这种编码在幁间只有小部分屏幕变化的情况下工作的非常好(像是鼠标键在桌面移动的情况,或在光标处敲击文字), 不过如果大量的像素同时变化带宽将会增加的非常高,像是拖动一个窗口或观看全屏录像。
VNC默认使用TCP端口5900至5906,而JAVA的VNC客户端使用5800至5806。一个服务端可以在5500口用“监听模式”连接一个客户端,使用监听模式的一个好处是服务端不需要设置防火墙。
UNIX上的VNC称为xvnc,同时扮演两种角色,对X窗口系统的应用程序来说它是X server,对于VNC客户端来说它是VNC伺服程序。
安全性
VNC并非是安全的协议,虽然VNC伺服程序需设置密码才可接受外来连接,且VNC客户端与VNC伺服程序之间的密码传输经过加密,但仍可被轻易的拦截到并使用暴力搜索法破解。不过VNC可设计以SSH或VPN传输,以增加安全性。
有些VNC软件,如UltraVNC,更进一步支持Active Directory及NTLM的账号密码认证。
VNC软件
由于VNC以GPL授权,派生出了几个VNC软件:
- RealVNC:由VNC团队部份成员开发,分为全功能商业版及免费版。
- TightVNC:强调节省带宽使用。
- UltraVNC:加入了TightVNC的部份程序及加强性能的图型映射驱动程序,并结合Active Directory及NTLM的账号密码认证,但仅有Windows版本。
- Vine Viewer:MacOSX的VNC客户端。
这些软件各有所长,例如UltraVNC支持文件传输以及全屏模式。而这些软件间大多遵循基本的VNC协议,因此大多可互通使用。
另见
外部链接
- VNC AT&T的VNC原始版本存盘页
- Gentoo-wiki/VNC
- RFB 3.8 Protocol Standard
- RealVNC
- TightVNC
- UltraVNC
- Vine Viewer - A VNC client for OSX
- MobileVNC - Server VNC Windows Mobile + Windows CE