什麼是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
https://www.cnblogs.com/connect/p/linux-novnc.html