防火墙后的通信

防火墙后的通信

我正在尝试解决一个看似简单的问题,但我找不到干净的架构。

问题:我有一个客户端试图在本地网络中访问 grafana。

   |Router|------|Client
          |         |
          |------|Grafana

当您位于路由器(因此也是防火墙)后面时,您可以轻松访问 grafana 并使用它。我希望在本地网络之外也能发生同样的事情。

Client|------|Router|-------|Grafana

简单的解决方案:基本解决方案是端口转发,只需在路由器上打开端口 X。我不想要这个解决方案,因为我无法打开端口(出于不同的原因)。

更好的想法我正在考虑建立以下引入新服务器的架构。

Client|------|Server|-------|Router|-------|Grafana

这个想法是,服务器将与 Grafana 保持连接。这将阻止任何端口转发,因为 grafana 服务器正在采取第一步。然后,如果客户端想要访问 grafana,它将访问将其重定向到 grafana 的服务器。

第一次通话后,理想情况下,我希望客户端与 grafana 建立直接连接,而无需通过服务器。

另外 grafana 是一个例子/教程,任何其他带有 http 通信的解决方案都可以

问题:

  • 那可能吗 ?
  • 似乎有一些工具(CND、反向代理)但它们并不完全符合我的需要,或者也许我只是不知道如何使用它们?
  • 在服务器 A 和 B 上使用哪些工具(websocket、socket.io、Nginx、Apache...)。两台服务器都使用 Linux。

谢谢 !

答案1

这看起来很像是针对超级用户而不是 Serverfault 的问题。

也就是说:图片中的路由器是一台计算机,它决定来自互联网的流量如何与网络中的资源进行通信,反之亦然。将另一台计算机放在路由器前面实际上使该计算机成为路由器:一路乌龟下行。

因此是的,在具有单个可用的公共可路由 IP 地址的 IPv4 设置中,端口转发(无论是直接转发(如果提供单个服务)还是通过反向代理转发(如果在同一端口上提供多个服务))都是可行的方法。

此外,您可以通过将公开可用的资源放在单独的逻辑网络(通常称为 DMZ)中来强化您的网络,并使用严格的防火墙规则来规定从 DMZ 中的服务器到服务器网络中的服务器的流量(例如与服务底层数据库的通信)。

相关内容