Apache Guacamole 部署教程(Docker + MariaDB)

适用环境:

  • OpenWrt(Docker)
  • Debian / Ubuntu(Docker)
  • 群晖 NAS(MariaDB)
  • Windows RDP / VNC

一、架构

Guacamole 由三个部分组成:

  • guacamole(Web)
  • guacd(协议代理)
  • MariaDB(数据库)

数据库有两种部署方式:

方案一:Docker 内建 MariaDB(推荐新手)

                Internet
                    │
                    ▼
            Apache Guacamole
                    │
        ┌──────────┴──────────┐
        │                     │
      guacd               MariaDB(Docker)
        │
        ▼
  Windows / Linux

优点:

  • 部署简单
  • 无需额外数据库

缺点:

  • 数据与 Guacamole 在同一 Docker 环境
  • 不方便统一管理

方案二:使用外部 MariaDB(推荐)

                Internet
                    │
                    ▼
            Apache Guacamole
                    │
        ┌──────────┴──────────┐
        │                     │
      guacd             MariaDB(NAS)
        │
        ▼
  Windows / Linux

优点:

  • 数据统一管理
  • 方便备份
  • 容器重建不会影响数据库

二、方案一:Docker 内建 MariaDB

创建 docker-compose.yml

注意端口是否冲突!

services:

  guacd:
    image: guacamole/guacd:latest
    container_name: guacd
    restart: unless-stopped

  mysql:
    image: mariadb:11
    container_name: guacamole-mysql
    restart: unless-stopped

    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: guacamole_db
      MYSQL_USER: guacamole
      MYSQL_PASSWORD: 你的对应数据库密码

    volumes:
      - mysql-data:/var/lib/mysql

  guacamole:
    image: guacamole/guacamole:latest
    container_name: guacamole
    restart: unless-stopped

    depends_on:
      - guacd
      - mysql

    environment:
      GUACD_HOSTNAME: guacd

      MYSQL_ENABLED: "true"
      MYSQL_HOSTNAME: mysql
      MYSQL_DATABASE: guacamole_db
      MYSQL_USER: guacamole
      MYSQL_PASSWORD: JDunix786!

    ports:
      - "8080:8080"

volumes:
  mysql-data:

启动:

docker compose pull
docker compose up -d

初始化数据库

生成 SQL:

docker run --rm guacamole/guacamole \
/opt/guacamole/bin/initdb.sh --mysql > initdb.sql

导入:

docker cp initdb.sql guacamole-mysql:/tmp/

docker exec -it guacamole-mysql \
bash

mysql -u root -p guacamole_db < /tmp/initdb.sql

退出:

exit

然后:

docker compose restart guacamole

三、方案二:使用外部 MariaDB

创建数据库

CREATE DATABASE guacamole_db
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

CREATE USER 'guacamole'@'%'
IDENTIFIED BY '你的对应数据库密码';

GRANT ALL PRIVILEGES
ON guacamole_db.*
TO 'guacamole'@'%';

FLUSH PRIVILEGES;

docker-compose.yml

注意端口是否冲突!

services:
  guacd:
    image: guacamole/guacd:latest
    container_name: guacd
    restart: unless-stopped
    networks:
      - guac-net

  guacamole:
    image: guacamole/guacamole:latest
    container_name: guacamole
    restart: unless-stopped

    depends_on:
      - guacd

    environment:
      GUACD_HOSTNAME: guacd
      GUACD_PORT: 4822

      MYSQL_ENABLED: "true"
      MYSQL_HOSTNAME: 192.168.1.3
      MYSQL_PORT: 3306
      MYSQL_DATABASE: guacamole_db
      MYSQL_USER: guacamole
      MYSQL_PASSWORD: 你的对应数据库密码

      TZ: Asia/Shanghai

    ports:
      - "8080:8080"

    networks:
      - guac-net

networks:
  guac-net:
    driver: bridge

启动:

docker compose pull
docker compose up -d

初始化数据库

生成 SQL:

docker run --rm guacamole/guacamole \
/opt/guacamole/bin/initdb.sh --mysql > initdb.sql

复制到 NAS 后导入:

mysql -u guacamole -p guacamole_db < initdb.sql

然后:

docker compose restart guacamole

四、首次登录

浏览器:

http://服务器IP:8080/guacamole

默认账号:

用户名:
guacadmin

密码:
guacadmin

首次登录建议立即修改密码。


五、新建 RDP 连接

Settings → Connections → New Connection

填写:

Basic

Name:Windows10
Protocol:RDP
Hostname:192.168.1.100
Port:3389

Authentication

Username:Administrator
Password:********
Domain:留空

Display

Width:留空
Height:留空
Resize Method:Display Update
DPI:96

Clipboard

Enable Clipboard

Security

Ignore server certificate

六、RDP 显示优化

推荐:

Windows:

显示缩放:100%

Guacamole:

DPI:96

浏览器:

缩放:100%

七、VNC 连接

新建:

Protocol:VNC
Hostname:192.168.1.100
Port:5900
Password:VNC Password
Username:留空

八、RealVNC 注意事项

新版 RealVNC Connect 默认使用新的认证机制,与 Guacamole 的兼容性较差。

现象:

输入密码后立即断开

因此推荐:

  • UltraVNC(推荐)
  • TigerVNC(旧版本)

不建议使用新版 RealVNC。


九、Guacamole 与 PVE Console 对比

Guacamole(RDP)

浏览器
  │
Guacamole
  │
RDP
  │
Windows

优点:

  • 剪贴板
  • 文件传输
  • 性能优秀

缺点:

  • 无法进入 BIOS

PVE Console(noVNC)

浏览器
  │
noVNC
  │
QEMU VNC
  │
Guest VM

优点:

  • 可进入 BIOS
  • 安装系统
  • 蓝屏恢复

十、推荐使用方式

场景推荐方式
Windows 日常办公RDP
Linux 图形桌面VNC
BIOS / PE / 安装系统PVE Console
浏览器远程访问Guacamole

发表回复

Your email address will not be published. Required fields are marked *.

*
*