noVNC搭建

2023-05-16

noVNC搭建

1. 环境准备

  1. Os: centos7.5
  2. 准备两台设备 192.168.17.176 和 192.168.17.177

2. 安装python环境

安装python3 在192.168.17.176操作如下

  1. 查看之前是否存在环境
python默认路径是 /usr/bin/,如有改动可以输入指令查看:# whereis python,这里可以看出我的服务最高指向python2.7
#  cd /usr/bin/
#  ll python*

lrwxrwxrwx. 1 root root    7 610 2020 python -> python2
lrwxrwxrwx. 1 root root    9 610 2020 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 87 2019 python2.7
  1. 安装

因为我的centos7默认没有相关依赖和工具包,下载相关依赖和工具包:epel、pip、wget)最后通过wget从官网下载压缩包,xz编译,tar解压,进入python3.6.8,将其放到/usr/local目录下,然后make手动编译,接着安装依赖zlib、zlib-deve,最后下载默认没有python3-pip 命令并查看一下版本

# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
# yum -y install epel-release

# yum install python-pip

# pip install wget

# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz

# xz -d Python-3.6.8.tar.xz

# tar -xf Python-3.6.8.tar

#  cd Python-3.6.8

#  ./configure prefix=/usr/local/python3

#  make && make install

# yum install zlib zlib

# yum install zlib zlib-devel

# yum install -y python3-pip

# python3 -V

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

# 此时会提示输入密码(就是vnc的登入密码)

4. 安装noVNC和websockify

首先将 vnc_listen = “0.0.0.0” 解禁,文件位置/etc/libvirt/qemu.conf noVNC和websockify 的安装只需要安装在一台机器上即可,这里选择 192.168.17.176

  1. 下载novnc
yum install -y git
git clone https://github.com/novnc/noVNC.git

# 下载完成如下所示

[root@localhost ~]# cd /root/noVNC/
[root@localhost noVNC]# ll
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]#

  1. 下载使用websockify
[root@localhost ~]# cd /root/noVNC/utils
git clone https://github.com/novnc/websockify.git

# 下载完如下所示
[root@localhost noVNC]# cd utils/
[root@localhost utils]# ll
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]# cd utils/
[root@localhost utils]# ll
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]# cd websockify/
[root@localhost websockify]# cd token/
[root@localhost token]# ll
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]# pwd
/root/noVNC/utils/websockify/token
[root@localhost token]# cat vm1.conf
vm1: 192.168.17.176:5901
[root@localhost token]#


6. 启动noVNC


[root@localhost websockify]# cd ../
[root@localhost utils]# pwd
/root/noVNC/utils
[root@localhost utils]# ll
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]# ./novnc_proxy --listen 8889
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 ~]# cd /root/noVNC/utils/websockify/
[root@localhost websockify]# ll
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. 效果展示

在这里插入图片描述

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(使用前将#替换为@)

noVNC搭建 的相关文章

随机推荐