序言
本书翻译自Apache Guacamole官方手册,英文版由Guacamole项目的上游开发人员编写。这是官方的通用文档,在线版本:http://guacamole.apache.org/ 。随着Guacamole在每次发布时的变化,它将持续不断地更新。
我们决定将Guacamole的文档作为一本书来维护,因为Guacamole Web应用程序可以做很多事情,甚至可以用API做更多事情。本书旨在探索Guacamole作为应用程序的可能性,并提供安装、维护和使用Guacamole所需的文档。
为了方便用户和管理员,我们提供了Guacamole体系结构和技术设计的高级概述,以及通用平台的基本使用说明和安装说明。
为了方便开发者,我们为常见任务(如实现协议支持、将Guacamole集成到自己的应用程序中等)提供了协议参考和教程,以提供一个比仅仅查看Guacamole代码库更好的开发起点。
此特定版本的Guacamole手册涵盖Guacamole 1.4.0版本。涉及创建新特性或破坏兼容性的新版本将产生新版的用户指南及任何必要的更正。作为该项目的官方文档,本书的官方英文版本将始终在网上免费提供。
什么是Guacamole?
Guacamole是一个使用远程桌面协议(如VNC或RDP)访问桌面环境的HTML5 Web应用程序。Guacamole也是生成该Web应用程序的项目,并提供API来驱动该应用程序。API可以用于驱动其他类似的应用程序或服务。
“Guacamole”最常用于指代由Guacamole项目使用其API生成的Web应用程序。该Web应用程序是一堆提供协议无关远程桌面网关的一部分。Guacamole的客户端是用JavaScript
编写的,仅使用HTML5和其他标准,在访问任何提供服务的台式机时,只需要一个现代的Web浏览器或支持Web的设备。
从前,Guacamole是指HTML5 VNC
客户端,并且在此之前,JavaScript Telnet
客户端被称为RealMint
(RealMint
是terminal
的同义词),但现在已经不是这样了。Guacamole的体系结构已经发展到一般的远程桌面,并且可以用作任何数量计算机的网关。从最初概念,到现在Guacamole的性能足以满足日常使用,所有Guacamole的开发都是通过Guacamole完成的。
作为API,Guacamole提供了一种通过基于JavaScript
的隧道(使用HTTP或WebSocket)流式传输文本数据的通用高效方法,以及一种支持Guacamole协议并在与隧道中的Guacamole协议流结合时呈现远程显示的客户端实现。
它提供了跨浏览器鼠标、键盘事件和XML驱动的屏幕键盘,以及硬件加速合成的同步嵌套层。希望通过HTML5提供远程桌面支持的项目可以通过将API整合到应用程序或服务中来运用多年来在Guacamole中进行的研究和开发。
为什么要用Guacamole?
使用Guacamole的主要原因是在于可以持续地、全球范围内、不受限制地访问你的计算机。
Guacamole允许从任何地方远程访问一个或多个桌面,无需安装客户端,特别是在无法安装客户端时。通过架设Guacamole服务,你可以从全世界任何地方的任意其他计算机访问互联网上的几乎任何其他计算机。甚至可以使用手机或平板电脑,且无需安装任何客户端。
作为一个只通过HTTP或HTTPS进行通信的真正的Web应用程序,Guacamole允许您从任何地方访问计算机,而不违反工作场所的策略,也不需要安装特殊的客户端。代理或公司防火墙的存在并不能阻止Guacamole的使用。
从任何设备访问你的计算机
因为访问Guacamole Web应用只需要一个速度相当快的、符合标准的浏览器,所以Guacamole将在许多设备上运行,包括手机和平板电脑。
Guacamole是特意设计为不关注你是否有鼠标,键盘,触摸屏,或任何这些的混合设备。
Guacamole背后的一个主要设计理念是,它不应该仅仅因为你的浏览器有或缺少一个特定的特性(如触摸事件或相当小的屏幕),就判定你有一个特定的设备(如手机)。Guacamole的基本代码同时支持鼠标和触摸事件,无需选择一个而不是另一个,同时界面的可用性与屏幕大小无关。
如果没有bug,你应该可以在任何带有网络浏览器的现代设备上使用Guacamole。
保持计算机可以"云端"访问
忽略这个流行词,拥有一台没有专用物理硬件的计算机通常是有用的,它的数据处理和存储能力由一些远程数据中心的冗余系统透明地处理。
托管在虚拟化硬件上的计算机对故障具有更强的恢复能力,且目前有如此多的公司提供按需的计算资源,Guacamole是访问一些只能通过互联网访问的机器的完美途径。
事实上,所有Guacamole的开发都是在这样的计算机上完成的。一部分是因为我们想要流动能力,一部分是因为我们想确保Guacamole的性能始终足以满足日常使用。
提供一组机器的方便访问
Guacamole允许你集中访问一大组机器,并根据每个用户指定哪些机器是可以访问的。用户只需登录中央服务器并单击列出的其中一个连接,而无需记住机器和凭据的列表。
如果你想远程访问多台计算机,或者你是某个组的一个成员,这个组的每个人都有一组需要远程访问的机器,Guacamole是一个可以确保从任何地方都可以提供访问的好方式。
向你的现有基础设施添加HTML5远程访问能力
由于Guacamole是一个API,而不仅仅是一个Web应用程序,Guacamole项目提供的核心组件和库可用于向现有应用程序添加HTML5远程访问功能。你无需使用主要的Guacamole Web应用程序也可以很容易地将Guacamole编写或整合进自己的项目。
如果你提供按需的计算服务,添加基于HTML5的远程访问可以允许你的服务用户获得更广泛的访问,用户只需通过网络浏览器就能看到他的电脑屏幕。