noVNC
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的更多相关文章
- webvnc利器-noVNC集成实战
我们在做一个虚拟机管理平台,底层虚拟化使用KVM,我们希望在网页上操作虚拟机. 一开始用applet嵌在网页内实现webvnc,不过由于applet的在浏览器上运行安全性限制,我们需要一个新的方案.此 ...
- noVNC支持手机自带键盘输入
代码修改说明 novnc的web链接类似为:http://192.168.1.177:6080/vnc_auto.html?token=105356fa-bbe3-43e4-a0ce-7703dc42 ...
- CentOS安装noVNC,以Web方式交付VNC远程连接
什么是noVNC noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控制 ...
- 配置Nginx反向代理WebSocket,以代理noVNC为例
什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...
- novnc安装教程
适配于centos7 1.安装vncserver # stop selinux and iptables setenforce systemctl stop firewalld systemctl d ...
- noVNC连接CentOS,以Web方式交付VNC远程连接
什么是noVNC? noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控 ...
- Centos 6.X noVNC+websockify 实现webvnc
文章参考:https://github.com/kanaka/noVNC http://www.cnblogs.com/yanghuahui/p/3574388.html 工作原理: noVNC 可以 ...
- noVNC 搭建
安装VNCSERVER 在使用noVNC之前,必须得先装vncserver,方法如下: yum -y install vnc-server 安装完成后,执行vncserver配置密码 命令:vncse ...
- noVNC使用——访问多台vnc
一.模拟实验环境 1.CentOS6.8系统2.KVM环境3.使用KVM环境的两个系统(Windows,Linux)4.noVNC5.vncserver 二.实验过程1.在kvm的环境下,通过xml创 ...
随机推荐
- rplidar 扫描角度设置
参考网站:: https://blog.csdn.net/sunyoop/article/details/78302090 https://blog.csdn.net/dzhongjie/arti ...
- 阿里云 经典网络使用ClassicLink连接到专用网络后,192.168网段需要添加路由
配置后,专用网络中的机器Ping不通经典网络, 查帮助说192.168网段需要手动添加路由表. 抓包能在经典网络中收到专用网络中过来的数据包,但回复的数据包不能正确发出去. 先用 route -n 查 ...
- Spring Boot内嵌Tomcat session超时问题
最近让Spring Boot内嵌Tomcat的session超时问题给坑了一把. 在应用中需要设置session超时时间,然后就习惯的在application.properties配置文件中设置如下, ...
- IIS 实现一个主机部署多个网站 共享80端口
如果一个主机只是建立一个80端口的网站就有点浪费了,通过本文你就可以实现,在一个主机上建立多个80端口的站点,并通过不同的域名进行访问. 打开iis软件:控制面板-->管理工具-->Int ...
- 使用MongoDB 记录业务日志
最近公司有个需求,要对业务日志进行记录并根据日志排查问题,以前都是使用log4net之类的日志组件来记录到文件,这种方式已经不能满足业务的需要,因为日志文件会很大,即使进行分割后,查找也是很不方便,何 ...
- jquery实现全选、全消、反选功能
HTML代码: <input type="checkbox" name="checkbox" class="A" /> 使用按钮 ...
- Github上好的Android开源框架
1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduli ...
- POJ3468_A Simple Problem with Integers(线段树/成段更新)
解题报告 题意: 略 思路: 线段树成段更新,区间求和. #include <iostream> #include <cstring> #include <cstdio& ...
- 自定义 ViewController 容器转场
本文转载至 http://blog.csdn.net/yongyinmg/article/details/40621463 在话题 #5 中,Chris Eidhof 向我们介绍了 iOS7 引入的新 ...
- 数据处理 数据入数据库 与 Excel
Python 数据处理 中间数据 Excel 团队交流分工 低的沟通成本 数据入数据库 如postgresql