仅当计算机连接到另一个 vnc 服务器时才可以连接到 VNC

仅当计算机连接到另一个 vnc 服务器时才可以连接到 VNC

我在使用 VNC 时遇到问题。我目前正在使用带有 UltraVNC 的 Windows XP。我无法连接到 vnc 服务器。我连接到服务器的唯一方法是使用查看器连接到另一个 VNC 服务器。

Computer A
    |
Computer B

Computer C

基本上,只有计算机 B 通过 vnc 连接到计算机 A 时,计算机 A 才能查看,并且只能被查看。计算机 C 可以在没有任何其他 VNC 连接的情况下看到 B。当我不再连接时,这几乎就像端口被阻止了一样。以前我可以正常连接到 A、B 和 C。我在路由器防火墙中配置了端口 5500 和 5900。发生这种情况有什么原因吗?

我还使用了 Microsoft 的端口查询工具。我输入了我的外部 IP 地址并查询了端口 5900 TCP,结果返回了以下消息:

Starting portqry.exe -n 12.34.56.78 -e 5900 -p TCP ...

Querying target system called:

 12.34.56.78

Attempting to resolve IP address to a name...

IP address resolved to 12.34.56.78.p0.tel.com

querying...

TCP port 5900 (unknown service): FILTERED
portqry.exe -n 12.34.56.78 -e 5900 -p TCP exits with return code 0x00000002.

当我没有使用 vnc 查看器连接到 VNC 时发生的情况如下

Starting portqry.exe -n 12.34.56.78 -e 5900 -p TCP ...

Querying target system called:

 12.34.56.78 

Attempting to resolve IP address to a name...

IP address resolved to 12.34.56.78 .tel.com

querying...

Error opening socket: 10065

No route to host. 
portqry.exe -n 12.34.56.78 -e 5900 -p TCP exits with return code 0x00000063.

我显然已经更改了 IP 地址,但是有谁知道这里发生了什么?

提前致谢。

答案1

如果服务器位于 nat 防火墙/路由器后面,您需要做的不仅仅是在防火墙中打开一个端口。您必须将端口转发到服务器。

因此,如果您的路由器的外部地址是:12.34.56.78 并且您的服务器的内部地址是 192.168.1.2

然后您需要将路由器上的端口 5900 转发到您的服务器 192.168.1.2:5900。

您说得对,12.34.56.78 没有响应连接。它过滤了所有传入连接。

答案2

我建议使用类似 stunnel 的工具通过不同的端口建立一个简单的隧道,并在路由器上转发该端口。我个人更喜欢端口 443,该端口应该已经解锁,并且(与端口 80 不同)不应通过代理服务器。另请注意,大多数免费 VNC 应用程序不提供加密,而 stunnel 为您提供加密隧道。

您可以在这里找到 stunnel 的配置文件示例: http://faq.gotomyvnc.com/fom-serve/cache/33.html 只需将 7777 更改为 443(或您想要通过网络的任何端口)。

请注意,您随后在 VNC 中连接到 127.0.0.1,客户端上的 stunnel 会将您发送到您在 stunnel.conf 文件中设置的 IP。

您也可以使用 SSH,但我发现设置 stunnel 更简单,因为您甚至不需要安装它(只需在连接前运行)。

相关内容