揭示 AWS EC2 负载均衡器背后的真实 IP 地址

揭示 AWS EC2 负载均衡器背后的真实 IP 地址

我有一个网络应用程序,其中包含我感兴趣的从互联网上阅读的事件。

为此,我有一个 AWS EC2 负载均衡器,位于两个 EC2 实例的前面。我有一个应用程序可以跟踪这两个服务器上的事件。

该设置可以像这样可视化:实例 1 和 2 -> 负载均衡器 -> 事件监视器

我看到的问题是每个事件似乎都来自负载均衡器 IP,而不是来自 EC2 实例 IP。我确信当负载均衡器转发流量时,它会将其 IP 放在数据包上。

我可以在负载均衡器上更改 AWS 中的设置,以便使用实际 IP 地址而不是负载均衡器 IP 转发数据包吗?

答案1

我看到的问题是每个事件似乎都来自负载均衡器 IP,而不是来自 EC2 实例 IP。我确信当负载均衡器转发流量时,它会将其 IP 放在数据包上。

你确信这一点,因为是的,那是恰恰负载均衡器的设计工作原理。

我可以在负载均衡器上的 AWS 中更改设置,以便使用实际 IP 地址而不是负载均衡器的 IP 转发数据包吗?

仔细想一想。当然,LB 理论上可以更改 IP 标头,以便源 IP 与后端服务器匹配。但是,这样做有几个问题:

  1. 您的后端服务器有私有 IP。您的客户端无法访问这些 IP。
  2. 当你的客户端访问你的 ELB 时,他们首先必须建立 TCP 连接,然后才能进行任何 HTTP 操作。因此他们有一个 TCP 连接使用 ELB,而不是后端服务器。因此,当客户端看到源 IP 与当前连接不匹配的数据包时,它将丢弃该数据包。
  3. 您可能不想这样做,因为后端实例经常变化,您的客户不必担心这一点,也不应该发现您的私有基础设施。

你为什么要这样做?如果你真的希望你的客户能够发现这些信息,你可以将私有 IP 放入 HTTP 响应标头中,你的客户可以访问该标头。

相关内容