当前位置: 首页 > web >正文

openbmc kvm vnc client connection

1. VNC 介绍:

VNC(Virtual Network Computing,虚拟网络计算) 是一种远程桌面协议(RDP 的替代方案),允许用户通过网络控制另一台计算机的图形界面。其核心特点是 跨平台、开源、基于帧缓冲(Frame Buffer),广泛用于远程管理、IT 支持、嵌入式设备(如 OpenBMC)等场景。

1.1 VNC 工作原理:

  • 服务端(Server):运行在被控制的设备上(如 OpenBMC 的 KVM 功能),实时捕获屏幕画面,通过 RFB(Remote Framebuffer)协议 传输给客户端。
  • 客户端(Viewer):接收画面并发送键盘/鼠标事件到服务端(如 TightVNC、TigerVNC)。
  • 编码(Encoding):压缩屏幕变化数据以节省带宽(如 TightZRLE)。

1.2 VNC 主要组件:

组件作用
RFB 协议定义数据传输规则(类似 HTTP 用于网页)。支持版本:RFB 3.3、3.7、3.8 等。
服务端libvncserver(OpenBMC 使用)、TigerVNC ServerRealVNC Server
客户端如 TightVNC、TigerVNC、noVNC(网页版)。
编码方式决定数据如何压缩传输(影响速度和画质)。

1.3 VNC 工作流程:

  • 握手阶段
    • 协商协议版本(如 RFB 3.7)。
    • 选择认证方式(无密码、VNC 密码、TLS 加密等)。
  • 初始化
    • 客户端请求屏幕分辨率、像素格式(如 32bpp RGB)。
    • 服务端发送第一帧画面(通常为 Raw 编码)。
  • 交互阶段
    • 客户端发送鼠标/键盘事件。
    • 服务端只发送屏幕变化的区域(通过 TightHextile 等编码压缩)。

2. VNC 客户端:

2.1 VNC 客户端分类及各客户端所支持的编码类型:

  • 在 OpenBMC over VNC 的环境下,除了 TightVNC 外,还有许多其他客户端可供选择,每个客户端支持的编码(Encoding)方式有所不同。

2.1.1 Desktop/终端客户端

客户端特点支持的编码方式
TightVNC轻量级,专为 Tight 优化,兼容性较好TightZRLEHextileRRERawCopyRect
RealVNC商业化产品,支持加密连接Tight(TightVNC 变种),ZRLEHextileRawCopyRect
TigerVNC高性能,常用于科研/HPC 环境TightZRLEHextileRRERawCopyRect(支持 JPEG 压缩)
UltraVNCWindows 重点优化,支持插件扩展TightZRLEUltra(专有),HextileRaw
Vinagre (GNOME)Linux GTK 客户端,轻量TightHextileRaw
RemminaLinux 多协议远程桌面工具TightZRLEHextileRRERaw

2.1.2 Web/无客户端方案

客户端特点支持的编码方式
noVNC (Web)HTML5 Canvas + WebSocket 代理Tight(默认),Raw(需服务端支持 WebSocket)
Guacamole基于 HTTP/Web 的远程桌面网关依赖后端 VNC 代理(如 TigerVNC)

2.2 不同编码格式之间的关系:

  • 不同编码对用不同的压缩算法,其对带宽,cpu 占用率都有不同的影响。
Encoding压缩算法适用场景是否通用
Tight (最优)zlib + JPEG(可调)适合高色深(24/32bpp)、高带宽✅ 大多数现代客户端支持
ZRLERLE + zlib适合低动态变化画面(如终端)✅(TigerVNC、RealVNC)
Hextile分块压缩中等压缩率,兼容性好✅(几乎所有客户端)
RRE简单区域编码低 CPU 开销,适合静态图✅(老旧客户端)
Raw无压缩完全兼容,但带宽高✅(任何客户端)
CopyRect屏幕复制优化重复区域(如窗口拖动)✅(必须支持)

3. KVM 基于VNC所支持的编码方式:

  • 以aspeed ast 芯片举例:目前KVM 支持rfbEncodingAspeed 和rfbEncodingTight
  • 通常采用全帧或增量帧方式,即标准Tigh 编码
  • 采用Tight 编码的方式也主要是为了尽可能兼容各类vnc client
    在这里插入图片描述

4. VNC Client 连接openBMC KVM:

4.1 修改软件打开VNC 服务:

  • 如修改ip 为0.0.0.0 ,允许任何IP 可连接该VNC kvm服务;
    在这里插入图片描述

  • 编译软件确认监听socket:

    netstat -tuln | grep -E "5900”

    在这里插入图片描述

  • ifconfig -a 查看BMC ip

4.2 安装tightvnc 客户端并连接该IP kvm

备注:TigerVNC 客户端也是类似。

  • 从官网下载客户端,选择tightviewer 客户端

  • 安装并打开tightVNC 客户端,输入IP 进行连接
    在这里插入图片描述

  • TightVNC 客户端显示远程KVM 界面:
    在这里插入图片描述

http://www.xdnf.cn/news/9971.html

相关文章:

  • 四、若依从数据库
  • 【JavaWeb】基本概念、web服务器、Tomcat、HTTP协议
  • 数据结构数组总结
  • 大模型调用数据库表实践:基于自然语言的SQL生成与数据查询系统
  • 石油炼化厂融合定位系统人员管控解决方案
  • 阿里云服务器ECS详细购买流程【新手购买手册】
  • 小白的进阶之路系列之六----人工智能从初步到精通pytorch数据集与数据加载器
  • 学习STC51单片机20(芯片为STC89C52RCRC)
  • Webug4.0靶场通关笔记03- 第3关SQL注入之时间盲注(手注法+脚本法 两种方法)
  • 字体查看器
  • C学习-头文件
  • iVX 如何用 VL 中间语言构建程范式闭环?
  • [SC]SystemC语法小结(一)
  • Linux部署python项目为服务,开启自启动
  • 上传图片转成3D VR效果 / 用photo-sphere-viewer实现图片VR效果 / VR效果在项目中落地实践
  • WebBuilder赋能中山欣锠鞋业数字化转型实践
  • Web 系统验证码与登录安全防护全攻略(附实现方案)
  • The CTeX fontset “fandol“ is unavailable in the current mode.
  • 复合机器人:纠偏算法如何重塑工业精度与效率?
  • AET3156AP电源方案 禾纳代理商
  • 1.什么是node.js、npm、vue
  • vue3 各种数据处理
  • Spring 核心知识点补充
  • 文档处理的相关工具
  • MMR搜索和LangChain整合Milvus实战
  • 小白的进阶之路系列之七----人工智能从初步到精通pytorch自动微分优化以及载入和保存模型
  • 高精度、高效率:正面吊箱号识别系统如何实现精准识别
  • 多模态大模型:开启智能决策的新时代
  • TimeoutException问题排查
  • 必会利器:scp 命令