目录

Apache Guacamole — 无客户端远程桌面网关

Apache Guacamole 是一个开源的远程桌面网关,由 Apache 软件基金会维护。它最核心的特点是无需在客户端安装任何软件——只需一个支持 HTML5 的浏览器,即可访问远程桌面和服务器。

官网:https://guacamole.apache.org/open-source/

主要特点

架构

Apache Guacamole 分为两个核心组件:

guacamole-server — 使用 C 语言编写,提供高效的协议代理(guacd 守护进程),负责将 VNC、RDP、SSH 等协议转换为 Guacamole 自有协议。

guacamole-client — 使用 Java(Servlet)编写,提供 Web 界面和用户管理功能。也是让项目真正「无客户端」的关键层:用户通过浏览器访问 Web 页面,JavaScript 客户端通过 HTTP/WebSocket 与 Java Servlet 通信,再由 guacd 连接到实际的目标服务器。

部署方式

传统部署

```text 用户浏览器 → Nginx → Guacamole Client (Java/Tomcat) → guacd (C) → 目标服务器 (VNC/RDP/SSH) ```

Docker 部署

官方提供了 Docker 镜像,可快速启动:

```text docker run –name guacd -d guacamole/guacd docker run –name guacamole –link guacd -e MYSQL_HOST=db \

  1. d guacamole/guacamole

```

支持 MySQL、PostgreSQL 和 SQL Server 作为后端存储。

Docker Compose

官方 GitHub 仓库提供了完整的 docker-compose 示例,包含 guacd、guacamole、MySQL 三个容器的一键部署方案。

适用场景

优缺点

优势 劣势
无需安装客户端,开箱即用 视频/图形密集型场景性能有限
集中管理所有连接 WebSocket 连接需要专用端口
开源免费(Apache 2.0 协议) 大规模部署需额外架构设计
支持多因子认证 对 3D/高帧率画面支持一般
活跃的社区和商业支持(Glyptodon Enterprise) 中文资料相对较少

总结

Apache Guacamole 是一个成熟的、生产级的远程桌面网关方案,特别适合需要统一管理多种远程协议且客户端环境不可控的场景。如果你的团队需要在不同设备上远程访问服务器、桌面,同时又不想在每个设备上都安装客户端软件,Guacamole 是值得优先考虑的免费方案。