【noVNC】使用noVNC实现浏览器网页访问vnc(基于web的远程桌面)

1.VNC本身提供的http连接方式,可传输文件,画面有卡顿,需要安装jre

2.noVNC访问方式,不可传输文件,画面较为流畅,不用安装插件运行环境

一、noVNC 是什么

Web 端的Vnc软件,通过noVNC,可以直接使用web浏览器访问vnc server。采用 HTML5、WebSockets、Canvas和 JavaScript 实现,被普遍用在各大云平台中。

网页就是一个客户端、类似 Windows 下的 vncviewer 。

VNC (Virtual Network Console)是虚拟网络控制台的缩写,分为server端和client端两部分,分别部署完成后在server端简单的配置即可使用,基于TCP的通信。noVNC项目是通过取消VNC Client的安装,直接通过浏览器访问noVNC,然后由noVNC间接访问VNC server来达到client web化。

大致实现原理是:

1.已经安装好的vncserver不需要做任何的改动

2.浏览器不支持VNC,所以不能直接连接VNC,但是可以使用代理,使用noVNC通过WebSocket建立连接,而VNC Server不支持WebSocket,所以需要开启Websockify代理来做WebSocket和TCP Socket之间的转换。

二、noVNC的安装

  • 环境:Ubuntu 22.04
  • VNC服务:使用Ubuntu 22.04 自带的VNC服务

2.1 下载noVNC的代码

git clone https://github.com/novnc/noVNC.git

2.2 启动noVNC

启动脚本是:novnc_proxy

chmod +755 /noVNC/utils/novnc_proxy # 添加可执行权限

./novnc_proxy --vnc localhost:5900 # 第一次会帮我们下载Websokify 需要安装git环境

注:如果运行bash脚本显示": /usr/bin/env: "bash\r";请
用vim打开sh脚本文件, 重新设置文件的格式
:set ff 然后回车 再重新设置下文件格式:
:set ff=unix 然后保存退出

2.3 开放6080端口

sudo firewall-cmd --add-port=6080/tcp --permanent

sudo firewall-cmd --reload

2.4 Ubuntu远程桌面开启

三、浏览器访问vnc

XML 复制代码
http://IP地址:6080/vnc.htm # 浏览器打开这个地址就可以访问了

新连接访问权限确认方式

需要密码方式:

提示:服务器图形界面锁屏状态,是无法连接的

四、总结

应用到的技术即安装的应用:

  1. python-3.8.10 该版本和以下版本组件组合,验证过能正常运行(python 3.6.8测试异常)
  2. websockify-0.10.0 该项目有python版本和node js版本
  3. noVNC-1.3.0 HTML 形式的app
  4. VNC服务 种类比较多UltraVNC、TightVNC等

参考来源:

Web 访问的利器 noVnc_novnc网页版-CSDN博客

All in Web | 基于web的远程桌面-noVNC - 知乎

https://www.cnblogs.com/minseo/p/15949100.html

相关推荐
胡斌附体15 分钟前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
愚润求学23 分钟前
【Linux】自旋锁和读写锁
linux·运维
大锦终25 分钟前
【Linux】常用基本指令
linux·运维·服务器·centos
IT项目管理36 分钟前
达梦数据库DMHS介绍及安装部署
linux·数据库
知北游天1 小时前
Linux:多线程---深入互斥&&浅谈同步
linux·运维·服务器
Gappsong8741 小时前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全
only-lucky1 小时前
C语言socket编程-补充
服务器·c语言·php
try2find1 小时前
移动conda虚拟环境的安装目录
linux·运维·conda
笑衬人心。1 小时前
Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记
笔记·python·ubuntu
码农101号2 小时前
Linux中容器文件操作和数据卷使用以及目录挂载
linux·运维·服务器