---
title: VPC
url: https://docs.vultr.com/products/compute/instances/bare-metal/networking/vpc
description: A private network solution that allows you to securely connect multiple Vultr instances within isolated network environments.
publish_date: 2024-09-23T20:20:31.314408Z
last_updated: 2026-05-26T18:50:11.899518Z
---

# How to Attach VPC Networks on a Vultr Bare Metal Instance

A Virtual Private Cloud (VPC) network enables a secure and isolated private networking interface on your instance for communication with other instances in the same network. You can attach a single VPC network to enable communication between a Bare Metal Instance and other nodes attached to the same network.

> [!NOTE]
> You must [restart the instance](https://docs.vultr.com/products/compute/bare-metal/management/restart-instance) for `cloud-init` to reconfigure the network interfaces.

Follow this guide to attach a VPC network on a Vultr Bare Metal instance using the Vultr Console, API, CLI, or Terraform.

=== "Vultr Console"

    1. Navigate to **Products** and click **Compute**.
    1. Click your target instance to open its management page.
    1. Navigate to the **Settings** tab.
    1. Click **IPv4** on the left navigation menu.
    1. Click **Enable VPC** to attach a new VPC network to your instance.
    1. Click **Enable VPC** in the confirmation prompt to apply changes.
    1. Click **Attach VPC** in the confirmation prompt to apply changes to your instance.

=== "Vultr API"

    1. Send a `GET` request to the [**List Bare Metal Instances** endpoint](https://www.vultr.com/api/#tag/baremetal/operation/list-baremetals) and note the target instance's ID in your output.

        ```console
        $ curl "https://api.vultr.com/v2/bare-metals" \
          -X GET \
          -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

    1. Send a `GET` request to the [**List VPCs** endpoint](https://www.vultr.com/api/#tag/VPCs/operation/list-vpcs) to list all VPCs in your Vultr account and note the target VPC network's ID.

        ```console
        $ curl "https://api.vultr.com/v2/vpcs" \
          -X GET \
          -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

    1. Send a `POST` request to the [**Attach VPC to Instance** endpoint](https://www.vultr.com/api/#tag/instances/operation/attach-instance-vpc) to attach the VPC network to the Bare Metal instance.

        ```console
        $ curl "https://api.vultr.com/v2/instances/{instance-id}/vpcs/attach" \
          -X POST \
          -H "Authorization: Bearer ${VULTR_API_KEY}" \
          -H "Content-Type: application/json" \
          --data '{
            "vpc_id": "<vpc-id>"
          }'
        ```

=== "Vultr CLI"

    1. List all Bare Metal instances in your Vultr account and note the target instance's ID.

        ```console
        $ vultr-cli bare-metal list
        ```

    1. List all VPC networks in your Vultr account and note the target VPC network's ID.

        ```console
        $ vultr-cli vpc list
        ```

    1. Attach the VPC network to the instance.

        ```console
        $ vultr-cli instance vpc attach <instanceID> --vpc-id="<vpc-id>"
        ```

=== "Terraform"

    1. Open your Terraform configuration for the existing Bare Metal instance.

    1. Create (or reference) a VPC network and attach it to the Bare Metal instance.

        ```terraform
        # Create a new VPC network
        resource "vultr_vpc" "private_net" {
            region      = "del"
            description = "Private network for Bare Metal workloads"
        }

        # Attach the VPC network to the Bare Metal instance
        resource "vultr_bare_metal_server" "bm1" {
            # ...existing fields (region, plan, os_id, label, etc.)

            vpc_ids = [vultr_vpc.private_net.id]
        }
        ```

    1. Apply the configuration and observe the following output:

        ```
        Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
        ```
