访问专用网络上的服务器

访问专用网络上的服务器

我在客户的网关/代理/等后面安装了几个基于 IP 的数据记录器。大约每隔几个小时,数据记录器就会充当客户端并发起通信,以便将趋势数据上传到具有公共 IP 的名为 BOX 的服务器,并且一旦 BOX 收到可接受的响应,数据记录器将不再尝试传输数据。假设客户已将其网络配置为允许此类通信。

现在我的问题来了。

BOX 需要定期充当客户端,并从现在应充当服务器的数据记录器发起请求。如果不让客户执行自定义网络配置,这可能吗?我不确定的是,位于专用网络之外的服务器将如何访问各个数据记录器客户端?当数据记录器充当客户端时,我理解它们会在传输中发送标头数据包,以允许它们接收响应(至少对于 HTTP 而言)。也许这些相同的标头数据包可以在几个小时后供 BOX 直接向它们发送请求?

答案1

这是不可能的。任何理性的客户都会在自己的网络中设置防火墙,阻止来自外部网络的连接。

防火墙所需的配置取决于网络结构,并且每个客户的配置都不同。

答案2

为什么所有系统不能都是服务器并带有客户端应用程序?

一台计算机可以同时充当服务器和客户端。除非设计不当,使用相同的端口,否则两者并不互相排斥。

如果您拥有本地系统和远程系统,并且每个系统都位于自己的防火墙后面,那么使用 NAT 或端口转发来管理流量管理方式可以为您解决问题。您只需要确定如何管理本地系统的传入流量。您明显的问题是远程系统是否需要访问特定的本地系统,以及远程系统是否需要访问随机的本地系统。如果您明确确定远程系统如何确定与哪个本地系统通信并适当地构建 NAT,您应该能够管理这一点。

一个很好的例子是在不同的端口上托管多个 Web 服务器;例如,80、8080 或 443、7443、8443、9443 等...在这种情况下,您可以让远程系统根据端口连接到本地系统。

或者,如果您可以重写数据记录应用程序,则可以发送 HTTP 标头或 POST 数据,其中包含用户名、密码、服务器名称、位置等...这可用于识别发送位置和请求类型(推送或拉取)。有很多不同的方法可以完成您想要做的事情,但这取决于您管理多少以及您可以更改多少。

相关内容