无法使用鳄梨酱反向 VNC 连接
Posted
技术标签:
【中文标题】无法使用鳄梨酱反向 VNC 连接【英文标题】:Unable to use Guacamole Reverse VNC connection 【发布时间】:2017-01-04 12:38:30 【问题描述】:我正在使用 Guacamole v0.9.9 并希望连接到我的 Win 10 笔记本电脑,它位于我的 ISP 的 NAT 后面。
我想我可能必须为此使用 Reverse 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 文件可以放入参数。
也没有说明之后该做什么。在传统的 VNC 连接中,您将在目标中运行客户端,并在提供目标 ip 后以侦听/反向模式运行服务器。在这种情况下,没有客户端在运行。所以我不知道下一步该做什么。
任何帮助将不胜感激。
【问题讨论】:
你也可以use a vnc repeater as described in this answer。 【参考方案1】:为了设置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
将不会在给定端口上侦听。
如果设置了user-mapping.xml
或包含reverse-connect参数的MySQL授权后无法建立连接,建议安装最新版本的libvncserver
,其中有@987654323 @已定义。在执行 Guacamole 的 ./configure
时,您应该注意如果未定义警告:
--------------------------------------------
No listening support found in libvncclient.
Support for listen-mode connections will not be built.
--------------------------------------------
【讨论】:
我试过这个在 user-mappind.xml 中给出正确的信息,并使用命令.\tvnserver.exe -controlservice -connect 192.168.0.107:8000
使用tightvnc 服务器从 Windows pc 连接。但是出现错误无法连接tightvnc服务器。【参考方案2】:
为了省点麻烦,您可以使用 vnc 中继器,它会侦听来自 vnc 服务器和查看器的连接,并连接使用相同 id 的服务器和查看器
您可以从here获得一份
获取构建包
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
原文链接:here
关于这个的讨论:here
【讨论】:
以上是关于无法使用鳄梨酱反向 VNC 连接的主要内容,如果未能解决你的问题,请参考以下文章