IP-Adresse einer Google Cloud VM-Instanz über die Kommandozeile finden
Problem:
Du hast eine VM-Instanz (my-instance in unserem Beispiel), für die du die externe oder interne IP mit dem gcloud-Kommandozeilen-Tool ermitteln möchtest.
Lösung
Wenn du nur die externe IP der Instanz sehen möchtest (denke daran, my-instance durch deinen Instanznamen zu ersetzen!), verwende
gcloud compute instances list --filter="name=my-instance" --format "[box]"Dies formatiert die Ausgabe übersichtlich und zeigt dir weitere Informationen über deine Instanz. Beispielausgabe:
┌─────────────┬────────────────┬─────────────────────────────┬─────────────┬─────────────┬───────────────┬─────────┐
│ NAME │ ZONE │ MACHINE_TYPE │ PREEMPTIBLE │ INTERNAL_IP │ EXTERNAL_IP │ STATUS │
├─────────────┼────────────────┼─────────────────────────────┼─────────────┼─────────────┼───────────────┼─────────┤
│ my-instance │ europe-west3-c │ custom (16 vCPU, 32.00 GiB) │ │ 10.156.0.1 │ 35.207.77.101 │ RUNNING │
└─────────────┴────────────────┴─────────────────────────────┴─────────────┴─────────────┴───────────────┴─────────┘In diesem Beispiel ist die externe IP-Adresse 35.207.77.101.
Falls du nur die IP-Adresse sehen möchtest, verwende stattdessen diesen Befehl:
gcloud compute instances list --filter="name=my-instance" --format "get(networkInterfaces[0].accessConfigs[0].natIP)"Beispielausgabe:
35.207.77.101Um nur die interne IP-Adresse zu sehen (nur von Google Cloud aus zugänglich), verwende
gcloud compute instances list --filter="name=my-instance" --format "get(networkInterfaces[0].networkIP)"In der Linux-Shell kann das Ergebnis dieses Befehls leicht als Eingabe für andere Befehle verwendet werden. Um z.B. my-instance zu pingen, verwende
ping $(gcloud compute instances list --filter="name=katc-main" --format "get(networkInterfaces[0].accessConfigs[0].natIP)")Siehe auch unseren verwandten Beitrag How to find zone of Google Cloud VM instance on command line
Um zu sehen, welche weiteren Informationen über Instanzen du auf ähnliche Weise abrufen kannst, verwende
gcloud compute instances list --filter="name=my-instance" --format "text"