Вы размещаете внешние IP-адреса на сервере GCP.
Вы работаете над проектом, в котором вам нужно получить внешний (Internet / Public) IP соответствующего экземпляра виртуальной машины для приложения?
Хорошие новости – вы можете быстро получить его.
Я уверен, что вы попытались бы запустить команду ifconfig. и вы можете заметить, что результаты содержат только внутренний IP.
У GCP и AWS есть дружественный веб-интерфейс, в котором вы можете увидеть общедоступные IP-адреса, но если вам нужно получить их непосредственно на сервере, вам помогут следующие команды.
Получение внешнего IP на виртуальной машине GCP
Есть два возможных способа, которые я знаю. Первый использует команду gcloud.
gcloud compute addresses list
Приведенная выше команда покажет вам все ваши IP-адреса проекта.
Полезно для устранения неполадок или быстрого просмотра, когда вы вошли в систему на виртуальной машине.
Пример:
root@itisgood:~# gcloud compute addresses list
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS
instance-1 xx.xx.xx.xx us-west1 IN_USE
geekflare-nexus xx.xx.xx.xx INTERNAL GCE_ENDPOINT us-west1 default IN_USE
geekflare xx.xx.xx.xx us-west1 IN_USE
geekflare-tools xx.xx.xx.xx us-west1 IN_USE
root@itisgood:~#
и второй – с помощью команды curl для метаданных.
curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
Примечание: если у вас несколько сетевых интерфейсов, вам нужно изменить 0 после сетевых интерфейсов на 1 или 2 соответственно.
Метаданные мощные; Вы можете получить много метрик.
root@itisgood:~# 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
Понимаете, о чем я?
Это может быть удобно для отчетности и автоматизации.
Если вам также нужно получить внутренний IP, используйте команду ниже.
curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/ip