VNC

圖形化桌面分享系統

VNC(Virtual Network Computing),為一種使用RFB協定的螢幕畫面分享及遠端操作軟體。此軟體藉由網路,可傳送鍵盤與滑鼠的動作及即時的螢幕畫面。

KDE內的VNC顯示遠端Windows的畫面

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。一個伺服器端可以在5900埠用「監聽模式」連接一個客戶端,使用監聽模式的一個好處是伺服器端不需要設定防火牆。

UNIX上的VNC稱為xvnc,同時扮演兩種角色,對X視窗系統的應用程式來說它是X server,對於VNC使用者端來說它是VNC伺服程式。

安全性

編輯

VNC並非是安全的協定,雖然VNC伺服程式需設定密碼才可接受外來連線,且VNC使用者端與VNC伺服程式之間的密碼傳輸經過加密,但仍可被輕易的攔截到並使用暴力破解法破解。不過VNC可設計以SSHVPN傳輸,以增加安全性。

有些VNC軟體,如UltraVNC,更進一步支援Active DirectoryNTLM的帳號密碼認證。

VNC軟體

編輯

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

  • RealVNC:由VNC團隊部份成員開發,分為全功能商業版及免費版。
  • TightVNC:強調節省頻寬使用。開源軟體,但沒有GitHub倉庫。
  • TigerVNC:開源軟體,作為 TightVNC 的一個分支開始。客戶端支援 Windows、Linux 和 macOS。伺服器支援 Linux。
  • UltraVNC:加入了TightVNC的部份程式及加強效能的圖型對映驅動程式,並結合Active Directory及NTLM的帳號密碼認證,但僅有Windows版本。
  • Vine Viewer:MacOSX的VNC使用者端。
  • x11vnc:構建於X Window系統之上。

這些軟體各有所長,例如UltraVNC支援檔案傳輸以及全螢幕模式。而這些軟體間大多遵循基本的VNC協定,因此大多可互通使用。

另見

編輯
  • 遠端桌面,即RDP(Windows的遠端操作軟體)
  • Xdmcp(基於X Window系統的遠端操作)

外部連結

編輯