noVNC搭建
1. 环境准备
- Os: centos7.5
- 准备两台设备 192.168.17.176 和 192.168.17.177
2. 安装python环境
安装python3 在192.168.17.176操作如下
- 查看之前是否存在环境
python默认路径是 /usr/bin/,如有改动可以输入指令查看:
lrwxrwxrwx. 1 root root 7 6月 10 2020 python -> python2
lrwxrwxrwx. 1 root root 9 6月 10 2020 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 8月 7 2019 python2.7
- 安装
因为我的centos7默认没有相关依赖和工具包,下载相关依赖和工具包:epel、pip、wget)最后通过wget从官网下载压缩包,xz编译,tar解压,进入python3.6.8,将其放到/usr/local目录下,然后make手动编译,接着安装依赖zlib、zlib-deve,最后下载默认没有python3-pip 命令并查看一下版本
3. 安装vncserver
vncserver:只要被代理的机器都需要执行下面的安装,我们项目中是远程pe目标机器,所以每个pe目标机器就要安装好vncserver,这里把192.168.17.176 和 192.168.17.177都安装上,所以分别在这两个机器上执行下面的命令
systemctl stop firewalld
systemctl disable firewalld
yum install -y epel*
yum install tigervnc-server git -y
vncserver :1
4. 安装noVNC和websockify
首先将 vnc_listen = “0.0.0.0” 解禁,文件位置/etc/libvirt/qemu.conf noVNC和websockify 的安装只需要安装在一台机器上即可,这里选择 192.168.17.176
- 下载novnc
yum install -y git
git clone https://github.com/novnc/noVNC.git
[root@localhost ~]
[root@localhost noVNC]
total 60
drwxr-xr-x 6 root root 140 Dec 28 15:01 app
-rw-r--r-- 1 root root 358 Dec 28 15:01 AUTHORS
drwxr-xr-x 5 root root 200 Dec 28 15:01 core
drwxr-xr-x 2 root root 4096 Dec 28 15:01 docs
-rw-r--r-- 1 root root 2421 Dec 28 15:01 karma.conf.js
-rw-r--r-- 1 root root 2163 Dec 28 15:01 LICENSE.txt
-rw-r--r-- 1 root root 2127 Dec 28 15:01 package.json
drwxr-xr-x 2 root root 307 Dec 28 15:01 po
-rw-r--r-- 1 root root 8758 Dec 28 15:01 README.md
drwxr-xr-x 4 root root 54 Dec 28 15:01 snap
drwxr-xr-x 2 root root 4096 Dec 28 15:01 tests
drwxr-xr-x 4 root root 215 Dec 28 15:47 utils
drwxr-xr-x 3 root root 18 Dec 28 15:01 vendor
-rw-r--r-- 1 root root 15431 Dec 28 15:01 vnc.html
-rw-r--r-- 1 root root 6323 Dec 28 15:01 vnc_lite.html
[root@localhost noVNC]
- 下载使用websockify
[root@localhost ~]
git clone https://github.com/novnc/websockify.git
[root@localhost noVNC]
[root@localhost utils]
total 82644
-rwxr-xr-x 1 root root 396 Dec 28 15:01 b64-to-binary.pl
-rwxr-xr-x 1 root root 5134 Dec 28 15:01 convert.js
-rwxr-xr-x 1 root root 3160 Dec 28 15:01 genkeysymdef.js
-rwxr-xr-x 1 root root 7279 Dec 28 15:01 novnc_proxy
drwxr-xr-x 18 501 501 4096 Dec 28 15:51 Python-3.6.8
-rw-r--r-- 1 root root 84582400 Dec 24 2018 Python-3.6.8.tar
-rw-r--r-- 1 root root 538 Dec 28 15:01 README.md
-rwxr-xr-x 1 root root 911 Dec 28 15:01 u2x11
-rwxr-xr-x 1 root root 627 Dec 28 15:01 validate
drwxr-xr-x 10 root root 4096 Dec 28 15:16 websockify
[root@localhost utils]
5. 创建态token文件便于一个端口访问多个vnc
cd websockify
mkdir token
vi ./token/vm1.conf
文件内容 vm1: 192.168.17.176:5901
vi ./token/vm2.conf
文件内容 vm2: 192.168.17.177:5901
[root@localhost noVNC]
[root@localhost utils]
total 82644
-rwxr-xr-x 1 root root 396 Dec 28 15:01 b64-to-binary.pl
-rwxr-xr-x 1 root root 5134 Dec 28 15:01 convert.js
-rwxr-xr-x 1 root root 3160 Dec 28 15:01 genkeysymdef.js
-rwxr-xr-x 1 root root 7279 Dec 28 15:01 novnc_proxy
drwxr-xr-x 18 501 501 4096 Dec 28 15:51 Python-3.6.8
-rw-r--r-- 1 root root 84582400 Dec 24 2018 Python-3.6.8.tar
-rw-r--r-- 1 root root 538 Dec 28 15:01 README.md
-rwxr-xr-x 1 root root 911 Dec 28 15:01 u2x11
-rwxr-xr-x 1 root root 627 Dec 28 15:01 validate
drwxr-xr-x 10 root root 4096 Dec 28 15:16 websockify
[root@localhost utils]
[root@localhost websockify]
[root@localhost token]
total 8
-rw-r--r-- 1 root root 25 Dec 28 16:15 vm1.conf
-rw-r--r-- 1 root root 25 Dec 28 16:27 vm2.conf
[root@localhost token]
[root@localhost token]
/root/noVNC/utils/websockify/token
[root@localhost token]
vm1: 192.168.17.176:5901
[root@localhost token]
6. 启动noVNC
[root@localhost websockify]
[root@localhost utils]
/root/noVNC/utils
[root@localhost utils]
total 82644
-rwxr-xr-x 1 root root 396 Dec 28 15:01 b64-to-binary.pl
-rwxr-xr-x 1 root root 5134 Dec 28 15:01 convert.js
-rwxr-xr-x 1 root root 3160 Dec 28 15:01 genkeysymdef.js
-rwxr-xr-x 1 root root 7279 Dec 28 15:01 novnc_proxy
drwxr-xr-x 18 501 501 4096 Dec 28 15:51 Python-3.6.8
-rw-r--r-- 1 root root 84582400 Dec 24 2018 Python-3.6.8.tar
-rw-r--r-- 1 root root 538 Dec 28 15:01 README.md
-rwxr-xr-x 1 root root 911 Dec 28 15:01 u2x11
-rwxr-xr-x 1 root root 627 Dec 28 15:01 validate
drwxr-xr-x 10 root root 4096 Dec 28 15:16 websockify
[root@localhost utils]
Warning: could not find self.pem
Using local websockify at /root/noVNC/utils/websockify/run
Starting webserver and WebSockets proxy on port 8889
/root/noVNC/utils/websockify/websockify/websocket.py:31: UserWarning: no 'numpy' module, HyBi protocol will be slower
warnings.warn("no 'numpy' module, HyBi protocol will be slower")
WebSocket server settings:
- Listen on :8889
- Web server. Web root: /root/noVNC
- No SSL/TLS support (no cert file)
- proxying from :8889 to localhost:5900
Navigate to this URL:
http://localhost.localdomain:8889/vnc.html?host=localhost.localdomain&port=8889
Press Ctrl-C to exit
7. 启动websockify
[root@localhost ~]
[root@localhost websockify]
total 60
-rw-r--r-- 1 root root 3659 Dec 28 15:14 CHANGES.txt
-rw-r--r-- 1 root root 7651 Dec 28 15:14 COPYING
drwxr-xr-x 2 root root 40 Dec 28 15:14 docker
drwxr-xr-x 2 root root 85 Dec 28 15:14 docs
-rw-r--r-- 1 root root 153 Dec 28 15:14 Makefile
-rw-r--r-- 1 root root 38 Dec 28 15:14 MANIFEST.in
-rw-r--r-- 1 root root 8433 Dec 28 15:14 README.md
-rwxr-xr-x 1 root root 424 Dec 28 15:14 rebind
-rw-r--r-- 1 root root 2887 Dec 28 15:14 rebind.c
-rwxr-xr-x 1 root root 78 Dec 28 15:14 run
-rw-r--r-- 1 root root 1361 Dec 28 15:14 setup.py
-rw-r--r-- 1 root root 51 Dec 28 15:14 test-requirements.txt
drwxr-xr-x 3 root root 4096 Dec 28 15:14 tests
drwxr-xr-x 2 root root 38 Dec 28 16:27 token
-rw-r--r-- 1 root root 509 Dec 28 15:14 tox.ini
drwxr-xr-x 3 root root 232 Dec 28 15:58 websockify
lrwxrwxrwx 1 root root 3 Dec 28 15:14 websockify.py -> run
drwxr-xr-x 2 root root 39 Dec 28 15:14 Windows
[root@localhost websockify]
./run --token-plugin TokenFile --token-source ./token/ 4488
在浏览器输入http://192.16.17.176:8889/vnc.html?host=192.168.17.176&port=4488&path=websockify/?token=vm01就可以访问虚拟机了 其中http://192.16.17.176:8889/vnc.html中的ip为novnc的ip和端口,vnc.html为novnc的页面,还有一个精简版的页面vnc_lite.html 其中host 为websockify所在的服务器ip,port为其端口,path为访问路径,token 为我们刚才配置的token
8. 效果展示
![在这里插入图片描述](https://img-blog.csdnimg.cn/bcf465101acd42a3ab7bb32bec7975ae.png)
9. 相关参考连接
https://www.lmlphp.com/user/57799/article/item/2219443/
https://blog.csdn.net/qq_41122834/article/details/103893522
http://t.zoukankan.com/rnckty-p-10944979.html
https://blog.csdn.net/kyyee/article/details/74780682
官网:https://github.com/novnc/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)