公共到本地IP通信

时间:2020-05-07 11:24:51

标签: java spring web networking desktop

我创建了一个项目,该项目包含两个组件:桌面客户端和Web。

Web服务器正在与我在另一个系统上作为客户端运行的另一个程序通信。

连接这些客户端后,由于网络中的所有IP均可达,因此网络中正在发生通信。

但是,当我现在在公共IP上部署Web应用程序时,由于服务器无法访问这些客户端的本地IP,我现在无法连接客户端。

如何实现本地IP与公众之间的通信,反之亦然?

1 个答案:

答案 0 :(得分:0)

有多种方法可以实现这一目标。 无论如何,如果您希望该服务可以公开访问,则您可能希望将端口转发到运行该服务的计算机。 另外,请确保防火墙允许连接到该端口。

由于您在谈论Web应用程序,因此它可能是HTTP,端口80 TCP或HTTPS,它是在端口443 TCP上运行的HTTP的加密版本。

为了说明这一点,您的ISP为您提供了一个公共IP地址。 由于您可能有多个使用Internet的设备,它们都将作为您的提供商提供给您的IP地址出现在Internet上。 每当您发送邮件时,路由器都会记住您尝试连接的位置,并且如果收到响应,则路由器会知道将响应发送到哪个设备。

现在,由于您希望某人与您建立连接,因此没有请求,因此您的路由器不知道将数据包放在何处,只是阻止了它。 在大多数路由器中,您可以配置通常称为NAT或端口​​转发的内容。您只需指定将端口80或443上的通信路由到内部IP。它具有以下格式之一: 192.168.0.1-192.168.255.254 172.16.XXX.XXX-172.31.255.254 10.0.0.0 – 10.255.255.254