【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

相关推荐
Lovyk17 分钟前
Linux 正则表达式
linux·运维
Fireworkitte1 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9002 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char2 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
繁星¹⁸⁹⁵3 小时前
通过update-alternatives可以实现cuda的多版本切换
服务器
中科米堆3 小时前
中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸
运维·自动化·汽车·视觉检测
淮北也生橘123 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
缘华工业智维4 小时前
CNN 在故障诊断中的应用:原理、案例与优势
大数据·运维·cnn
开航母的李大5 小时前
软件系统运维常见问题
运维·服务器·系统架构·运维开发
华强笔记7 小时前
Linux内存管理系统性总结
linux·运维·网络