检索AWS子网中的私有IP地址

时间:2020-07-21 14:28:26

标签: amazon-web-services amazon-ec2 amazon-vpc

是否有一种简便的方法可以通过AWS命令行在特定子网中分配所有私有IP?

我想输入子网ID作为输入。 子网-0ca0b01xxxxxxxxxx 输出应该是子网中分配的所有专用IP的列表。 谢谢。

2 个答案:

答案 0 :(得分:6)

您可以使用以下命令:

aws ec2 describe-instances --filters "Name=subnet-id,Values=**YourSubnetID**" --query 'Reservations[*].Instances[*].PrivateIpAddress' --output text

答案 1 :(得分:1)

先前的解决方案仅返回EC2实例的私有IP,但是您的RDS / ElastiCache实例或任何其他使用私有IP的AWS资源呢?您实际上需要使用describe-network-interfaces命令。

这将返回单个或多个子网ID的所有私有IP地址:

aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet_id_1,subnet_id_2 --query 'NetworkInterfaces[*].PrivateIpAddress'

但是以前的命令也不能在所有情况下都起作用。例如,我在AWS上运行多个EKS集群,用于Kubernetes的VPC CNI插件可以为single Elastic Network Interface分配多个私有IP。在这种情况下,这是您需要使用的,它略有不同:

aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet_id_1,subnet_id_2 --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress'