码迷,mamicode.com
首页 > 其他好文 > 详细

noVNC连接多台远程主机

时间:2018-10-19 16:47:24      阅读:523      评论:0      收藏:0      [点我收藏+]

标签:查看连接   stack   roo   ica   canvas   pre   点击   怎么   设置   

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

现在一切就绪,可以使用浏览器实现远程桌面了。

注:记得关闭防火墙,或设置防火墙端口例外。

 

远程桌面到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密码

技术分享图片

 

noVNC连接多台远程主机

标签:查看连接   stack   roo   ica   canvas   pre   点击   怎么   设置   

原文地址:https://www.cnblogs.com/binaway/p/9817118.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!