Amazon-Ec2

如何通過 aws cli 找出 ec2 實例的私有和公共 IP?

  • April 22, 2022

到目前為止我找到的答案(例如找出 EC2 伺服器的公共 IP 地址)建議使用wgetcurl訪問伺服器。

它們對我沒有用,因為我的 ec2 實例無法直接從 Internet 訪問。

我試過了

aws ec2 --profile prod describe-instances --filters Name=instance-id,Values=i-00914683ababcba7eb1

但是返回的 JSON 結果中沒有 IP。

我可以使用哪個awsCLI 命令來檢索此資訊?

通常,您可以使用 –query 過濾器來完成。

如果您只需要私有 IP 地址:

aws --region YOUR-AWS-REGION \
ec2 describe-instances \
--filters \
"Name=instance-state-name,Values=running" \
"Name=instance-id,Values=i-00914683ababcba7eb1" \
--query 'Reservations[*].Instances[*].[PrivateIpAddress]' \
--output text

如果您只需要公共 IP 地址:

aws --region YOUR-AWS-REGION \
ec2 describe-instances \
--filters \
"Name=instance-state-name,Values=running" \
"Name=instance-id,Values=i-00914683ababcba7eb1" \
--query 'Reservations[*].Instances[*].[PublicIpAddress]' \
--output text

或者你可以同時擁有:

aws --region YOUR-AWS-REGION \
ec2 describe-instances \
--filters \
"Name=instance-state-name,Values=running" \
"Name=instance-id,Values=i-00914683ababcba7eb1" \
--query 'Reservations[*].Instances[*].[PrivateIpAddress, PublicIpAddress]' \
--output text

當然你也可以有 json 格式的輸出。只需更改--output text--output json

有關 –query 過濾器的更多資訊。

引用自:https://serverfault.com/questions/971990