zoukankan      html  css  js  c++  java
  • 远程控制利器vnc

    刘超

    ----VNC软件

    ----在我们的实验室中,经常会进行一些网络设备和系统测试,测试中我们都会搭建一个网络环境来模拟实际应用,并在其中对网络设备和系统进行测试,而在每一个系统中都会有多个Client端PC来模拟网络访问客户端。由于空间和成本的限制,每个系统没有给所有客户端PC都配置一套包括键盘、鼠标和显示器在内的完整的I/O设备,这样管理和维护这些客户端PC就成了个问题。目前比较流行的方式是通过KVM(键盘、显示器和鼠标)共享器来共享一套I/O设备,虽然能够解决这个问题,但是从KVM到客户端的大量连线又成了新的问题。另外在我们对测试环境进行调试的时候,需要不断地在不同的客户端PC和控制台之间穿梭,完成一个测试,往往让我们的工程师疲惫不堪。

    ----同样的问题许多系统管理员也会碰到,在一次大面积的病毒发作和系统更新的时候,系统管理员往往要对近百台PC进行操作,往往让他们焦头烂额,那么有没有办法利用现有的网络对客户端PC进行集中控制和管理呢?答案是肯定的。

    ----远端控制软件可以解决上述问题,它利用软件方式实现计算机的远端集中控制,减少了用户的硬件投资和连线。市场上涌现过很多远端控制软件,像Symantec公司的PCanywhere、Laplink公司的Laplink GOLD、Expertcity公司的GotoMyPC等就是在Windows平台上提供远程控制的软件,其中不乏一些功能强大的软件。连Microsoft为了提高Windows的可管理性,也建立了一套多用户的图形化终端服务。由于各种原因,这些软件并没有提供很好的跨平台解决方法,如果我们的控制端和被控制端运行的是不同的操作系统,这些软件就“英雄无用武之地”了。

    ----VNC的出现给我们提供了一个新的选择。它的全称是Virtual Network Computing,源自AT&T剑桥实验室开发的瘦客户端——ATM网络计算机。ATM 网络计算机是一部有着手写输入和LCD显示器,运行在快速ATM网络环境下的机器,通过和VNC相同的协议连接到高性能的主机上显示主机的桌面,本身不进行任何运算。

    ----VNC就是一个通过软件方式实现ATM 网络计算机模式的软件系统,它是由AT&T开发的一套远程控制的软件,在遵循GPL的条款下进行分发,也就是说它是一个开放源代码的软件。当网络中的计算机安装了相应的VNC 软件后,就可以在计算机上随时建立和取消对远端计算机的管理控制,所以给这个软件起名为“虚拟网络计算机”。由于VNC使用的通信协议RFB(Remote Fram Buffers)是一个开放协议,VNC很快就被很多爱好者移植到各种不同的平台上。现在能够支持的操作系统包括所有Windows 9x/2000/NT/XP、MacOS 8.5以上的版本和大多数的Unix系统,其中也包括Linux。所有不同平台版本的VNC,不管是Server还是Client,都支持VNC的通讯协议RFB,这样就能够很容易地实现不同平台的相互操作。

    ----VNC通常是工作在Server/Client的方式,接下来我们会就VNC Server和VNC Viewer(Client)两部分VNC进行测试试用。

    ----VNC Server

    ----和所有的S/C(Server/Client)相同,VNC Server要正常工作,被远程控制的机器必须操作系统和TCP/IP协议栈都能正常工作,具有能访问到的IP地址,并且启动VNC Server后,才能对它进行远程控制。我们分别在Windows、Mac OS和Unix平台进行了测试试用。

    ----Windows平台下VNC在AT&T剑桥实验室的主页上有完整的安装软件包下载,其中包括了VNC Server/Viewer。和普通的软件一样,执行setup后,所有必需的文件都会被复制到硬盘,同时也会创建一个程序组,其中有一项“Install VNC Server as Service”能够把VNC Server加入到Windows 9x/NT/2000/XP的系统服务中,可以在登录进入系统之前就启动VNC Server,在控制面板中的服务控制里面启动VNC Server服务,并且设置一个访问密码,Windows的服务器端就准备完毕了。

    ----Mac OS平台下VNC Server和普通的Mac OS软件安装相同,只是在软件安装好后,需要添加一个vncpatch到系统,重新启动机器后,就可以启动Server端,设置好访问密码后就可以使用了。NC Server在Windows/Mac OS下的工作结构见图1。

    ----Unix平台下VNC Server在Unix类的系统下工作方式和Windows/MacOS有很大的区别,Windows下的Server端是把整个图形控制台的帧缓存进行复制,并且把来自客户端的控制输入返回给系统,再用RFB把帧缓存的内容传送到客户端进行显示,在Unix下,最常用的GUI结构是基于X-windows协议,其工作方式见图2。

    ----在Unix下,对于以往的X应用程序,VNC就直接充当了X-Server这一角色,把所需要显示的内容直接转换成RFB,在和远端的VNC Viewer连接的时候,直接就可以处理客户端的操作,得到比Windows/Mac OS更高的效率。

    ----NC Server在Unix下的工作结构见图3。

    ----Unix下的VNC Server不需要对软件进行安装,只需要在VNC的网页下载符合使用的Unix版本和硬件结构的二进制可执行文件包,在本地以Root解开,执行Xvnc这个脚本,就会像Windows版本的VNC Server一样,提示输入访问密码,然后就会进入后台,作为一个服务运行。通常还会提问输入X-server的DESKTOP号,在使用客户端访问的时候用到。如果没有合适的系统二进制可执行文件包,还可以下载源代码,根据自己的系统做一些调整,编译好就可以运行了。

    ----VNC Viewer(Client)

    ----所有各种平台上的VNC Viewer都是一个很小的执行文件,通常在100KB~200KB之间,可以把它拷贝到软盘上随身携带。Unix下的VNC Viewer通常会需要X-Server的支持,也有在MicroWindows/Phonto等GUI环境下的VNC Viewer,可以根据自己运行环境去选择合适的客户端,在启动客户端后,只需要输入想远程控制的机器的IP地址,在VNC Viewer连接上远端的机器后,输入访问密码,对方机器的桌面就出现在屏幕上了。如果是Windows/Mac OS的服务器端,看到的就是熟悉的Windows/Mac OS桌面,如果是Unix类的操作系统,就会看到一个X-windows的界面,如果X-windows是XFree86的话,默认的窗口管理器会是TWM,可以像在本地一样对远端的机器操作,VNC Viewer可以同时支持连接管理多个远端主机,这样就可以非常方便地同时控制多台机器。图4图5为在Linux平台下管理一台运行Mac OS系统的苹果机和在Linux平台下管理一台运行Windows系统的PC机的界面图。

    ----VNC还可以工作在另外一种“被动联结方式”,这是一个非常有用的功能,在需要连接到一台在防火墙后面的机器的时候,可以把VNC viewer开启进入Listen模式,让VNC Server按普通模式相反的方向,去联结VNC Viewer,就可以绕过这一障碍,和普通的方式一样,非常方便地去控制远端的机器。

    ----试用后记

    ----在实际使用中还存在一些问题,如果被控制端操作系统或者网络不能正常工作的话,是无法对其进行控制的。这种情况下还得在机器本地进行管理,但是在我们试用过的众多远端控制软件中,VNC是工作效率最高、占用系统资源最小的,而且是惟一一个能够跨越多种平台的自由软件,对于经常要跨越多种平台进行管理维护的专业人员来说是个最好的选择。

  • 相关阅读:
    张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结
    预备作业03——20162329张旭升
    预备作业02 : 体会做中学-20162329 张旭升
    预备作业01——20162329
    FPGA的软核与硬核
    网页调用vlc并播放网络视频
    vue视频插件VLC
    vue+vue-video-player实现弹窗播放视频
    【面向对象程序设计】作业三
    【面向对象程序设计】作业二
  • 原文地址:https://www.cnblogs.com/dayouluo/p/209528.html
Copyright © 2011-2022 走看看