2010-09-30 88 views
0

一个广泛的问题。客户端通过防火墙客户端

我们有一个客户端应用程序,该应用程序当前正在与Web服务通信以在两个客户端之间交换数据。第一个客户端存储关于该服务的数据,其他客户端则对该服务进行轮询以在稍后收集该服务。

我们希望稍微改变这个基础设施,因为客户端将Connect()提供给提供他们将“发言”的IP和端口的服务。当客户端A希望将数据发送给客户端B时,它将查找客户端B的IP和服务端口,然后将数据直接发送到该IP和端口。

在公用防火墙(和NAT)后面存在多个客户端的情况下,我的直觉是我需要为每个客户端配置端口转发,以便公共IP(即防火墙的公共端)可以被路由到适当的客户端。由于我们的应用程序旨在屏蔽'techy'细节,因此我们希望避免这一切。需要注意的是,我们很高兴客户必须在防火墙上打开一个端口,但要避免设置端口转发的额外步骤。

希望这是有道理的,请随时要求澄清。

- 编辑 - 我们知道UPnP,但它对我们来说是一个非启动者,因为它在某些路由器上不可用,以及某些企业环境不允许它。

感谢,

西蒙

回答

0

大多数的路由器提供的UPnP接口,允许应用程序设置端口转发,而无需用户做任何事情。根据路由器的型号,他们可能需要在路由器上启用它,通常是在某些掩埋的配置屏幕中的复选框。

+0

谢谢..是UPnP是一种可能性,但由于它在许多公司网络上不受支持,并且在某些路由器上被禁用或根本不可用,所以它不是我们可行的解决方案。谢谢回复。 – 2010-09-30 07:30:24

+0

公司网络?您将无法覆盖企业网络安全策略并以编程方式在其路由器和防火墙上打开端口。最好的情况是,你可以宣传“内部网络IP”(即主机的真实IP)和“NAT IP”(IP连接到互联网上的服务器时看到的IP),然后尝试连接两者。如果两个客户端都在同一个防火墙后面,他们将能够连接主机IP(也许)。另一种选择是让每个人连接到云服务器并通过它进行中继。 – 2010-10-03 10:46:22