无法使用Guacamole反向VNC连接

10

我正在使用 Guacamole v0.9.9,想连接到我的Win 10笔记本电脑,它位于我的ISP的NAT后面。

我想我可能需要使用反向VNC。以下是说明: https://guacamole.incubator.apache.org/doc/gug/configuring-guacamole.html#vnc-reverse-connections

但是我正在使用MYSQL Auth,如下所述: https://guacamole.incubator.apache.org/doc/0.9.0/gug/mysql-auth.html

问题在于,在VNC设置中我看不到任何反向连接选项,并且没有XML文件可用于放置参数。

输入图像描述

而且没有说明接下来该怎么做。通常情况下,在目标位置上运行客户端并在将目标IP提供给服务器之后以监听/反向模式运行服务器。但在这种情况下,没有正在运行的客户端。所以我不知道该怎么做。

非常感谢任何帮助。


你也可以选择使用VNC中继器,如此答案所述。 - TheCodeArtist
2个回答

2

为了设置反向连接功能,您需要完成以下几个步骤:

在典型的授权场景中,您需要在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服务器上的端口(例如,在上面的示例中显示为: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.
--------------------------------------------

我尝试在user-mapping.xml中提供正确的信息,并使用命令.\tvnserver.exe -controlservice -connect 192.168.0.107:8000从Windows PC连接tightvnc服务器。但是出现了“无法连接tightvnc服务器”的错误。 - CodeDezk

1
为了避免麻烦,您可以使用VNC中继器,它将侦听来自VNC服务器和查看器的连接,并连接使用相同ID的服务器和查看器。
您可以从此处获取。

获取构建软件包

对于Debian,请使用

apt-get install linux-headers-`uname -r` libx11-6 libx11-dev x-window-system-core x-window-system xspecs libxtst6 psmisc build-essential

对于CentOS使用:

yum install linux-headers-`uname -r` libx11-6 libx11-dev x-window-system-core x-window-system xspecs libxtst6 psmisc build-essential

将源代码获取到 /usr/local/src 目录中。
cd /usr/local/src
wget http://www.wisdomsoftware.gr/download/uvncrep017-ws.tar.gz

解压源文件

gunzip uvncrep017-ws.tar.gz
tar -xvf uvncrep017-ws.tar

安装启动脚本。
cd uvncrep017-ws
make; make install;

添加一个用户以使用此服务。
useradd uvncrep

根据您的需要编辑/etc/uvnc/uvncrepeater.ini文件。

检查以下参数:

viewerport = 5901
maxsessions = 10
runasuser = uvncrep
logginglevel = 2
srvListAllow1 = 192.168.0.0 ;Allow network 192.168.x.x
srvListDeny0 = 127.0.0.1 ;Deny loopback
requirelistedserver=1

启动服务

/etc/init.d/uvncrepeater start

原始链接:这里

关于此事的论坛讨论:这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接