Apache Guacamole 1.6.0 介绍与选型指南
基于 Apache Guacamole 1.6.0 官方文档与发布页溯源:无客户端网页远程桌面网关的架构(guacd/Guacamole 协议/WAR 应用)、功能特性、快速上手、适用边界,并对照 RustDesk/Teleport/NoMachine 给出网关视角选型建议(查询日期 2026-10-18)。
Apache Guacamole 1.6.0 介绍与选型指南
目标:一篇读懂 Apache Guacamole——「无客户端」网页远程桌面网关的定位、架构、功能、上手路径与选型边界,并对照 RustDesk、Teleport、NoMachine 给出网关视角的选型建议;本文为认知篇,全部内容基于官方文档/发布页/官方仓库联网溯源编写,不做本地安装实测(查询日期 2026-10-18)。
一、信息基准
本节说明本文所有关键论断的取证口径:查询日期、版本依据与官方来源清单,便于读者复核时效性。
- 查询日期:2026-10-18(Asia/Shanghai)。
- 版本依据:官方发布页 Current Release 为 1.6.0,发布日期 2025-06-22(来源:guacamole.apache.org/releases/,2026-10-18 实查);Apache 官方下载目录 downloads.apache.org/guacamole/ 在架版本为 1.5.3、1.5.4、1.5.5、1.6.0(2026-10-18 实查),与发布页一致,故本文以 1.6.0 为最新稳定版。
- 官方来源清单:
- 项目主页:https://guacamole.apache.org/
- 发布列表(版本日期):https://guacamole.apache.org/releases/
- 官方下载目录:https://downloads.apache.org/guacamole/
- 官方使用手册(GUG):https://guacamole.apache.org/doc/gug/
- 安装手册:https://guacamole.apache.org/doc/gug/installing-guacamole.html
- guacamole-server 仓库与 README:https://github.com/apache/guacamole-server
- 社区活跃度依据:GitHub guacamole-server 约 3,923 stars(来源:repositorystats.com/apache/guacamole,2026-10 快照);最近发版 1.6.0(2025-06-22)。
💡 说明:Guacamole 由 guacamole-server(C 语言)与 guacamole-client(Java)两个仓库组成,版本号按「整体软件包」统一演进,1.6.0 同时对应两端产物。
二、软件概述
本节给出 Guacamole 的身份定位、许可与本项目沿革,便于快速建立认知。
Apache Guacamole 1.6.0 是 Apache 软件基金会(ASF)顶级项目,定位为无客户端(clientless)远程桌面网关:用户只需浏览器即可访问 VNC、RDP、SSH、Telnet 目标主机,无需安装任何客户端软件或浏览器插件。服务器端由两部分构成——C 语言代理守护进程 guacd 与 Java Web 应用(发布为 guacamole.war),二者之间使用专为 JavaScript 高效解析设计的文本协议(Guacamole 协议)通信。
- 当前版本:1.6.0(2025-06-22 发布,官方发布页注明改进渲染性能、改进打包发布支持、可配置大小写敏感性、批量连接导入、支持 Duo v4)。
- 许可:Apache License 2.0;官方发布页注明进入 Apache 孵化计划之前的 0.9.9 及更早版本采用 MIT 许可。
- 沿革:2016 年进入 Apache 孵化计划(0.9.10-incubating 起),2018 年前后成为顶级项目。
- 运维口径:连接、用户、会话数据由 Web 应用统一管理,支持数据库、LDAP 等多种认证后端;官方手册 GUG 覆盖安装、认证、反代、录制等全场景。
💡 说明:所谓「无客户端」指访问端零安装;被访问的 Windows/Linux 主机侧仍需开启 RDP/VNC/SSH 服务,这是网关类产品与 RustDesk 这类端到端桌面软件的本质区别。
三、核心架构
本节拆解 Guacamole 的三层结构与数据通路,这是理解其部署形态与排障方向的基础。
3.1 三层结构
官方 guacamole-server README(2026-10-18 实查)给出的组件边界如下:
| 组件 | 语言/形态 | 职责 |
|---|---|---|
| 浏览器端 | HTML5 + JavaScript | 远程桌面渲染与输入采集,仅使用标准 Web 技术 |
| guacamole-client | Java WAR(部署于 Tomcat 等 Servlet 服务器) | Web 界面、认证/授权、连接管理与录制策略 |
| guacd(guacamole-server) | C 守护进程(含 libguac 与协议支持库) | 将 VNC/RDP/SSH 等二进制协议翻译为 Guacamole 文本协议 |
关键差异:浏览器无法高效处理 VNC/RDP 等二进制协议,因此官方设计了文本形态的 Guacamole 协议作为中间层;guacd 默认监听 4822 端口,Web 应用与 guacd 之间、浏览器与 Web 应用之间均为文本/HTTP 通路,因此整个链路可穿过标准 Web 基础设施(反向代理、TLS 卸载等)。
3.2 协议与依赖矩阵
官方 README 列出的协议支持依赖(guacamole-server 编译期可选):
| 协议 | 依赖库 | 说明 |
|---|---|---|
| VNC | libVNCserver | 可选 PulseAudio 支持 VNC 内音频 |
| RDP | FreeRDP | 含远程应用(RemoteApp)支持 |
| SSH | libssh2 + OpenSSL + Pango | 可选 SFTP 文件传输(与 VNC/RDP 共用 libssh2) |
| Telnet | libtelnet + Pango | 终端仿真 |
必需基础依赖:Cairo、libjpeg-turbo(或 libjpeg)、libpng、OSSP UUID。可选扩展:libwebp(WebP 压缩)、FFmpeg(guacenc 录像转码工具)。
3.3 认证与数据模型
用户、连接、权限默认由 Web 应用侧存储,官方提供可插拔认证扩展:数据库(PostgreSQL/MySQL/MariaDB)、LDAP/AD(1.5.0 起支持多 LDAP 服务器)、TOTP 双因素(1.0.0 起)、SAML 2.0(1.2.0 起)、OpenID Connect/CAS(1.3.0 起)、Duo(1.6.0 支持 Duo v4)、JSON 认证与 HTTP 头认证等;1.5.0 起还提供密钥保管库(key vaults)与 ECC 密钥支持。
💡 技术拓展:远程访问网关的「连接保持」方案不止 Guacamole 的一种——
方案 原理 代表 协议网关翻译 服务端把专有协议翻译为 Web 文本流 Guacamole、Teleport(SSH/Web) 端到端直连 双端装客户端,P2P/中继 RustDesk、TeamViewer 协议加速直连 专有高效协议+专用客户端 NoMachine(NX 协议) Guacamole 采用第一种,卖点即「零客户端安装」,代价是浏览器渲染性能上限低于专有协议。
四、功能特性
本节按 1.6.0 现状归纳核心能力,来源为官方发布页与 GUG 手册。
- 多协议接入:VNC、RDP、SSH、Telnet 四类协议统一 Web 入口(依赖矩阵见 3.2)。
- 无客户端 HTML5 访问:任何现代浏览器即开即用,支持移动端浏览器。
- 企业级认证:数据库/LDAP/SAML/OpenID/CAS/Duo/TOTP 等扩展(见 3.3),1.6.0 新增 Duo v4 支持与批量连接导入。
- 会话录制与回放:录制会话为 Guacamole 格式,1.5.0 起支持应用内回放,配
guacenc(FFmpeg)转码为视频。 - 文件传输:RDP/VNC 经 SFTP 传输文件;RDP 支持剪贴板与打印重定向。
- 连接组织与调度:连接分组、连接组负载均衡(0.8.3 起)、会话共享与加入/离开通知(1.5.0)、Wake-on-LAN(1.2.0 起)。
- 管理面:连接池参数、每连接/每用户权限、登录历史审计、1.6.0 批量连接导入与可配置用户名大小写敏感。
- 部署形态:官方提供独立安装(WAR + guacd)与打包发布两种路径,x86/ARM 均有产物。
💡 说明:1.6.0 发布说明明确提到「改进渲染性能」,对高分辨率桌面场景是直接的体验改进;但网关渲染上限仍由浏览器决定,不适合把它当作高性能图形工作站方案(该场景见 NoMachine 对比)。
五、快速上手
本节引自官方手册与官方仓库 README 的最小上手路径(源码编译 guacd + WAR 部署),仅转录官方步骤与参数,本文不做本地实测。
5.1 编译安装 guacd(引自官方 guacamole-server README)
官方 README「Compiling and installing guacd, libguac, etc.」原文步骤:
# 1) 运行 configure;如需安装 init 脚本,指定系统 init 目录
./configure --with-init-dir=/etc/init.d
# 2) 编译 guacd、libguac 与各协议支持库
make
# 3) 以 root 安装(默认安装到 /usr/local/sbin)
make install
启动与关键参数(README「Running guacd」原文要点):
# 经 init 脚本启动(需 root 写 /var/run/guacd.pid)
/etc/init.d/guacd start
# 或前台直接运行
guacd -b 0.0.0.0 -l 4822 -L info
| guacd 参数 | 含义(官方 README) |
|---|---|
-b HOST | 监听地址 |
-l PORT | 监听端口(默认 4822) |
-p PIDFILE | 写入守护进程 PID |
-L LEVEL | 日志级别:debug / info / warning / error(默认 info) |
-f | 前台运行(不自动 fork 后台) |
来源:https://github.com/apache/guacamole-server (README,2026-10-18 实查)。
5.2 部署 Web 应用与连接(引自官方 GUG 安装手册)
官方手册《Installing Guacamole》口径:获取 1.6.0 发布包中的 guacamole-1.6.0.war,放入 Tomcat 的应用目录(如 webapps/)后由 Servlet 服务器加载;首次使用默认管理员账号 guacadmin 登录 Web 界面创建连接,Web 应用通过 guacd-hostname、guacd-port 等属性指向 guacd(详见 https://guacamole.apache.org/doc/gug/installing-guacamole.html 与属性配置章节,2026-10-18 引述)。验证通路的关键检查点为:浏览器能打开 Web 登录页 → 新建 VNC/RDP/SSH 连接 → 连接成功打开远程画面。
💡 说明:生产环境官方建议为 Web 应用配置数据库认证扩展与 HTTPS 反向代理;打包发布形态(官方 per-release 打包产物)可省去手工编译 guacd 的依赖处理,两种路径的产物清单见发布页。
六、适用场景与限制
本节给出该版本的适用边界判断,均以官方文档与发布页信息为依据。
适用场景:
- 给运维/外包/合作方发放「浏览器即达」的跳板访问,终端零安装、权限集中管控、留痕(录制+登录历史)。
- 内网 Windows/Linux 大量主机的统一入口,配合 LDAP/AD 与双因素做企业接入。
- 培训/演示/共享操作(会话共享、加入/离开通知)。
限制与注意:
- 协议面仅 VNC/RDP/SSH/Telnet;不含专用高效协议,浏览器渲染性能弱于原生客户端(官方 1.6.0 已针对性优化)。
- Web 应用需要 Servlet 服务器(如 Tomcat)与持久化存储承载认证数据;组件比端到端产品多,排障链路更长。
- guacd 需自行保障高可用(多实例 + 负载分发),单实例故障会阻断其承接的连接。
- 发版节奏偏慢:1.5.0(2023-02)至 1.6.0(2025-06)间隔约 28 个月,安全修复需关注官方公告。
七、同类选型对比
本节从远程访问/网关视角横向对比三款常见替代品,数据均于 2026-10-18 实查(来源:各官方发布页/GitHub Releases/官网)。
| 维度 | Apache Guacamole 1.6.0 | RustDesk 1.5.0 | Teleport v18.11.1 | NoMachine(商业) |
|---|---|---|---|---|
| 定位 | 无客户端网页远程桌面网关 | 端到端开源自托管远程桌面 | 基础设施零信任访问网关(SSH/K8s/DB/桌面) | 高性能远程桌面(NX 协议) |
| 许可 | Apache-2.0 | AGPL-3.0 | Apache-2.0(开源核心,企业特性商业授权) | 闭源商业(个人版免费;v10 于 2026-08-19 发布) |
| 社区活跃度 | guacamole-server 约 3.9k stars;1.6.0 发布于 2025-06-22 | 约 125.9k stars(GStars 2026-10-16 快照);1.5.0 发布于 2026-09/10 | 约 21k stars;v18.11.1 发布于 2026-09-16,多版本线并行高频发版 | 无公开仓库;官网公告 2026 年内多次更新(9.9.6 于 2026-09-14) |
| 版本节奏 | 大版本间隔长(1.5.0→1.6.0 约 28 个月),每版带安全修复 | 主要版本约 2~3 个月一版,补丁频繁(第三方观测口径) | 月度补丁+多主版本并行维护(v17/v18 同时在架) | 商业滚动更新,版本公告可订阅 |
| 兼容矩阵 | 浏览器(HTML5)↔ VNC/RDP/SSH/Telnet;服务端 Linux + Servlet 服务器 | Windows/macOS/Linux/移动端全平台客户端 + 自建中继服务器 | 客户端全平台 + 服务端 Linux;Web UI、SSH/K8s/DB 协议代理 | Windows/macOS/Linux 客户端与服务端 |
| 访问端要求 | 仅浏览器 | 需安装客户端 | 客户端或浏览器 | 需安装客户端 |
选型建议:一句话——要「给 N 台内网机器发浏览器免装入口、集中管控与审计」选 Guacamole;要「替代 TeamViewer 的开源自托管桌面工具」选 RustDesk;要「把服务器/K8s/数据库的特权访问收敛到带审计的零信任网关」选 Teleport;要「外网弱网环境下最流畅的图形/桌面体验且可付费」选 NoMachine。
八、参考链接
- 官方发布页(版本与日期):https://guacamole.apache.org/releases/
- 1.6.0 发布说明:https://guacamole.apache.org/releases/1.6.0/
- 官方下载目录:https://downloads.apache.org/guacamole/
- 官方使用手册 GUG:https://guacamole.apache.org/doc/gug/
- 安装手册:https://guacamole.apache.org/doc/gug/installing-guacamole.html
- guacamole-server 仓库/README:https://github.com/apache/guacamole-server
- RustDesk 官网与仓库:https://rustdesk.com/ 、 https://github.com/rustdesk/rustdesk
- Teleport 仓库/Releases:https://github.com/gravitational/teleport
- NoMachine 官网公告:https://www.nomachine.com/news
- 社区活跃度快照(stars):https://repositorystats.com/apache/guacamole-server 、 https://www.gstars.dev/repo/rustdesk/rustdesk