如何在同一个EC2实例上使用不同的弹性IP地址作为出站stream量?

我有一个分配给它的多个IP的EC2实例。 我使用同一台服务器上的不同站点的IP,似乎EC2实例使用相同的IP出站stream量。

例如,当我使用curl来调查使用代理的IP地址时,它给我的公共地址不是我用作代理的地址。

curl -x 52.4.95.169:3128 https://api.ipify.org/ # 52.4.95.169 is a an elastic IP assigned to the instance 34.12.45.235 # This is the response, the primary instance IP 

这基本上违背了我使用弹性IP的目的,出于安全原因,我不能让任何人知道同一台服务器上的站点A和站点B.

有没有办法使用不同的IP传出请求或我必须创build每个网站的新实例?

无论何时build立出站连接,除非明确告知连接在特定networking接口上打开,否则它将在“默认”接口上打开。

curl -x不是用来指定networking接口的命令。 -x命令指定通过隧道连接的代理。

在你的curl -x例子中,你的连接通过你自己的EC2实例进行代理,但是全部在“默认”接口上。

所以你想使用--interface参数而不是-x 。 这将告诉curl在该接口上打开出站连接,而不是默认的连接。

您可以使用networking接口名称:

  • curl --interface eth0
  • curl --interface eth1

或者您可以使用networking接口的专用 IP地址。

  • curl --interface 10.0.0.1
  • curl --interface 10.0.0.2

您不能使用公共 IP地址。

从评论更新:

原来的海报使用Squid代理请求。 这篇文章帮助用户configuration鱿鱼根据他的要求代理。

设置鱿鱼使用多个传出的IP地址