【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

相关推荐
虹科网络安全1 分钟前
艾体宝洞察 | 利用“隐形字符”的钓鱼邮件:传统防御为何失效,AI安全意识培训如何补上最后一道防线
运维·网络·安全
石像鬼₧魂石20 分钟前
Kali Linux 网络端口深度扫描
linux·运维·网络
alengan24 分钟前
linux上面写python3日志服务器
linux·运维·服务器
yBmZlQzJ1 小时前
免费内网穿透-端口转发配置介绍
运维·经验分享·docker·容器·1024程序员节
JH30731 小时前
docker 新手入门:10分钟搞定基础使用
运维·docker·容器
Rose sait1 小时前
【环境配置】Linux配置虚拟环境pytorch
linux·人工智能·python
小卒过河01042 小时前
使用apache nifi 从数据库文件表路径拉取远程文件至远程服务器目的地址
运维·服务器·数据库
土星云SaturnCloud2 小时前
液冷“内卷”:在局部优化与系统重构之间,寻找第三条路
服务器·人工智能·ai·计算机外设
Empty_7772 小时前
DevOps理念
运维·devops