Як знайти зовнішню IP-адресу Google Cloud VM?

Як дізнатися зовнішню IP-адресу на сервері Google Cloud Platform (GCP)

Ви працюєте над проєктом і вам потрібна зовнішня (загальнодоступна, інтернет) IP-адреса вашої віртуальної машини для певних задач?

Хороша новина: отримати цю інформацію досить просто і швидко.

Можливо, ви вже спробували команду `ifconfig`, але вона, на жаль, показує лише внутрішні IP-адреси.

Хоча GCP і AWS пропонують зручні веб-інтерфейси для перегляду загальнодоступних IP-адрес, іноді потрібно отримати цю інформацію безпосередньо на сервері. Ось кілька команд, які вам допоможуть.

Отримання зовнішньої IP-адреси на віртуальній машині GCP

Я знаю два ефективні способи. Перший — використання утиліти `gcloud`.

gcloud compute addresses list

Ця команда відобразить всі IP-адреси, пов’язані з вашим проєктом. Це зручно для діагностики та швидкого перегляду інформації під час підключення до віртуальної машини.

Приклад результату:

[user@instance-name:~# gcloud compute addresses list
NAME                  ADDRESS/RANGE   TYPE      PURPOSE       NETWORK  REGION    SUBNET   STATUS
instance-1           xx.xx.xx.xx                                   us-west1           IN_USE
techukraine.net-nexus  xx.xx.xx.xx      INTERNAL  GCE_ENDPOINT           us-west1  default  IN_USE
techukraine.net               xx.xx.xx.xx                                     us-west1           IN_USE
techukraine.net-tools          xx.xx.xx.xx                                   us-west1           IN_USE
[user@instance-name:~#

Другий спосіб використовує команду `curl` для отримання даних з метаданих інстансу.

curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip

Важливо: Якщо віртуальна машина має декілька мережевих інтерфейсів, вам необхідно буде змінити індекс `0` на `1`, `2` і так далі, залежно від потрібного інтерфейсу.

Метадані надають багато корисної інформації, і ви можете отримати до них доступ.

[user@instance-name:~# curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/
attributes/
cpu-platform
description
disks/
guest-attributes/
hostname
id
image
licenses/
machine-type
maintenance-event
name
network-interfaces/
preempted
remaining-cpu-time
scheduling/
service-accounts/
tags
virtual-clock/
zone
[user@instance-name:~#

Ви бачите, про що я? Це може бути дуже корисно для автоматизації процесів та звітів.

Якщо вам також потрібна внутрішня IP-адреса, скористайтеся цією командою:

curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/ip

Вивчаєте адміністрування GCP? Тоді вам може бути цікавий цей онлайн курс.

Стаття виявилася корисною? Будь ласка, поділіться нею!