我的 Web 服务器正在使用弹性负载均衡。我想知道负载均衡器向 Web 服务器转发流量时所使用的 IP 地址。
简短描述
解析负载均衡器的 DNS 名称,以确定与内部负载均衡器或面向互联网的负载均衡器关联的 IP 地址。这些是客户端用来向负载均衡器发送请求的 IP 地址。ELB 节点使用与其弹性网络接口关联的私有 IP 地址作为向服务器转发请求的源 IP 地址。对于网络负载均衡器,这些请求的源 IP 地址取决于其目标组的配置。
您可以将这些 IP 地址用于多种用途,例如允许 Web 服务器上的负载均衡器流量和处理请求。最佳做法是在 Web 服务器的安全组入站规则上使用安全组引用。这样做允许来自经典负载均衡器或应用程序负载均衡器的负载均衡器流量。但是,网络负载均衡器不支持安全组,必须基于目标组的配置。Web 服务器的安全组必须允许使用客户端 IP 地址或与网络负载均衡器关联的私有 IP 地址。
使用以下选项查找与负载均衡器弹性网络接口关联的私有 IP 地址:
- AWS 管理控制台
- AWS 命令行界面(AWS CLI)
解决方法
经典负载均衡器和应用程序负载均衡器的 IP 地址会随时间而变化。禁止使用此信息将应用程序静态配置为指向这些 IP 地址。
**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本。
AWS 管理控制台
- 打开 Amazon Elastic Compute Cloud(Amazon EC2)控制台。
- 在导航窗格中的负载均衡下,选择负载均衡器。
- 在负载均衡器下,复制要查找 IP 地址的负载均衡器的名称。
- 在导航窗格中的网络与安全下,选择网络接口。
- 将负载均衡器名称粘贴到搜索框中。筛选结果显示了与负载均衡器关联的所有弹性网络接口。您可以在主私有 IPv4 IP 列中找到每个弹性网络接口的主私有 IP 地址。
AWS CLI
运行以下命令:
aws ec2 describe-network-interfaces --filters Name=description,Values="ELB elb-name" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text
将 elb-name 替换为以下选项之一:
- 对于经典负载均衡器: 负载均衡器的名称
- 对于应用程序负载均衡器:app/load-balancer-name/load-balancer-id
- 对于网络负载均衡器:net/load-balancer-name/load-balancer-id
对于应用程序负载均衡器和网络负载均衡器,请运行以下命令来查找 load-balancer-id:
aws elbv2 describe-load-balancers --names load-balancer-name
load-balancer-id 是紧跟在 ARN 中负载均衡器名称末尾斜杠后的最后一个字符字段。