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=這個參數

 

 

 


免責聲明!

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



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