noVNC 是一個 HTML5 VNC 客戶端,採用 HTML 5 WebSockets, Canvas 和 JavaScript 實現,noVNC 被普遍用在各大雲計算、虛擬機控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC... ...
什麼是noVNC
noVNC 是一個 HTML5 VNC 客戶端,採用 HTML 5 WebSockets, Canvas 和 JavaScript 實現,noVNC 被普遍用在各大雲計算、虛擬機控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。
noVNC 採用 WebSockets 實現,但是目前大多數 VNC 伺服器都不支持 WebSockets,所以 noVNC 是不能直接連接 VNC 伺服器的,需要一個代理來做 WebSockets 和 TCP sockets 之間的轉換。這個代理在 noVNC 的目錄里,叫做 websockify 。
實驗環境
- VMware Workstations
- 帶桌面的CentOS7虛擬機
- Windows 10 宿主機 + Google Chrome瀏覽器
關閉防火牆
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
安裝noVNC
安裝依賴軟體包
yum install -y epel*
yum install -y git
yum install -y tigervnc-server
執行以下命令並輸入密碼啟動服務
vncserver :1
安裝noVNC
git clone git://github.com/kanaka/noVNC
創建安全連接(一路回車下去...)
cd ./noVNC/utils/
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
註: VNC的預設會話不是安全的,需要創建一個安全的VNC連接。創建完畢的證書 self.pem
需要放置到 noVNC/utils
目錄下,當啟動 noVNC 時,websockify將自動裝載證書。
運行noVNC
# 在noVNC目錄下,執行
./utils/launch.sh --vnc localhost:5901
測試連接
在瀏覽器訪問(註意替換成自己的IP地址) http://192.168.204.10:6080/vnc.html
輸入密碼,連接成功!
當有請求訪問vnc時,控制台會顯示日誌
適配於 CentOS 6 的安裝腳本
#!/bin/bash
# stop selinux and iptables
setenforce 0
service iptables stop
# install vncserver and git
yum install tigervnc-server git -y
vncserver :1
# 此時會提示輸入密碼
# download noVNC
git clone git://github.com/kanaka/noVNC
# create secure connection
cd ./noVNC/utils/
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
# run noVNC
cd ../
./utils/launch.sh --vnc localhost:5901
# running
適配於 CentOS 7 的安裝腳本
#!/bin/bash
# stop selinux and iptables
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
# install vncserver and git
yum install -y epel*
yum install tigervnc-server git -y
vncserver :1
# 此時會提示輸入密碼
# download noVNC
git clone git://github.com/kanaka/noVNC
# create secure connection
cd ./noVNC/utils/
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
# run noVNC
cd ../
./utils/launch.sh --vnc localhost:5901
# running