淺析如何實現瀏覽器訪問遠程桌面/服務器界面:NoVNC - 以Web方式交付VNC遠程連接


  最近項目需要實現那種在線實訓平台,所以會記錄一下技術選型然后學到的了解到的相關東西。看下這篇知乎文章:實驗樓這個網站是怎樣實現的在線linux虛擬機?https://www.zhihu.com/question/29557878,這里面有涉及一些思路。

  華為雲也有個沙箱實驗室的東西,如圖:

  我估計華為雲的這個沙箱實驗室這種就是通過這種 NoVNC 遠程連接實現的,看右邊還有一個類似虛擬機桌面。

一、VNC介紹

  VNC (Virtual Network Console)是虛擬網絡控制台的縮寫,它是一款優秀的遠程控制工具軟件。VNC 是在基於 UNIX 和 Linux 操作系統的免費的開源軟件,遠程控制能力強大,高效實用,其性能可以和 Windows 和 MAC中的任何遠程控制軟件媲美。 

  VNC基本上是由兩部分組成:一部分是客戶端的應用程序(vnc viewer);另外一部分是服務器端的應用程序(vnc server)。

  VNC的基本運行原理和一些Windows下的遠程控制軟件很相像。VNC的服務器端應用程序在UNIX和Linux操作系統中適應性很強,圖形界面十分友好。在任何安裝了客戶端的應用程序(vncviewer)的Linux平台的計算機都能十分方便地和安裝了服務器端的應用程序(vncserver)的計算機相互連接。

二、noVNC介紹

  noVNC提供一種在網頁上通過html5的Canvas,訪問機器上vncserver提供的vnc服務,需要做tcp到websocket的轉化,才能在html5中顯示出來

  網頁就是一個客戶端,類似win下面的vncviewer,只是此時填的不是裸露的vnc服務的ip+port,而是由noVNC提供的websockets的代理,在noVNC代理服務器上要配置每個vnc服務,noVNC提供一個標識,去反向代理所配置的vnc服務

  noVNC 被普遍用在各大雲計算、虛擬機控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。

三、具體示例

  NoVNC—以Web方式交付VNC遠程連接:https://blog.csdn.net/qq_37242520/article/details/103688221,這篇文章比較詳細,可以參考。

  還有一種就是 csdn 的跟我練項目,起初我也以為是通過這種 noVNC 的形式遠程連接的,后來發現不是,原來是使用 xterm.js 實現的一個簡易的 web-terminal。而我們要做的就是這種 shell 的模式,遠程桌面不是我們想要的,所以轉而研究 xterm。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM