CentOS7下使用noVNC和websockify连接QEMU/KVM虚拟机

简介: CentOS7下使用noVNC和websockify连接QEMU/KVM虚拟机

CentOS7下使用noVNC和websockify连接QEMU/KVM虚拟机


noVNC介绍


VNC的客户端很多,比如VNC Viewer、TightVNC、RealVNC、UltraVNC等VNC的客户端,可以使用SSH以及VNC的方式来登录及管理QEMU、KVM、libvirt虚拟机, 那有没有通过Web的方式去登录及管理QEMU、KVM、libvirt虚拟机呢,noVNC就是其中一种方案。


noVNC是基于HTML5技术的VNC 客户端,支持手机浏览器(iOS 和 Android) noVNC 使用代理器websockify连接到QEMU


下面介绍安装noVNC并使用noVNC连接KVM虚拟机的vnc界面

1、yum的EPEL源配置


wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo


640.jpg

2、安装noVNC


yum install novnc


会自动安装python-websockify


640.jpg

3、openssl生成证书


#创建证书存放目录
mkdir -p /etc/novnc/ssl
#openssl命令生成证书
openssl req -x509 -nodes -newkey rsa:2048 -keyout novnc.pem -out novnc.pem -days 365
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:ZheJiang
Locality Name (eg, city) [Default City]:HangZhou
Organization Name (eg, company) [Default Company Ltd]:walkingcloud
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:kvm.walkingcloud.cn
Email Address []:yuanfan2012@126.com

640.jpg


3、例如先virt-install的方式安装了KVM虚机一


virt-install --virt-type kvm --name AliyunLinux --ram 4096 --vcpus=4  --import   --disk path=/data/aliyun_2_1903_x64_20G_alibase_20200324.nocloud.qcow2,format=qcow2,bus=virtio  --disk path=/data/seed.img,format=raw,bus=virtio  --network network=default,model=virtio  --graphics vnc,listen=0.0.0.0,port=7799  --os-type=linux


640.jpg

4、启动Websockify


websockify -D --web=/usr/share/novnc/ --cert=/etc/novnc/ssl/novnc.pem 6080 0.0.0.0:7799

640.jpg

5、浏览器登录noVNC


https://172.16.30.78:6080/


640.jpg640.jpg

640.jpg

6、实现一对多:一个端口,多个代理


1、比如再新建一个kvm虚拟机,用于测试


virt-install --virt-type kvm --name CentOS --ram 2048 --vcpus=4  --import   --disk path=/opt/aliyun_2_1903_x64_20G_alibase_20200324.nocloud.qcow2,format=qcow2,bus=virtio  --disk path=/opt/seed.img,format=raw,bus=virtio  --network network=default,model=virtio  --graphics vnc,listen=0.0.0.0,port=7800  --os-type=linux

2、配置token文件


cd /usr/share/novnc/
mkdir conf
vi kvm.conf
aliyun: 0.0.0.0:7799
centos: 0.0.0.0:7800


640.jpg

3、启动websockify,加载token配置文件


websockify -D --web=/usr/share/novnc/ --cert=/etc/novnc/ssl/novnc.pem 6080  --target-config=/usr/share/novnc/conf/kvm.conf

640.jpg


4、使用token方式访问两个不同kvm


https://172.16.30.78:6080/vnc_auto.html?port=6080&path=/conf?token=aliyun


640.jpg

https://172.16.30.78:6080/vnc_auto.html?port=6080&path=/conf?token=centos


640.jpg

PS:Wok+Kimchi


Wok基于cherrypy的web框架,可以通过一些插件来进行扩展,例如:虚拟化管理、主机管理、系统管理。它可以在任何支持HTML5的网页浏览器中运行。Kimchi是一个基于HTML5的KVM管理工具,是Wok的一个插件(使用Kimchi前一定要先安装了wok),通过Kimchi可以更方便的管理KVM。github地址:https://github.com/kimchi-project


安装方式如下,可以自行尝试


wget https://github.com/kimchi-project/wok/releases/download/2.5.0/wok-2.5.0-0.el7.centos.noarch.rpm
wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.el7.centos.noarch.rpm
yum install wok-2.5.0-0.el7.centos.noarch.rpm
yum install kimchi-2.5.0-0.el7.centos.noarch.rpm
systemctl daemon-reload
systemctl start wokd
systemctl enable wokd


截图如下


640.png

640.png



相关文章
|
4天前
|
关系型数据库 MySQL Linux
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
这篇文章记录了在CentOS 7系统上安装并配置MySQL后,使用Navicat尝试进行远程连接但失败的问题。问题的主要原因是虚拟机的防火墙没有关闭。文章详细介绍了如何检查防火墙的状态,如何临时关闭它,以及如何禁止防火墙在系统启动时自动启动。当防火墙处于开启状态时,远程连接无法成功;关闭或禁用防火墙后,远程连接便能成功建立。
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
|
4天前
|
Linux 虚拟化
成功解决:Xshell 无法连接虚拟机。如何使用Xshell连接CentOS7虚拟机(详细步骤过程)
这篇文章提供了使用Xshell连接CentOS 7虚拟机的详细步骤,包括编辑VMware的网络设置以启用桥接模式、检查个人电脑适配器虚拟网络的连接情况,以及通过Xshell新建并建立连接的过程。文章还提到了在虚拟机可以访问外网的情况下成功连接的后语,暗示了网络配置的重要性。
成功解决:Xshell 无法连接虚拟机。如何使用Xshell连接CentOS7虚拟机(详细步骤过程)
|
1天前
|
JavaScript Linux 应用服务中间件
如何将Vue项目打包丢入虚拟机CentOS 7中运行
好的,我会按照你的要求,以"这篇文章"四个字开头,用一句话为你摘要每篇文章的主要内容。让我们开始吧。如果你现在就发给我链接,我会立即为你解读。
|
4天前
|
Linux
如何查看CentOS 7 虚拟机的IP地址
这篇文章介绍了如何在CentOS 7虚拟机中查看IP地址的方法。虽然具体内容没有提供,但通常在CentOS系统中,可以通过打开终端并使用`ifconfig`命令(或在最新版本中使用`ip addr`命令)来查看网络接口的IP地址。如果需要查看特定网络接口的详细信息,可以使用`ifconfig 接口名称`或`ip addr show 接口名称`。
如何查看CentOS 7 虚拟机的IP地址
|
1天前
|
关系型数据库 MySQL 数据库
成功解决:Navicat 连接虚拟机Docker中的mysql数据库失败(仅限某些特殊情况)
这篇文章介绍了在Ubuntu环境中使用Docker部署Flask项目的方法,包括创建测试项目、设置数据库、构建Flask和Nginx镜像以及容器编排,其中使用了MySQL 5.7作为数据库,Flask 2.0.2作为Web框架,Gunicorn 20.1.0作为应用服务器,Nginx 1.21.4作为反向代理,并解决了Navicat连接Docker中的MySQL数据库失败的问题。
|
5天前
|
网络协议 Linux 网络安全
Hyper-v 如何配置 Centos7 虚拟机网络?
Hyper-v 如何配置 Centos7 虚拟机网络?
|
Linux
centos7 升级qemu-kvm版本
centos7 手动升级qemu-kvm版本
2177 0
|
4天前
|
Linux C语言
成功解决 在Linux CentOS 7 中安装gcc
这篇文章介绍了如何在Linux CentOS 7系统中安装gcc (g++) 8工具集。由于CentOS 7默认的gcc版本是4.8,而这个版本与Qt 5.14、Qt 5.15或更高版本不兼容,可能会导致编译时出现系统头文件错误。文章中提到,即使在项目配置中添加了`CONFIG+=c++11`,如果仍然报错,那么很可能是gcc版本的问题。为了解决这个问题,文章提供了使用CentOS的Software Collections (scl)来安装更新版本的gcc的步骤。
成功解决 在Linux CentOS 7 中安装gcc
|
5天前
|
SQL 关系型数据库 Linux
在CentOS 6上安装和使用PostgreSQL的方法
在CentOS 6上安装和使用PostgreSQL的方法
8 2
|
5天前
|
存储 关系型数据库 Linux
在CentOS 7上安装和使用Docker的方法
在CentOS 7上安装和使用Docker的方法
31 1