Внешний публичный IP-адрес не привязан к сетевому интерфейсу виртуальной машины.Вместо этого сетевой интерфейс получил частный IP-адрес.
Внутри VPC есть NAT-to-One.Публичный IP-адрес привязан к публичной стороне NAT.Вот почему вы не можете видеть публичный IP-адрес с ifconfig
.
. Google сохраняет публичный IP-адрес в экземпляре metadata
.
. Выполните эту команду, чтобы получить публичный IP-адрес:
curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance
/network-interfaces/0/access-configs/0/external-ip
У IP-адреса нет новой строки, поэтому ваша командная строка будет добавлена к строке IP-адреса.
Вы также можете сохранить публичный IP-адрес в переменной среды изатем распечатайте его на консоли.
export PUBLIC_IP=$(curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip)
echo $PUBLIC_IP
Сохранение и получение метаданных экземпляра