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

2021-11-29 10:42:01 浏览数 (1)

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

什么是noVNC

noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。 noVNC 采用 WebSockets 实现,但是目前大多数 VNC 服务器都不支持 WebSockets,所以 noVNC 是不能直接连接 VNC 服务器的,需要一个代理来做 WebSockets 和 TCP sockets 之间的转换。这个代理在 noVNC 的目录里,叫做 websockify 。

实验环境

  1. VMware Workstations
  2. 带桌面的CentOS7虚拟机
  3. Windows 10 宿主机 Google Chrome浏览器

关闭防火墙

代码语言:javascript复制
setenforce 0
systemctl stop firewalld
systemctl disable firewalld

安装noVNC

安装依赖软件包

代码语言:javascript复制
yum install -y epel*
yum install -y git
yum install -y tigervnc-server

执行以下命令并输入密码启动服务

代码语言:javascript复制
vncserver :1

安装noVNC

代码语言:javascript复制
git clone git://github.com/kanaka/noVNC

创建安全连接(一路回车下去...)

代码语言:javascript复制
cd ./noVNC/utils/
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem

注: VNC的默认会话不是安全的,需要创建一个安全的VNC连接。创建完毕的证书 self.pem 需要放置到 noVNC/utils 目录下,当启动 noVNC 时,websockify将自动装载证书。

运行noVNC

代码语言:javascript复制
# 在noVNC目录下,执行
./utils/launch.sh --vnc localhost:5901

测试连接

在浏览器访问(注意替换成自己的IP地址) http://192.168.204.10:6080/vnc.html 输入密码,连接成功!

当有请求访问vnc时,控制台会显示日志

CentOS 7 的安装脚本

代码语言:javascript复制
#!/bin/bash

# stop selinux and iptables
setenforce 0
systemctl stop firewalld
systemctl disable firewalld

# install vncserver and git
yum install -y epel*
yum install tigervnc-server git -y
vncserver :1
# 此时会提示输入密码

# download noVNC
git clone git://github.com/kanaka/noVNC

# create secure connection
cd ./noVNC/utils/
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem

# run noVNC
cd ../
./utils/launch.sh --vnc localhost:5901

# running

本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: 2021/11/28 14:05

0 人点赞