Привязать к виртуальной машине публичный IP-адрес
Если вы создали ВМ без публичного IP-адреса, вы можете привязать к ней адрес, зарезервированный вами в Yandex Virtual Private Cloud или выбранный Compute Cloud автоматически из свободных адресов. Зарезервированный IP-адрес и ВМ должны находиться в одной зоне доступности.
Если у ВМ несколько сетевых интерфейсов, вы можете привязать публичные IP-адреса к каждому из них.
- В консоли управления
выберите каталог, которому принадлежит ВМ. - Выберите сервис Compute Cloud.
- На панели слева выберите
Виртуальные машины. - Выберите нужную ВМ.
- В открывшемся окне в секции Сеть в правом верхнем углу блока нужного сетевого интерфейса нажмите
и выберите Добавить публичный IP-адрес. В открывшемся окне:- В поле Публичный адрес выберите
Автоматически
, чтобы автоматически получить IP-адрес, илиСписок
, чтобы выбрать зарезервированный адрес из списка. - (Опционально) Если в поле Публичный адрес вы выбрали
Автоматически
, включите опцию Защита от DDoS-атак. Подробнее см. в разделе Yandex DDoS Protection в Virtual Private Cloud. - Если в поле Публичный адрес вы выбрали
Список
, выберите IP-адрес, который хотите привязать к ВМ. IP-адрес и ВМ должны находиться в одной зоне доступности. - Нажмите кнопку Добавить.
- В поле Публичный адрес выберите
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы привязать к ВМ публичный IP-адрес выполните команду CLI:
yc compute instance add-one-to-one-nat \
--id=<идентификатор_ВМ> \
--network-interface-index=<номер_сетевого_интерфейса_ВМ> \
--nat-address=<IP-адрес>
Где:
-
--id
— идентификатор ВМ. Получите список идентификаторов ВМ, доступных в каталоге, с помощью команды CLIyc compute instance list
. -
--network-interface-index
— номер сетевого интерфейса ВМ. По умолчанию —0
. Чтобы получить список сетевых интерфейсов ВМ и их номера, выполните командуyc compute instance get <идентификатор_ВМ>
. -
--nat-address
— публичный IP-адрес, который нужно присвоить ВМ. Необязательный параметр. Если параметр--nat-address
не задан, публичный IP-адрес будет присвоен ВМ автоматически.Получите список зарезервированных публичных IP-адресов, доступных в каталоге, с помощью команды CLI
yc vpc address list
. IP-адрес и ВМ должны находиться в одной зоне доступности.
Пример использования:
yc compute instance add-one-to-one-nat \
--id=fhmsbag62taf******** \
--network-interface-index=0 \
--nat-address=51.250.*.***
Результат:
id: fhmsbag62taf********
folder_id: b1gv87ssvu49********
created_at: "2022-05-06T10:41:56Z"
...
network_settings:
type: STANDARD
placement_policy: {}
Подробнее о команде yc compute instance add-one-to-one-nat
см. в справочнике CLI.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Чтобы создать публичный IP-адрес и привязать его к сетевому интерфейсу ВМ, используйте ресурс
yandex_vpc_address
и укажите полученный адрес в полеnat_ip_address
блокаnetwork_interface
нужного сетевого интерфейса в конфигурации ресурсаyandex_compute_instance
:# Создание статического IP-адреса. resource "yandex_vpc_address" "addr" { name = "vm-adress" external_ipv4_address { zone_id = "<зона_доступности>" } } # Создание ВМ. resource "yandex_compute_instance" "vm-1" { name = "<имя_ВМ>" platform_id = "standard-v3" resources { core_fraction = 20 cores = 2 memory = 1 } ... ## Назначение сетевому интерфейсу ВМ подсети и IP-адреса в блоке network_interface. network_interface { subnet_id = "<идентификатор_подсети_ВМ>" nat = true nat_ip_address = yandex_vpc_address.addr.external_ipv4_address[0].address } ... }
Где
nat_ip_address
— публичный IP-адрес, который будет привязан к сетевому интерфейсу ВМ. Ресурсyandex_vpc_address
содержит в себе список элементов, где[0]
— первый элемент списка, содержащий в себе IP-адрес. Если у вас уже есть зарезервированный публичный IP-адрес, который вы хотите привязать в ВМ, укажите его в полеnat_ip_address
:nat_ip_address = "<IP-адрес>"
IP-адрес и ВМ должны находиться в одной зоне доступности.
Более подробную информацию о параметрах ресурса
yandex_compute_instance
см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления
. -
Чтобы привязать публичный IP-адрес к сетевому интерфейсу ВМ, воспользуйтесь методом REST API addOneToOneNat для ресурса Instance или вызовом gRPC API InstanceService/AddOneToOneNat.
К сетевому интерфейсу ВМ будет привязан публичный IP-адрес. Вы сможете использовать этот IP-адрес, чтобы подключиться к ВМ по SSH.