VNC远程桌面解决方案与原理介绍

一、VNC原理介绍

VNC(Virtual Network Computing)是一种远程桌面协议,它允许您通过网络远程访问和控制其他计算机的图形桌面。

以下是VNC所使用的核心技术:

  1. RFB(Remote Framebuffer Protocol): RFB是VNC的核心协议,它定义了客户端和服务器之间通信的规则。通过RFB协议,服务器可以将其图形桌面内容(帧缓冲区)传输给客户端,并接收来自客户端的用户输入(例如鼠标和键盘操作)。RFB协议允许VNC服务器和客户端在不同的操作系统和硬件平台上运行,使得跨平台远程桌面访问成为可能。
  2. 帧缓冲区(Framebuffer): 在VNC中,服务器的图形桌面内容被存储在帧缓冲区中。这是一个位图内存区域,表示整个图形桌面的像素数据。当VNC客户端连接到服务器时,服务器将帧缓冲区中的像素数据传输给客户端,从而实现远程桌面的显示。
  3. 图像压缩和编码: VNC使用图像压缩和编码技术来减少数据传输量,从而提高远程访问的性能。服务器将帧缓冲区中的图像进行压缩和编码,然后将压缩后的数据传输给客户端。客户端解码和解压缩这些数据以显示远程桌面。
  4. 鼠标和键盘事件传输: 当VNC客户端在本地操作鼠标或键盘时,客户端会将这些输入事件传输给VNC服务器。服务器接收这些事件并将其应用于其本地桌面。同样,服务器的本地鼠标和键盘事件也会传输给客户端,以反映在客户端的远程桌面上。
  5. 认证和安全性: VNC允许在连接时进行身份验证,以确保只有经过授权的用户能够访问远程桌面。这可以通过密码认证或其他安全方法实现。另外,VNC可以通过TLS/SSL协议提供加密连接,增强数据传输的安全性

二、VNC远程桌面解决方案

1.TigerVNC

TigerVNC 是一款开源VNC服务器和客户端软件,于 2009 年作为 TightVNC 的分支开始独立发展,它是一种高性能的VNC服务器和客户端实现,它支持多个平台,提供流畅的远程桌面体验。

TigerVNC优势如下:

  • 高性能:TigerVNC是一个高性能的VNC解决方案,源自TightVNC,并在性能方面有所改进,能够提供平滑的远程桌面体验
  • 跨平台支持:TigerVNC支持多个平台,包括Linux、Windows、Mac等,因此可以在不同操作系统上运行,使得跨平台远程访问成为可能;没有适用于 macOS 的服务器,并且从版本 1.11.0 开始,不再维护 Windows版本的VNC Server端。
  • 图像压缩:支持图像压缩,适用于低带宽环境,可减少数据传输量并提高性能

官网地址:https://tigervnc.org/
源码地址:https://github.com/TigerVNC/tigervnc

2.TightVNC

TightVNC一款开源的VNC客户端和服务器,注重在低带宽连接下的性能优化,它支持多种平台和各种认证方法。

TightVNC优势如下:

  • 低带宽优化:TightVNC是一个流行的VNC软件,注重在低带宽连接下的性能优化,能够在低速网络环境下提供较好的性能。
  • 多平台支持:支持多个操作系统,如Linux、Windows等。
  • 简单易用:TightVNC提供了简单易用的界面,适合那些对基本远程桌面功能感兴趣的用户。

官网地址:https://www.tightvnc.com/

3.UltraVNC

UltraVNC也是一款开源的VNC客户端和服务器,增加了更多功能和用户体验,主要适用于Windows系统。

优势如下:

  • 提供VNC客户端和服务端版本,并且增加了更多的功能以及新特性

主要特性如下:

  • 文件传输功能
  • 聊天功能
  • 具有可选的 DSM 加密,可保护查看器和服务器之间的通信
  • 兼容多种VNC实现

官网地址:
https://uvnc.com/
开源代码:
https://github.com/ultravnc/UltraVNC
参考资料:
https://uvnc.com/docs/uvnc-server.html
https://uvnc.com/docs/uvnc-viewer.html

4.RealVNC

RealVNC也提供了客户端和服务端功能,支持跨平台特性,包括Windows,Linux,MacOS,RealVNC主要提供商业版本,需要收费,但也提供了更多功能特性。

官网地址:https://www.realvnc.com/en/a/

5.x11VNC

x11vnc只提供了vnc server的功能,未提供vnc client端,目前x11vnc只支持Linux和Unix系统,不支持Windows系统。

x11vnc 是LibVNCServer项目的一部分,是根据GNU 通用公共许可证提供的免费软件。x11vnc 由 Karl Runge 编写。

x11vnc 支持许多UltraVNC对 VNC 的扩展,包括文件传输功能。

开源代码:
https://github.com/LibVNC/x11vnc,x11vnc目前最新版本是0.9.16版本。

6.LibVNC

libvnc包括LibVNCServer和LibVNCClient

libvnc跨平台 C 语言库,它可让您在程序中轻松实现 VNC 服务器或客户端功能,包括LibVNCServer和LibVNCClient两个基础库,可根据需求定制VNC功能。

开源代码:https://github.com/LibVNC
参考文档:https://libvnc.github.io/

三、总结

为了支持跨平台TigerVNC可能是一个不错的选择。如果您重视安全性和高级功能,并且愿意考虑商业版本,RealVNC是值得考虑的。而如果您是Windows用户,并且需要一些额外的实用功能,UltraVNC可能更适合您。

四、RDP vs VNC

VNC(Virtual Network Computing)::

VNC使用的技术是RFB(Remote Frame Buffer远程帧缓冲)协议的显示画面分享,他可以做到与操作系统无关,可跨平台,因为他的工作原理就是把图像在本地绘制好之后通过远程发送过客户端进行解码显示。因此对带宽要求会比较高.会话方面来说是session共用,这就比如你需要远程协助某个人,做屏幕共享带来了天生的优势。但也会有安全隐患,比如此时正好是Admin正在使用Windows,此时你VNC过去,就共同可以使用整个Windows

RDP(Remote Destkop):
大部分Windows都支持此协议,可以远程接入操作桌面,跟VNC不同的是,他对客户端的要求比较高,他需要客户端自己完成绘制的任务,即他会通过带宽把绘制指令通网络发送给客户端,由客户端自己进行绘制,因此**对带宽要求会比较低。**同时对于session本身来说,RDP他会给你提供一个独立新的session,这对多用户其实是有好处的,大家都是无感的

参考文章:
https://www.toutiao.com/article/6940087932715844100/?&source=m_redirect

猜你喜欢

转载自blog.csdn.net/xiao3404/article/details/131948771
今日推荐