我有一个分配给它的多个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地址