websockify文檔

一、官網地址

  地址:https://github.com/novnc/websockify

 

二、開啓代理

  1、單臺服務器

python /usr/local/websockify/websockify.py --cert /usr/local/websockify/self.pem 6080 192.168.20.134:5901

  self.pem可使用OpenSSL來生成,然後放在目錄下,當然也可以不加cert參數

openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem

   

  2、多臺節點服務器

  在實際應用中,不可能爲每臺虛擬機都架一個代理,這種方式對端口號的消耗也是巨大的,同時 VNC 通常是集成在前端頁面,那有沒有可能僅開一個端口,而實現代理多臺虛擬機呢,答案自然是可以。

  在 websockify 項目的 Wiki 主頁(https://github.com/novnc/websockify/wiki/Token-based-target-selection)介紹了實現一個端口,多個代理的方法。

  在 websockify 項目的 Wiki 主頁介紹了實現一個端口,多個代理的方法。

  實現的原理就是 websocketproxy.py 這個代理從一個指定的 token 目錄讀取 token 文件,一個 token 文件通常對應一臺客戶機(虛擬機)。token文件內容形如 token1: host1:port1 ,這裏的 token1 是全局唯一的一個字符串標識,host1 是客戶機(虛擬機)所在的宿主機的 ip 地址,本例中就是 Node1 的 ip,而 port1 是客戶機(虛擬機) VNC Server 的端口號,本例中就是 Guest1 的 VNC Server 的端口號。因此,本例中名爲 generic 的客戶機(虛擬機)Guest1 的 token 文件內容爲:

vnc123: 192.168.20.134:5901 
vnc234: 192.168.20.134:5902 
vnc345: 192.168.20.133:5901

  注意: 一個 token 文件可以對應一臺客戶機(虛擬機),一個 token 文件也可以對應多臺客戶機(虛擬機)。爲了方便編程和管理,通常是一對一的關係,統一放在token目錄下。

[root@node2 websockify]# ll /usr/local/websockify/token/  
-rw-r--r-- 1 root root 28 5月  29 16:46 vnc123
-rw-r--r-- 1 root root 28 5月  29 16:46 vnc234
-rw-r--r-- 1 root root 28 5月  29 16:46 vnc345

   

  3、啓動代理

/usr/local/websockify/run --token-plugin TokenFile --token-source /usr/local/websockify/token/ 6080

  如果是單個token文件,可以使用以下命令啓動

/usr/local/websockify/run --target-config /usr/local/websockify/token/token 6080

   

三、訪問vnc

  使用Chrome、Firefox等瀏覽器訪問(瀏覽器需支持html5

  我本人自己根據novnc的api文檔,寫了一個簡單的demo,放在nginx服務下  http://192.168.20.111/vnc.html?token=vnc123

  如果是在novnc中啓動websockify,則需要帶--web參數,訪問地址如下  http://192.168.20.121:8080/vnc.html?path=?token=vnc123

  PS:一定要帶path=這個參數

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章