noVNC連接多臺遠程主機

noVNC是一個HTML5 VNC客戶端,採用HTML5 websockets、Canvas和JavaScript實現,noVNC被普遍應用於各大雲計算、虛擬機控制面板中,比如OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。前面說了 noVNC 採用 WebSockets 實現,但是目前大多數 VNC 服務器都不支持 WebSockets,所以 noVNC 是不能直接連接 VNC 服務器的,怎麼辦呢?這就需要一個代理來實現websockets和tcp sockets之間的轉換,這個代理就是websockify。

使用noVNC遠程訪問多個遠程主機,拓撲結構如下。

只需要一臺機器作爲noVNC代理,其他被訪問的機器安裝VNC server就可以了。

vncserver安裝和使用

主機Target2

Target2主機是CentOS操作系統,可以使用tigervnc-server作爲VNC server。

安裝:

[root@localhost Desktop]# yum install tigervnc-server -y

安裝完後,查看vncserver的配置文件:

[root@localhost Desktop]# rpm -qc tigervnc-server
/etc/sysconfig/vncservers

在該配置文件中可以修改vncserver的配置,比如遠程桌面的sessionnumber,登錄時的用戶名,屏幕分辨率等等。

啓動sncserver:

vncserver
或
vncserver :n

這裏的n就是sessionnumber,不指定的話默認爲1,第一次啓動時會提示輸入密碼,以後也可以使用vncpasswd命令修改密碼。VNC的默認端口號是5900,而遠程桌面連接端口號則是5900+n。如果使用“vncserver :1”命令啓動VNC Server,那麼端口應該是5901。

查看連接:

[root@localhost Desktop]# vncserver -list

TigerVNC server sessions:

X DISPLAY #    PROCESS ID
:2        2968
:1        2680
[root@localhost Desktop]#

我這裏建立了兩個vnc連接,端口號分別是5902和5901。

如果想要刪除連接,使用:

vncserver -kill :n

 

主機Target1

Target1主機是Windows Server 2008 r2操作系統,可以使用tigervnc-server作爲VNC server。

直接安裝即可。

安裝完成後,配置,設置連接vnc server密碼等:

 

使用noVNC連接VNC server

noVNC原理

noVNC提供一種在網頁上通過html5的Canvas,訪問機器上vncserver提供的vnc服務,需要做tcp到websocket的轉化,才能在html5中顯示出來。網頁就是一個客戶端,類似win下面的vncviewer,只是此時填的不是裸露的vnc服務的ip+port,而是由noVNC提供的websockets的代理,在noVNC代理服務器上要配置每個vnc服務,noVNC提供一個標識,去反向代理所配置的vnc服務。

noVNC安裝和使用

安裝noVNC

Node1上安裝noVNC,如果Node1沒有安裝git,先安裝git

[root@localhost Desktop]# yum install git -y

安裝noVNC

[root@localhost ~]# git clone git://github.com/kanaka/noVNC

使用token

爲什麼使用token?

我們想通過noVNC訪問局域網中的所有機器,難道要給每一臺機器都安裝配置noVNC,然後用每臺機器的IP地址去訪問它嗎?顯然這種做法是繁瑣笨拙的。實際上,我們只需要一臺機器作爲noVNC代理,其他被訪問的機器安裝VNC server就可以了。

在上圖中,我們用一臺機器作爲代理,IP:10.70.117.190,另外兩臺機器Target1:10.70.117.181和Target2:10.70.117.183上面安裝vncserver,我們怎麼通過代理去訪問Target1和Target2呢?這就需要token大顯身手了。

我們需要在代理機器上創建一個token配置文件,/root/noVNC/token/token.conf文件內容爲:

 

target1: 10.70.117.181:5900
target2: 10.70.117.183:5902

 

Target1的主機ip是10.70.117.181,vnc連接端口是5900,Target2的主機ip是10.70.117.183,vnc連接端口是5902。

然後在代理機器Node1上輸入命令:

[root@localhost noVNC]# ./utils/websockify/websockify.py --web ./ --target-config=./token/token.conf 6080

現在一切就緒,可以使用瀏覽器實現遠程桌面了。

注:記得關閉防火牆,或設置防火牆端口例外。

 備註:websockify與novnc是兩個獨立的項目。

遠程桌面到Target1

在瀏覽器輸入http://10.70.117.190:6080/vnc.html?path=websockify/?token=target1

點擊鏈接,輸入vncserver密碼

成功遠程桌面到Target1

遠程桌面到Target2

在瀏覽器輸入http://10.70.117.190:6080/vnc.html?path=websockify/?token=target2

點擊鏈接,輸入vncserver密碼

 本文出自https://blog.csdn.net/weixin_30251829/article/details/95330414


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