为了设置反向连接功能,您需要完成以下几个步骤:
在典型的授权场景中,您需要在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表只是将唯一且描述性的名称与用于连接的协议配对。与添加用户相比,添加连接和相应的参数要容易得多,因为无需生成盐或哈希密码:
INSERT INTO guacamole_connection (connection_name, protocol) VALUES ('reverse', 'vnc');
SET @id = LAST_INSERT_ID();
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服务器上的端口(例如,在上面的示例中显示为:9999
)。如果您没有先在Guacamole中打开连接,则guacd
将不会监听给定的端口。
如果在设置包含反向连接参数的user-mapping.xml
或MySQL授权后无法建立连接,则建议安装最新版本的libvncserver
,它已定义了ENABLED_VNC_LISTEN
。如果未定义,当执行Guacamole的./configure
时,您应该注意到一个警告:
--------------------------------------------
No listening support found in libvncclient.
Support for listen-mode connections will not be built.
--------------------------------------------