首页 > *nix技术 > 多款vncserver资源

多款vncserver资源

2022年11月12日 发表评论 阅读评论 430 次浏览

一,TightVNC

https://www.tightvnc.com/

Linux版源码下载:https://www.tightvnc.com/download-old.php

https://www.tightvnc.com/download/1.3.10/tightvnc-1.3.10_unixsrc.tar.bz2

从网页来看,目前TightVNC主要关注Windows的开发?感觉Linux版本完全是被放在一个角落了。

二,TigerVNC

https://tigervnc.org/

源码下载:https://github.com/TigerVNC/tigervnc/releases

TigerVNC vs TightVNC
参考:https://blog.csdn.net/qlcheng2008/article/details/122421763
TigerVNC是一个高性能、平台无关的虚拟网络计算(Virtual Network Computing,VNC)实现,是一个客户端/服务器应用程序,允许用户在远程机器上启动并与图形应用程序进行交互。TigerVNC提供了运行3D和视频应用程序所需的性能要求,并试图维护一个通用的桌面外观和感觉并重用组件,在可能的情况下,跨越它所支持的各种平台。TigerVNC还为高级身份验证方法和TLS加密提供了扩展。

TigerVNC最初是基于TightVNC从未发布过的VNC4分支,目标是提供一个高性能、稳定和通用的VNC实现。TigerVNC将继续支持Windows、Linux和Java等多个平台,而且对最新一代的X.Org的支持已经到位。

多平台上的统一外观和对新一代的X.Org的支持也许是TigerVNC与TightVNC的最大的区别。事实上,TightVNC的Unix-like平台的支持一直停留在十几年前的1.3版,一直不停更新的是其Windows版。而TigerVNC则注重Unix-like版本的开发,特别是对新版本的X桌面系统的强力支持,而Windows版本则是不建议使用。所以如果想要在BSD、Linux等Unix-like操作系统中实现远程虚拟桌面,最好的选择当然是TigerVNC,也正是TigerVNC才真正解决了GNOME 3版本中所采用的硬件加速等新功能的远程虚拟,有一个能实现全功能的GNOME的TigerVNC服务器为什么不用呢。

三,TurboVNC

https://www.turbovnc.org/

源码下载:https://github.com/TurboVNC/turbovnc/releases

TurboVNC支持VirtualGL(TurboVNC + VirtualGL解决方案),这表示允许通过VNC进行硬件加速。

https://www.virtualgl.org/

TurboVNC vs TightVNC、TigerVNC
参考:https://zhuanlan.zhihu.com/p/532427044
TurboVNC是基于TightVNC、TigerVNC和http://X.org的高性能企业级VNC版本。它包含一种紧凑编码的变体,该变体通过3D应用程序(VirtualGL)、视频和其他图像密集型工作负载进行调整以获得最大的性能和压缩。TurboVNC与VirtualGL相结合,为远程显示具有交互性能的3D应用程序提供了完整的解决方案。TigerVNC和libvncserver采用了TurboVNC的高速编码方法,TurboVNC也与任何其他TightVNC衍生品兼容。

TurboVNC于2004年从TightVNC分叉,仍然涵盖所有TightVNC 1.3.x功能,但TurboVNC包含许多与TightVNC相关的功能增强和错误修复,它比TightVNC更好地压缩3D和视频工作负载,同时通常只使用后者5-20%的CPU时间。使用非默认设置,还可以使TurboVNC像TightVNC一样“紧密”压缩2D工作负载。

参考:

https://virtualgl.org/pmwiki/uploads/About/tighttoturbo.pdf

http://shaoyecheng.com/uncategorized/2020-04-08-TurboVNC-VirtualGL%EF%BC%9A%E5%AE%9E%E7%8E%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%A4%9A%E7%94%A8%E6%88%B7%E5%9B%BE%E5%BD%A2%E5%8C%96%E8%AE%BF%E9%97%AE%E4%B8%8E%E7%A1%AC%E4%BB%B6%E5%8A%A0%E9%80%9F.html

四,UltraVNC

https://uvnc.com/

源码下载:https://github.com/ultravnc/UltraVNC/tags

UltraVNC的开发是以RealVNC为基础的,加入了TightVNC的鼠标控制与编码,以及在eSVNC和Vdacc-VNC找到的特殊功能等。
UltraVNC既是一个客户端也是一个服务器,可以用TCP/IP连接来控制另一台电脑。它可以在W9x/NT/2K/XP在使用,拥有包括自动设置,友好用户界面,全局热键,内部文件传输等功能。UltraVNC是自由软件,可在GNU GPL许可证下散布。

只有Windows版本?

五,RealVNC
RealVNC没有找到官方的源码地址,在github上找到如下一个地址,估计是之前的版本:

https://github.com/help-me-project/RealVNC-OpenSource-Version-3.3.7

六,历史科普
完全参考:https://blog.csdn.net/scofield06/article/details/8492636

简单地讲VNC是一款远程控制软件。与其他远程控制软件不同的是:
1.工作在帧缓冲级别(framebuffer level),具有非常好的跨平台性,可以很好的工作具有最简单图形渲染引擎的超级瘦终端平台上。
2.能够很好的实现桌面的共享,实现多个客户端同时共享同一个桌面环境。
3.也正是因为运行在帧缓冲级别,所以传输数据量较大。但VNC提出的历史背景就是牺牲带宽,换取超级瘦终端环境。

VNC是由英国剑桥大学ORL实验室研发的一款超级瘦终端系统。它以1998年 IEEE Internet Computing一篇论文《Virtual Network Computing》的形式而问世。在这篇论文里面讲到了VNC软件的产生背景和应用场景,以及部分内容的原理(截取并以不同编码方式发送相继屏幕图像的差异部分)。数据传输不一定要使用TCP/IP,还可以是IrDA,蓝牙,IEEE-1394,USB),但其谈及的层次也仅仅是科普级别介绍,并没有对协议内容,软件架构,功能模块,原理机制等做详细说明。

2001年俄罗斯一名研究生Konstantin V Kaplinsky在Modern Technique and Technologies 上发表的《VNC TIGHT ENCODER》中创新性的提出了一种新的VNC编码方式:tight,并以开源VNC为基础加以代码实现,发布了开源版的tightvnc,并由Konstantin团队不定期做版本更新,其中最为稳定的是V1.3版,最近发布了V2.6版本。官网为http://www.tightvnc.com,具有windows,linux的开源实现。

在不久之后,以tightvnc开源实现的turbovnc1.0也发布了。turbovnc官网地址为http://www.virtualgl.org,主要由VirtualGL团队维护。turbovnc是在tighvnc的基础上增加了libjpeg库,使得其在远程会话中播放视频应用和运行3D程序上得到很好的效果。实验证明,turbovnc确实比tightvnc在会话中播放视频流畅许多。

另一方面,原标准VNC团队部分成员组建RealVNC公司,并主要开发和维护商业版本的VNC软件:RealVNC。

还有一款主要在windows平台上使用的VNC软件是ultravnc。其官网是http://www.ultravnc.com,目前也是开源项目。

目前使用频率最多的VNC软件系列主要是TightVNC,TurboVNC,RealVNC,UltraVNC,大部分都是开源项目,分别由不同的团队进行不定期的bug修复和维护。学习VNC之前有必要对各个版本的VNC进行简单的使用和性能观察,了解各个版本在不同平台上的表现如何。一般而言,在Linux环境下使用TightVNC或TurboVNC做服务端。在Windows环境下,使用UltraVNC,RealVNC做服务端,最近TightVNC在2.6版本中对其在WIndows平台下进行了优化。  

虽然,截止目前为止有许多的VNC软件,但它们都遵循了VNC软件的基础协议RFB(Remote Framebuffer )协议,并且图形截取发送与接收渲染都运行在帧缓冲级别,所以能够做到不同客户端,不同服务端以及不同操作系统平台的相互兼容。例如可以使用Windows平台上的ultravnc客户端连接linux平台上的tightvnc服务端,但这种兼容都是以看齐标准VNC而实现的,所以同时丢失了ultravnc和tightvnc在标准VNC上的性能改进。所以为了最大限度的发挥某个版本VNC软件的性能,首先必须保证使用同一款同一版本的服务端和客户端软件;然后了解该软件最适用环境平台,比如UltraVNC,TightVNC都有其在Windows平台的插件,用以提高屏幕变化的截取,编码发送的速度;最后,对TCP/IP协议栈进行调优,比如设置捎带,设置发送窗口大小(这方面的内容介绍将在以后介绍)。

六,Xspice方案

https://www.spice-space.org/xspice.html

https://www.spice-space.org/download.html

https://www.spice-space.org/spice-for-newbies.html

https://blog.csdn.net/kickxxx/article/details/9896807

https://www.hqyman.cn/post/861.html

https://blog.csdn.net/hbsong75/article/details/9465683

Xspice显示的关键技术点是给Guest提供了个虚拟显卡驱动(QXL driver),窗口绘图操作发到该驱动后,落到对应Qemu里的虚拟设备(QXL Device),再由Qemu里的libspice逻辑进行处理并发送到Client。限制了绘图操作必须交给QXL驱动,所以无法利用透传到Guest的物理显卡。

转载请保留地址:http://www.lenky.info/archives/2022/11/3238http://lenky.info/?p=3238


备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。

法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。

分类: *nix技术 标签:
  1. 本文目前尚无任何评论.
您必须在 登录 后才能发布评论.