noNVC基础用法:

1、下载noVNC

git clone https://github.com/novnc/noVNC.git

2、编辑qemu.conf配置文件

  Vim /etc/libvirt/qemu.conf

  将配置文件中的vnc_listen = "0.0.0.0" 启用

3、查看虚拟机vnc端口

  Virsh vncdisplay vm001

  :0      // 表示5900

  也可以在创建虚拟机xml文件是指定vm的vnc端口

<graphics type='vnc' port='' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>

4、启动noVNC

  .noVNC/utils/launch.sh --vnc host_ip:5910

noVNC高级用法:

在基础用法用需要为每启用一个代理,在实际应用中不可能为每台虚拟机都架一个代理,这种方式对端口号的消耗也是巨大的。

因此我们需要做的是使用一个端口来使用多个代理,因此需要引入Token的概念。

这里需要用的是websockify,在 Github 上 noVNC 和 websockify 本来就是独立的两个项目。

在我们第一次运行./noVNC/utils/launch.sh时会自动下载websockify

目录结构:

1、创建token文件

  在websockify目录中创建目录token,并在该目录下创建token文件,写入以下内容:

token:  host_ip:port

  这里需要注意的坑是token:后面是有一个空格的(少了这个空格让我调试了一个夜晚)。

2、启动websockify

  进入websockify目录 --web ../ 是为了使用noVNC的vnc.html和vnc_lite.html文件

./run --web ../ --target-config ./token/token localhost:8888

3、浏览器测试

 http://localhost:8888/vnc_lite.html?path=?token=vm004  (这里我直接使用的是虚拟机vm004的名称来作为Token,只需要修改Token就能够访问相应的虚拟机)

扩展Token类型

Custom plugins should match the format of the BasePlugin class found in websockify/token_plugins.py. Namely, they should implement an __init__(self, src) method (where src is the value of --token-source), and a lookup(self, token) method which either returns a (host, port) tuple, or None.

The plugin can be placed in any module that's importable by websockify, and then be used as such:

$ ./run ... --token-plugin some.module.TokenClass --token-source 'some information here'

Example:

import memcache
import simplejson class TokenMemc(object):
def __init__(self, src):
self._server = src def lookup(self, token):
client = memcache.Client([self._server], debug=0)
stuff = client.get(token)
combo = simplejson.loads(stuff)
pair = combo["host"]
return pair.split(':')

noVNC的更多相关文章

  1. webvnc利器-noVNC集成实战

    我们在做一个虚拟机管理平台,底层虚拟化使用KVM,我们希望在网页上操作虚拟机. 一开始用applet嵌在网页内实现webvnc,不过由于applet的在浏览器上运行安全性限制,我们需要一个新的方案.此 ...

  2. noVNC支持手机自带键盘输入

    代码修改说明 novnc的web链接类似为:http://192.168.1.177:6080/vnc_auto.html?token=105356fa-bbe3-43e4-a0ce-7703dc42 ...

  3. CentOS安装noVNC,以Web方式交付VNC远程连接

    什么是noVNC noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控制 ...

  4. 配置Nginx反向代理WebSocket,以代理noVNC为例

    什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...

  5. novnc安装教程

    适配于centos7 1.安装vncserver # stop selinux and iptables setenforce systemctl stop firewalld systemctl d ...

  6. noVNC连接CentOS,以Web方式交付VNC远程连接

    什么是noVNC? noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控 ...

  7. Centos 6.X noVNC+websockify 实现webvnc

    文章参考:https://github.com/kanaka/noVNC http://www.cnblogs.com/yanghuahui/p/3574388.html 工作原理: noVNC 可以 ...

  8. noVNC 搭建

    安装VNCSERVER 在使用noVNC之前,必须得先装vncserver,方法如下: yum -y install vnc-server 安装完成后,执行vncserver配置密码 命令:vncse ...

  9. noVNC使用——访问多台vnc

    一.模拟实验环境 1.CentOS6.8系统2.KVM环境3.使用KVM环境的两个系统(Windows,Linux)4.noVNC5.vncserver 二.实验过程1.在kvm的环境下,通过xml创 ...

随机推荐

  1. 【Hadoop基础教程】4、Hadoop之完全分布式环境搭建

    上一篇blog我们完成了Hadoop伪分布式环境的搭建,伪分布式模式也叫单节点集群模式, NameNode.SecondaryNameNode.DataNode.JobTracker.TaskTrac ...

  2. Cygwin 版本的 Curl 安装,提取,使用笔记

    Cygwin 版本的 Curl 安装,提取,使用笔记 Cygwin 版本的 Curl 使其恢复 HTTPS 请求功能Cygwin 版本的 Curl 依赖的 DLL 清单提取 Cygwin 版本的 Cu ...

  3. Atitit。Time base gc 垃圾 资源 收集的原理与设计

    Atitit.Time base gc 垃圾 资源 收集的原理与设计 1. MRC(MannulReference Counting手动 retain/release/autorelease语句1 2 ...

  4. Django--基础补充

    render 函数 在Django的使用中,render函数大多与浏览器发来的GET请求一并出现,它的使用方法非常简单 例如:render(request,"xxx.html",{ ...

  5. zabbix api调用

    zabbix api调用 api能干什么 Zabbix API allows you to programmatically retrieve and modify the configuration ...

  6. lua学习笔记(九)

      环境  全局变量table         lua把所有的全局变量存在一个table里,并把这个table赋值给一个全局变量_G         _G也在这个全局变量的table里,它就是一个普通 ...

  7. 使用第三方工具Cornerstone搭建本地SVNserver

    一.加入版本号资源库 点击Cornerstone左下角REPOSITORIES栏右边的加号button.在弹出的视图中选择File Repository,然后选择Create a New Reposi ...

  8. Android内容提供者

    一个应用中的数据库对别人是不会提供直接的访问的,而是提供接口给别人访问,但是一般应用开发的时候都是去获取别人的数据,而不是自己提供数据. 继承ContentProvider: 在Menifest中注册 ...

  9. MSP430G2553电子时钟实验

    用msp430g2553控制1602液晶显示时间,并能够通过按键设置时间.我做了正计时和倒计时两种模式 /*********************************************** ...

  10. MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析

    随笔 - 66 文章 - 0 评论 - 19 MySQL慢查询(二) - pt-query-digest详解慢查询日志 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它 ...