You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过gcloud命令获取活跃Compute实例的所有外部IP?

如何过滤获取Google Compute Engine活跃实例的外部IP地址

嘿,我来帮你搞定这个需求!要从GCE实例里只提取活跃实例的外部IP,其实可以通过gcloud命令结合过滤和格式化参数轻松实现,下面给你几种实用的方法:

方法1:直接筛选运行中实例的外部IP

如果你想直接针对运行状态的活跃实例提取外部IP,用gcloud compute instances list命令更直接,搭配过滤和格式化参数就能精准输出:

gcloud compute instances list --filter="status=RUNNING" --format="value(networkInterfaces[0].accessConfigs[0].natIP)"
  • --filter="status=RUNNING":只保留处于运行状态的实例,排除停止、终止等非活跃状态的实例
  • --format="value(...)":指定只输出我们需要的外部IP字段,networkInterfaces[0].accessConfigs[0].natIP对应实例第一个网卡的第一个访问配置里的外部IP(大部分场景下单网卡单配置足够覆盖需求)

方法2:基于地址列表筛选关联活跃实例的IP

如果你更倾向于用你提到的gcloud compute addresses list命令,可以通过过滤条件筛选出正在使用且关联到实例的外部IP(排除关联到负载均衡等其他资源的地址):

gcloud compute addresses list --filter="status=IN_USE AND target:.*instance.*" --format="value(address)"
  • --filter="status=IN_USE AND target:.*instance.*":确保地址是正在使用状态,且目标资源是GCE实例
  • --format="value(address)":直接输出纯净的IP地址字符串

进阶:提取实例的所有外部IP(多网卡/多配置场景)

如果你的实例有多块网卡或者多个访问配置,上面的单索引写法可能会遗漏部分IP,这时候可以用flatten参数展开所有嵌套的IP字段,再用awk提取结果:

gcloud compute instances list --filter="status=RUNNING" --format="flattened(networkInterfaces.accessConfigs.natIP)" | awk '{print $2}'

这个命令会把实例所有网卡的所有外部IP都列出来,不会漏掉任何一个。

内容的提问来源于stack exchange,提问作者John Adams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:32:31