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。

安装:

[[email protected] Desktop]# yum install tigervnc-server -y

安装完后,查看vncserver的配置文件:

[[email protected] 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。

查看连接:

[[email protected] Desktop]# vncserver -list

TigerVNC server sessions:

X DISPLAY #    PROCESS ID
:2        2968
:1        2680
[[email protected] 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

[[email protected] Desktop]# yum install git -y

安装noVNC

[[email protected] ~]# 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上输入命令:

[[email protected] 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密码

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

时间: 2024-11-08 21:46:04

noVNC连接多台远程主机的相关文章

处理 允许远程协助连接这台计算机 灰色

系统为Windows Server 2008R2,下面记录处理这个问题的方法: 1)"计算机"->右键"管理"->"功能"->"添加功能" 2)勾选"远程协助",如图, 3)点击安装,直到安装完成后关闭窗口即可破解"允许远程协助连接这台计算机 灰色"的问题

如何通过直接网线接法连接两台电脑

如何通过直接网线接法连接两台电脑 1.制作水晶头 通过网线对两台电脑进行连接时,网线水晶头接法是:一端按 t568a 线序接,一端按 t568b 线序接.网线制作完成之后,通过网线水晶头连接电脑,这样两台电脑间的物理连接就形成了. 2.设置IP 物理连接的形成并不代表两台电脑可以进行通信,想使通过直接网线接法连接两台电脑进行数据传输,还必须进行相关的设置: 设置项 机器A 机器B IP 192.168.1.2 192.168.1.3 子网掩码 255.255.255.0 255.255.255.

BluetoothLE-Multi-Library 一个能够连接多台蓝牙设备的库,它可以作为client端,也可以为server端。支持主机/从机,外围设备连接。

github地址:https://github.com/qindachang/BluetoothLE-Multi-Library BluetoothLE-Multi-Library 一个能够连接多台蓝牙设备的库,它可以作为client端,也可以为server端.支持主机/从机,外围设备连接.在发送消息时,它内部支持队列控制,避免因蓝牙间隔出现操作失败的情况. 开始使用 1. 主机client 扫描 BluetoothLeScannerCompat scannerCompat = Bluetoot

appuim-java,同时连接多台机器,启动微信

1.配置appuim信息 第一台机 第二台机类似,连接端口和监听端口不能重复 2.appuim连接手机,微信中打开debugx5.qq.com,信息->TBS settings->是否打开TBS内核Insperector调试功能 3.代码 方法 public DesiredCapabilities get_capabilities(int i){ //配置appuim信息 DesiredCapabilities capabilities = new DesiredCapabilities();

发送公钥到多台远程主机

采用自动化软件管理多台主机时,首先要做的就是将自己的公钥放到远程主机上,而有时,需要管理的主机太多时,也是一件不容易的事情,所以以下就是我写的自动上传公钥的脚本,希望可以帮到需要的朋友 注意: 由于上传公钥需要对方的ip地址,所以这个脚本会读取一个ip.txt的文件,请大家注意 ip=`cat ~/ip.txt` #!/bin/bash # #1.为脚本添加远程主机的用户及密码 ###########################################################

在Windows上使用putty连接一台Linux主机

概述: 本来不想写这篇博客的,因为内容上不富足,技术上也不那么前卫,不过想到可能还会有很多朋友也会遇到和我一样的问题,便抽出一些时间来整理一下.希望也能帮到你. 前期准备工作: 1. 两台PC机(一台Windows,一台Linux,本人用的是比较老的CentOS 5.8) 2. 一个VMware虚拟机 3. putty(貌似大家比较喜欢PuTTY这样的写法) 连接步骤: 1.搭建Linux的网络环境 在VM虚拟机下使用Linux操作系统,有三种连接方式(桥接.nat.Host-only).这里不

SCP对拷如何连接指定端口远程主机

SCP对拷如何连接指定端口(非22端口)的远程主机 scp  -P  远程端口号  本机待拷贝文件路径 远程主机用户名@远程主机地址:远程主机目的路径 注意:  1.  参数-P 的位置一定要紧跟在scp命令后面 2.  参数-P 指的是远程主机的端口,而非本地主机的端口 3.  这种拷贝方式需要输入密码,如果不想输出密码(比如Jenkins部署的时候需要拷贝war包到目的服务器.自己操作时为了方便),就需要建立SSH之间的信任.

noVNC连接Linux,以Web方式交付VNC远程连接

什么是noVNC? noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC. noVNC 采用 WebSockets 实现,但是目前大多数 VNC 服务器都不支持 WebSockets,所以 noVNC 是不能直接连接 VNC 服务器的,需要一个代理来做

笔记本 无线网联网 win10系统 ,台式机木有无线网卡,通过一根网线连接两台电脑,使台式机联网。

第一步,用网线将笔记本和台式机相连,打开Win10 更改适配器选项,如下 第二步设置笔记本和台式机的IPv4地址都为自动获取 ,我的笔记本上是通过"以太网"和台式机连接的,其实就是本地连接. 第三步,右键WLAN,点击属性,选择共享选项卡,勾选 允许其他网络用户通过此计算机的Internet连接来连接. 此时,本地连接(我的是"以太网")会被自动分配一个IP地址如下图.这时候,台式机已经可以上网了,就这么简单. 我的无线网信息如下