VNC不衕軟件之間的聯繫與區彆

2017-02-26 15:53:12
啊超
13448
最後編輯:achao 於 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:~$