使用第 3 方 API 时如何解决 IP 白名单?

Tom*_*Tom 1 tunneling nat proxy throttling rate-limiting

我们使用的服务的 API 将拒绝请求,除非源 IP 先前已被列入白名单。他们只给了我们 3 个插槽,这是一个问题,因为我们有超过 3 台机器需要使用 API。

解决此问题的最常用技术是什么?

注意:我不想做任何违反 3rd-party API 的条款和条件的事情。我们正在使用ResellerClub,我联系他们要求更多插槽,但他们回答说:

我请求您将您的服务器路由到几组 IP。

因此这个问题。


想法:

  • 我想我们可以通过运行一种充当中间人的代理来解决这个问题。我们没有向第 3 方发出 API 请求,而是将它们发送到我们的代理,代理将请求反弹给第 3 方,因此所有请求在他们眼中似乎都来自同一个 IP。有做这种事情的通用软件吗?这样做似乎比下面的想法更简单,但我错了吗?
  • 我应该研究使用“NAT 实例”吗?例如http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html。看起来很复杂 - 没有更简单的解决方案吗?(运行具有额外网络复杂性的额外实例是一种耻辱)。
  • 既然我们使用 Docker,那么Weave是否相关?
  • 我们可以将静态 IP 附加到 VPC 网关吗?我看到使用 AWS Storage Gateway(来源)是可能的——但不确定常规的 vpc igw?

我们的架构:我们使用 AWS 并在 ELB 后面运行的 VPC 中放置我们的实例。我们经常在事先不知道 IP 地址的情况下启动新实例。我们在所有机器上运行相同的软件。这些机器运行 CoreOS,我们的应用程序在 Docker 容器中运行。

HBr*_*ijn 7

一个相当常见的基础设施是,实际应用程序服务器都没有公共 IPv4 IP 地址,它们将位于负载平衡器后面的 RFC 1918 专用网络范围内,并且它们发出的任何传出请求是:

  • 通过 NAT 网关路由,呈现单一源 IP 地址
  • 必须通过代理服务器,在私有 IP 范围和更大的互联网之间架起桥梁