虚拟计算工具VNC,源自AT&T Laboratories Cambridge的一个远程访问应用,是一个强大的远程桌面访问和操作工具。它的核心功能是使用户能够使用VNC客户端连接到运行VNC服务器的机器,并且远程使用服务器的桌面。键盘和鼠标动作被发送到服务器,服务器桌面的快照被压缩并且通过VNC协议发送到客户端。一些VNC最具有竞争力的特色包括:优秀的跨平台特性,开发代码、节省的带宽使用和免费下载使用。
为了写这篇综述,我主要从三各方面试用了VNC:稳定性、性能和可移植性。下面我还把VNC与X进行了比较来说明各自的特点和适用范围。在测试中我试用了下面的环境:
局域网:通过100Mbps以太网实现在K6-2 400 (Linux)和PIII 560 (Linux, Win2k)的连接。
宽带网:: 通过768kbps DSL实现在K6-2 400 (Linux)和 PIII 560 (Linux, Win2k)的连接。
modem:在P133 (Linux, Win98)和K6-2 400 (Linux)之间通过33.6kbps调制解调器连接。
我在测试中使用所有的机器分别当做客户和服务器进行试验。在Linux环境下我测试了应用xterm,Netscape 4.7, KDE, StarOffice 5和GIMP等工具。在Windows环境下我测试了command.com , Internet Explorer 5.5, Microsoft Word 2000和Adobe Photoshop.。两个平台都是用了没有修改的VNC当前版本3.3.3r2/3.3.3r9 (Linux/Windows)。
安装和第一印象
在Linux环境下安装Linux非常简单。服务器的配置是通过编辑vncserver Perl脚本来匹配本机的实际配置,编辑VNC的xstartup脚本来匹配自己希望的桌面配置,并必须运行vncpasswd来为VNC服务器设置一个密码。但是需要注意的是如果你是使用Linux系统作为客户端那么你只需要拷贝vncviewer程序到适当的目录下即刻。但是在启动服务器以前你需要进行一些配置,最重要的是密码,启动脚本和分辨率以及颜色设置。你同样要确保VNC加载的默认的桌面不要使用pixmap作为桌面,因为这将严重影响VNC性能。
在Windows环境下安装VNC服务器类似于在Linux环境下的安装:首先解压安装文件,运行setup就可以实现vnc服务器的安装。就象Linux版本一样,如果你仅仅是希望使用vnc客户端,那么只要将vncviewer.exe拷贝到适当的目录下,而无需在本机安装服务器。windows环境下的VNC服务器的用户接口对于大多数人来说更易于配置。windows平台上的一个明显的限制是当连接windows的VNC服务器时,会连接到当前控制台的桌面的同一个桌面上,而不是专门为VNC服务器创建专门的虚拟桌面。这是由于windows用户接口固有的单用户特性,而且没有什么好的方法来修补这种缺陷。总的来说在windows系统上安装VNC基本上没有什么困难。
性能测试
我第一个测试是在局域网环境下进行的。在这种配置下的性能(K6-2的Linux系统和PIII的1024x768真彩色的Win2k系统通过快速以太网互相连接)非常好,无论是linux访问linux还是linux访问windows或是windows访问linux,性能基本上是一样的。但是在更新屏幕时可以看到可以感觉到的延时,所有测试应用程序都是可用的。xterm则感觉象是在本地操作一样快捷。加载StarOffice和打开文档同样很完美;Netscape运行情况也很良好,GIMP虽然缓慢但是还是可用的。windows应用大多数也工作很良好,总的来局域网情况下说性能都是可以接收的。
我的第二个测试是在宽带网环境下进行的,测试条件是很常见的,而且对于大多数应用来说是足够了。一些常用应用如StarOffice和MS Word在DSL环境下都是可以接受的。而基于命令行的环境的应用(xterm和cmd.exe)则没有任何问题。而浏览器的性能也是可以接受的。这就大大提高了VNC的适用性,因为很多小企业和很多家庭用户都是通过DSL或类似性能的接入方式接入到Interenet的。我发现性能不可接受的应用主要是GIMP和Photoshop这样的图形工具。但总的来说基于DSL的VNC是具有很高的可用性的。对于访问大多数常用工具,基于DSL的VNC性能是可以容忍的。
最后一种测试环境是K6-2 linux通过一个33.6kbps链路连接Pentium 133的机器。由于考虑到ppp链路的性能原因,这里的VNC服务器采用了16位色,800x600的分辨率环境下进行的测试。测试的结构可以用一个词来描述:慢。我建议大家最好不要企图通过modem拨号链路来进行VNC连接。在测试中只有StarOffice, Word和命令行应用具有一定的可用性,其他应用响应则非常缓慢。我试图同时运行Netscape和nternet Explorer,但是加载页面的过程太过于缓慢。虽然基于拨号链路的VNC连接在一定程度上具有可用性但是推荐只有在没有其他选择时在考虑它来进行一些基本的应用。
那么X怎么样呢?
读完该文章以后,我确信有些读者开始想为什么要那么麻烦使用VNC,而不使用其他一些优秀的远程图形访问工具X呢?这是一个很好的问题,而答案也非常直接。在特定的环境下,VNC比X具有一些很强的优势,特别是在跨平台性,安全性,客户端状态连续性以及客户端小巧性等方面。而X则往往不具有跨平台性,而且不是开放[url=http://www.pccode.net].net" class="wordstyle"源码的。
注意
你也需会需要对你的使用习惯进行一定的修改来提高效率,主要是在屏幕滚动方面。因为VNC是一个抽象工具,和客户机本机的图形系统并没有直接联系(例如在图形加速方面),它仅仅把屏幕看做一个位图图片加以显示,而并不是象X或windows GDI那样工作。这是因为这个原因,系统会重画整个屏幕的,即使你仅仅是滚动了一行文档。因此这里推荐使用VNC时应该适应滚动文档时一次滚动一页而不是每次一行因为这样可以减少滚动次数,从而减少屏幕重画次数以提高效率。在电子表格或文字处理应用中,如果被处理的文档有很多的图标时,使用GIMP、photoshop等图形应用察看一个图片时,或使用浏览器浏览网页时,使用页滚动将很显著的提高VNC的效率和速度。对于那些很多使用了windows的平滑滚卷特性的应用来说这也是一个问题,由于GDI对该功能进行了加速以提高性能,VNC就不能正确地跟踪当前屏幕影像,从而不能正确在远端重画屏幕。因此需要关闭在图形控制特性面板的显示特性中关闭图形加速特性。
底线
VNC目前是一种更可以接收的程序。它是由一个来自AT&T Laboratories Cambridge的致力于研究的小组开发的。它遵循GPL授权许可声明。VNC特别适合于哪些跨平台的远程访问环境中,我向任何寻找图形远程访问工具的人推荐该程序。