VNC不同软件之间的联系与区别

2017-02-26 15:53:12
啊超
13411
最后编辑:啊超 于 2017-02-26 16:52:41

如果不是经常远程不建议使用VNC,毕竟比较耗资源

不建议使用vnc,
如果只是使用文件服务,可以通过ssh协议的客户端访问过去操作。
现在gnome,kde, unity都是内置的,只要远程开ssh服务,就可以像操作本地文件系统了,包括用本地的office编辑远程文件,
个人感觉使用起来,非常方便,除了打开存储文件需要走ssh网络通信


vnc比较耗带宽资源,难道你硬生要远程访问firefox,打开网站看视频么,这种需求vnc只有能满足你。
linux选择比较多,我这边只是随便说说。大部分情况下,用好ssh就可以了


VNC由Olivetti & Oracle研究室所開發,此研究室在1999年併入美國電話電報公司(AT&T)。AT&T於2002年中止了此研究室的運作,並把VNC以GPL釋出。


由於VNC以GPL授權,衍生出了幾個VNC軟體:

RealVNC:由VNC團隊部份成員開發,分為全功能商業版及免費版。 
TightVNC:強調節省頻寬使用。 
UltraVNC:加入了TightVNC的部份程式及加強效能的圖型映射驅動程式,並結合Active Directory及NTLM的帳號密碼認證,但僅有Windows版本。 
Vine Viewer:MacOSX的VNC用戶端。 
這些軟體各有所長,例如UltraVNC支援檔案傳輸以及全螢幕模式。而這些軟體間大多遵循基本的VNC協定,因此大多可互通使用。

http://www.realvnc.com/   REALVNC

http://www.tightvnc.com/   TIGHTVNC

http://ultravnc.com/        ULTRAVNC


简单地讲VNC是一款远程控制软件。与其他远程控制软件不同的是:

    1.工作在帧缓冲级别(framebuffer level),具有非常好的跨平台性,可以很好的工作具有最简单图形渲染引擎的超级瘦终端平台上。

    2.能够很好的实现桌面的共享,实现多个客户端同时共享同一个桌面环境。

    3.也正是因为运行在帧缓冲级别,所以传输数据量较大。但VNC提出的历史背景就是牺牲带宽,换取超级瘦终端环境。

    VNC是由英国剑桥大学ORL实验室研发的一款超级瘦终端系统。它以1998年 IEEE Internet Computing一篇论文《Virtual Network Computing》的形式而问世。在这篇论文里面讲到了VNC软件的产生背景和应用场景,以及部分内容的原理(截取并以不同编码方式发送相继屏幕图像的差异部分)。数据传输不一定要使用TCP/IP,还可以是IrDA,蓝牙,IEEE-1394,USB),但其谈及的层次也仅仅是科普级别介绍,并没有对协议内容,软件架构,功能模块,原理机制等做详细说明。

   2001年俄罗斯一名研究生Konstantin V Kaplinsky在Modern Technique and Technologies 上发表的《VNC TIGHT ENCODER》中创新性的提出了一种新的VNC编码方式:tight,并以开源VNC为基础加以代码实现,发布了开源版的tightvnc,并由Konstantin团队不定期做版本更新,其中最为稳定的是V1.3版,最近发布了V2.6版本。官网为http://www.tightvnc.com,具有windows,Linux的开源实现。

   在不久之后,以tightvnc开源实现的turbovnc1.0也发布了。turbovnc官网地址为http://www.virtualgl.org,主要由VirtualGL团队维护。turbovnc是在tighvnc的基础上增加了libjpeg库,使得其在远程会话中播放视频应用和运行3D程序上得到很好的效果。实验证明,turbovnc确实比tightvnc在会话中播放视频流畅许多。

  另一方面,原标准VNC团队部分成员组建RealVNC公司,并主要开发和维护商业版本的VNC软件:RealVNC。

  还有一款主要在windows平台上使用的VNC软件是ultravnc。其官网是http://www.ultravnc.com,目前也是开源项目。

  目前使用频率最多的VNC软件系列主要是TightVNC,TurboVNC,RealVNC,UltraVNC,大部分都是开源项目,分别由不同的团队进行不定期的bug修复和维护。学习VNC之前有必要对各个版本的VNC进行简单的使用和性能观察,了解各个版本在不同平台上的表现如何。一般而言,在Linux环境下使用TightVNC或TurboVNC做服务端。在Windows环境下,使用UltraVNC,RealVNC做服务端,最近TightVNC在2.6版本中对其在WIndows平台下进行了优化。  

  虽然,截止目前为止有许多的VNC软件,但它们都遵循了VNC软件的基础协议RFB(Remote Framebuffer )协议,并且图形截取发送与接收渲染都运行在帧缓冲级别,所以能够做到不同客户端,不同服务端以及不同操作系统平台的相互兼容。例如可以使用Windows平台上的ultravnc客户端连接linux平台上的tightvnc服务端,但这种兼容都是以看齐标准VNC而实现的,所以同时丢失了ultravnc和tightvnc在标准VNC上的性能改进。所以为了最大限度的发挥某个版本VNC软件的性能,首先必须保证使用同一款同一版本的服务端和客户端软件;然后了解该软件最适用环境平台,比如UltraVNC,TightVNC都有其在Windows平台的插件,用以提高屏幕变化的截取,编码发送的速度;最后,对TCP/IP协议栈进行调优,比如设置捎带,设置发送窗口大小(这方面的内容介绍将在以后介绍)。

   结束:第一篇主要对VNC进行了科普性的简单介绍。


以下是所有与VNC相关的可能的软件


shell@debian:~$ 
shell@debian:~$ apt-cache search vnc
tightvnc-java - TightVNC java applet and command line program
vnc-java - VNC java applet and command line program
archipel-agent-virtualmachine-vnc - Virtual Machine Orchestration (Agent Virtualmachine VNC)
autocutsel - Keep the X clipboard and the cutbuffer in sync
avahi-ui-utils - Avahi GTK+ utilities
chaosreader - trace network sessions and export it to html format
conspy - Remote control of Linux virtual consoles
directvnc - VNC client using the framebuffer as display
dmtcp - Checkpoint/Restart functionality for Linux processes
dmtcp-dbg - Debug package for dmtcp
gitso - simple frontend for reverse VNC connections (remote assistance)
gnome-rdp - remote desktop client for GNOME
gir1.2-gtk-vnc-2.0 - GObject introspection data for GTK-VNC.
gvncviewer - VNC viewer using gtk-vnc
libgtk-vnc-1.0-0 - VNC viewer widget for GTK+2 (runtime libraries)
libgtk-vnc-1.0-0-dbg - VNC viewer widget for GTK+2 (debugging symbols)
libgtk-vnc-1.0-dev - VNC viewer widget for GTK+2 (development files)
libgtk-vnc-2.0-0 - VNC viewer widget for GTK+3 (runtime libraries)
libgtk-vnc-2.0-0-dbg - VNC viewer widget for GTK+3 (debugging symbols)
libgtk-vnc-2.0-dev - VNC viewer widget for GTK+3 (development files)
libgvnc-1.0-0 - VNC gobject wrapper (runtime libraries)
libgvnc-1.0-0-dbg - VNC gobject wrapper (debugging symbols)
libgvnc-1.0-dev - VNC GObject wrapper (development files)
python-gtk-vnc - VNC viewer widget for GTK+2 (Python binding)
guacamole-tomcat - Tomcat-based Guacamole install with VNC support
guacd - Guacamole proxy daemon
libguac-client-vnc0 - VNC support plugin for Guacamole
hydra - very fast network logon cracker
hydra-gtk - very fast network logon cracker - GTK+ based GUI
libsvnqt7 - Qt wrapper library for Subversion
krdc - Remote Desktop Connection client
krdc-dbg - Remote Desktop Connection client debugging symbols
krfb - Desktop Sharing utility
libnet-vnc-perl - Perl module implementing a simple VNC client
libvncclient0 - API to write one's own vnc server - client library
libvncclient0-dbg - debugging symbols for libvncclient
libvncserver-config - API to write one's own vnc server - library utility
libvncserver-dev - API to write one's own vnc server - development files
libvncserver0 - API to write one's own vnc server
libvncserver0-dbg - debugging symbols for libvncserver
linuxvnc - VNC server to allow remote access to a tty
nova-console - OpenStack Compute - console
nova-consoleproxy - OpenStack Compute - NoVNC proxy
novnc - HTML5 VNC client - daemon and programs
python-novnc - HTML5 VNC client - libraries
pagekite - Make localhost servers publicly visible.
pyvnc2swf - screen recording tool with Flash (SWF) output
libsvncpp-dev - Subversion C++ library (development files)
libsvncpp3 - Subversion C++ shared library
remmina - remote desktop client for GNOME desktop environment
remmina-plugin-vnc - VNC plugin for remmina remote desktop client
ssvnc - Enhanced TightVNC viewer with SSL/SSH tunnel helper
libsvnclientadapter-java - High-level Java API for Subversion (library)
libsvnclientadapter-java-doc - High-level Java API for Subversion (documentation)
tightvncserver - virtual network computing server software
xtightvncviewer - virtual network computing client software for X
vinagre - remote desktop client for the GNOME Desktop
vino - VNC server for GNOME
virt-manager - desktop application for managing virtual machines
virt-viewer - Displaying the graphical console of a virtual machine
vnc4server - Virtual network computing server software
xvnc4viewer - Virtual network computing client software for X
vncsnapshot - A utility that takes JPEG snapshots from VNC servers
vtgrab - A VNC like console monitoring
websockify - WebSockets support for any application/server
winswitch - tool to start and control remote sessions
x11vnc - VNC server to allow remote access to an existing X session
x11vnc-data - data files for x11vnc
x2vnc - Link a VNC and an X display together, simulating a multiheaded display
xorg-server-source - Xorg X server - source files
xpra - tool to detach/reattach running X programs
xpra-dbg - xpra -- debugging symbols
xrdp - Remote Desktop Protocol (RDP) server
shell@debian:~$