为了设置功能,您需要做一些事情reverse-connect
:
因此,在典型的授权场景中,您有类似这样的内容,其中user-mapping.xml
包含反向连接的必要信息:
<authorize username="user" password="password">
<connection name="reverse">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">9999</param>
<param name="reverse-connect">true</param>
<param name="listen-timeout">30000</param>
<param name="autoretry">true</param>
</connection>
</authorize>
由于您是通过 MySQL 执行此操作,因此原理相同:
连接和参数
每个连接在 guacamole_connection 表中都有一个条目,与参数具有一对多关系,在 guacamole_connection_parameter 表中存储为名称/值对。
guacamole_connection 表只是一个唯一的描述性名称与用于连接的协议的配对。与添加用户相比,添加连接和相应参数相对容易,因为无需生成盐,也无需哈希密码:
-- Create connection
INSERT INTO guacamole_connection (connection_name, protocol) VALUES ('reverse', 'vnc');
SET @id = LAST_INSERT_ID();
-- Add parameters
INSERT INTO guacamole_connection_parameter VALUES (@id, 'hostname', 'localhost');
INSERT INTO guacamole_connection_parameter VALUES (@id, 'port', '9999');
INSERT INTO guacamole_connection_parameter VALUES (@id, 'reverse-connect', 'true');
...
连接:
在 Guacamole 中打开连接,然后使用 VNC 客户端连接到 Guacamole Server 上的端口(例如:9999
,如上例所示)。如果您不先在 Guacamole 中打开连接,guacd
则不会在给定端口上侦听。
如果设置了包含reverse-connect参数的mysql授权后无法建立连接user-mapping.xml
,建议安装最新版本的libvncserver
,已ENABLED_VNC_LISTEN
定义。./configure
如果没有定义,你应该在执行 Guacamole 时注意到警告:
--------------------------------------------
No listening support found in libvncclient.
Support for listen-mode connections will not be built.
--------------------------------------------