# Manage an instance's addresses and names

> See an instance's IP addresses, attach floating IPs, set reverse DNS and give the instance a name in your own domain.

Source: https://docs.coritan.com/cloud-compute/networking/

In the dashboard:

- /dashboard/compute/…/network: https://www.coritan.com/dashboard/compute

The **Network** tab shows the IP addresses that reach an instance, the floating IPs attached to it and the traffic it has used this month. From the tab you can also give the instance a name in one of your domains, set the reverse DNS of each address and put a web address in front of it.

Each instance comes with one IPv4 address, its *primary address*. More addresses are [floating IPs](/floating-ips/) that you order and attach.

## Before you begin

To name the instance, you need a DNS zone on your account in Coritan DNS. That can be your own domain, as [Add a domain you already own](/websites/add-an-existing-domain/) describes, or a free name under coritan.gg, as [Claim a free coritan.gg name](/proxies/coritan-gg-names/) describes.

## See the instance's addresses

In the [dashboard](https://www.coritan.com/dashboard/compute), go to **Cloud Compute**, open the instance and select the **Network** tab.

**Addresses**
: Every address attached to the instance, primary first. Each row shows the **Address** with its version and prefix length, its **Gateway**, its **Role** and **Since** when it has been attached. The primary address shows `Primary` under **Role**. Select **Copy address** to copy an address.

**Floating IPs**
: The floating IPs on your account that are attached to the instance, with their **Region** and **Since** date. Select an address to open it on the **Floating IPs** page, or **Reverse DNS** to open its reverse DNS.

**Interfaces**
: The instance's virtual network cards. Each shows its MAC address, which **Copy MAC address** copies, and its model and port speed.

**Traffic**
: How much the instance has sent and received this month, against its plan's allowance. [How instance traffic is counted](/cloud-compute/traffic/) explains the figures.

## Attach another address

1. On the **Floating IPs** card, select **Attach floating IP**. The **Floating IPs** page opens.
2. Attach the floating IP to the instance, as [Attach and detach a floating IP](/floating-ips/attach-and-detach/) describes.
3. Restart the instance from the header. The instance sets up the new address when it starts, as [Start, stop and restart an instance](/cloud-compute/power/#restart-from-the-dashboard-to-apply-changes) explains.

The address then appears on the **Addresses** card. If you have no floating IP to attach yet, [order one](/floating-ips/order-a-floating-ip/) first.

## Name the instance

The **Name this instance** card gives the instance a hostname in a zone you hold, such as `vm.example.com`. It writes an `A` record for each IPv4 address and an `AAAA` record for each IPv6 address attached to the instance.

1. On the **Network** tab, find the **Name this instance** card.
2. Under **Hostname**, type the full name, such as `vm.example.com`. If you hold a coritan.gg name, the field already holds a name under it, and selecting one of the names listed under the field fills it in.
3. Leave **Set reverse DNS to match** ticked to set the same name as the reverse DNS of the primary address. Mail servers expect it there.
4. Leave **Set the guest hostname too** unticked. The request fails with it ticked, because the instance's hostname cannot hold dots. To change the hostname inside the instance, use the **Access** tab, as [Change the hostname](/cloud-compute/access/#change-the-hostname) describes.
5. Select **Name this instance**.

The card confirms which records it wrote. Records the name already had stay in the zone, so remove any that point elsewhere on the zone's DNS page, as [Add, edit and delete DNS records](/websites/dns/manage-dns-records/) describes. We write the new records with a TTL of 300 seconds.

## Set reverse DNS

*Reverse DNS* is the name a lookup of an address returns. Mail servers compare it with the name your mail server gives when it connects, so set it on any address that sends mail. Set it to a name that resolves back to the same address.

1. On the **Reverse DNS** card, find the address and select **Edit**.
2. Type the full name, such as `mail.example.com`.
3. Select **Save**.

The card shows the new name next to the address. The name must be a full domain name with at least one dot.

## Put a web address in front of the instance

The **Web address** card creates a [web proxy](/proxies/web-proxies/) for a site on the instance. The proxy answers at a hostname you choose and forwards the requests to port 80 of the primary address, with HTTPS and the WAF in front.

1. On the **Web address** card, type the **Hostname**, such as `www.example.com`.
2. Leave **Request an HTTPS certificate** ticked to get a certificate for the name.
3. Select the button under the form, "Give this instance a web address".

When we host the name's zone, we write its DNS record for you. The card then lists the web address with **Manage route**, which opens it on the **Edge Proxy** page. [Create a web proxy](/proxies/web-proxies/create-a-web-proxy/) covers the options.

## Result

The **Addresses** card lists each address on the instance, the name you chose resolves to the instance's addresses, and the **Reverse DNS** card shows the name each address answers with.

## Troubleshooting

`No addresses yet`
: The instance has no address attached. [Attach a floating IP](/floating-ips/attach-and-detach/), then restart the instance from the header.

A new address does not answer
: The instance sets up addresses when it starts. Restart it from the header, as the steps above describe. A `reboot` typed inside the instance does not set them up.

`Enter a full hostname inside a zone you hold, such as vm.example.coritan.gg.`
: Type the whole name, including the domain, such as `vm.example.com`.

`Use a name inside a domain you hold here, or claim a platform name first`
: The name is not inside a DNS zone on your account. [Add the domain](/websites/add-an-existing-domain/) to Coritan DNS, or [claim a coritan.gg name](/proxies/coritan-gg-names/), then try again.

`Invalid hostname`
: **Set the guest hostname too** was ticked, and nothing was saved. Untick it and select **Name this instance** again.

A message that ends `is a CNAME; pick another name or remove that record first`
: The name already has a `CNAME` record, which cannot sit beside an `A` record. Choose another name, or delete the `CNAME` record in the zone first.

`This instance has no address yet`
: Attach an address to the instance before you name it.

`Could not set reverse DNS: PTR hostname must be a fully-qualified domain name`
: Type a full name with a domain, such as `mail.example.com`, not a single word.

A reverse lookup still returns the old name
: Resolvers can keep the old answer for a few minutes. If the old name stays for longer, [contact support](/support/) with the address.

## Related

- [Floating IPs](/floating-ips/) covers ordering, attaching and moving addresses.
- [Set reverse DNS for a floating IP](/floating-ips/reverse-dns/) sets reverse DNS from the **Floating IPs** page, including the hosts of a subnet.
- [How instance traffic is counted](/cloud-compute/traffic/) explains the **Traffic** card.
- [How DNS hosting works](/websites/dns/) explains the zones the name goes in.

## With the API

`GET /api/v1/client/vps/{uuid}/ips` lists the addresses attached to the instance, primary first. Each has the `address`, `prefix_len`, `subnet_mask`, `gateway`, `is_primary`, `attached_at`, `role`, `status`, and the `ip_service_id` of the floating IP it belongs to. `role` is `standalone` for a single address and `host` for an address from a subnet.

`GET /api/v1/client/vps/{uuid}/ptr` returns the reverse DNS of every attached address as `items`. Each item has the `address`, `is_primary` and `hostname`, which is `null` when the address has none.

`PATCH /api/v1/client/vps/{uuid}/ptr` sets the reverse DNS of one address. Send `hostname`, and `address` to choose an address other than the primary one:

```bash
curl -X PATCH https://api.coritan.com/api/v1/client/vps/$INSTANCE_UUID/ptr \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hostname": "mail.example.com", "address": "203.0.113.10"}'
```

It answers with the `address` and its new `hostname`. A name that is not a full domain name answers `422` with a message that starts `PTR hostname`. An instance with no address answers `404` with `This instance has no address to name`, and an address that is not on the instance answers `404` with `That address is not attached to this instance`.

`POST /api/v1/client/vps/{uuid}/name` names the instance. Send the full `hostname`, from 3 to 253 characters. `set_ptr` is `true` when left out. Leave `set_hostname` out: with a full name it answers `400` with `Invalid hostname` and saves nothing. To set the hostname inside the instance, use `PATCH /api/v1/client/vps/{uuid}/hostname`, as [Manage an instance's password, SSH keys and hostname](/cloud-compute/access/#with-the-api) describes.

```bash
curl -X POST https://api.coritan.com/api/v1/client/vps/$INSTANCE_UUID/name \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hostname": "vm.example.com", "set_ptr": true}'
```

```json
{
  "hostname": "vm.example.com",
  "zone": "example.com",
  "records": [{"type": "A", "content": "203.0.113.10"}],
  "ptr": {
    "id": 9,
    "inventory_id": 41,
    "hostname": "vm.example.com",
    "address": "203.0.113.10",
    "version": "ipv4",
    "service_id": 118,
    "created_at": "2026-09-25T10:00:00",
    "updated_at": "2026-09-25T10:00:00"
  }
}
```

`records` lists only the records the request created. `ptr` is the primary address's reverse DNS record, or `null` when you send `"set_ptr": false`. A name outside your zones answers `403`, an instance with no address answers `409` with `This instance has no address yet`, and a name that holds a `CNAME` answers `409`.

The [Cloud Compute API reference](/api/reference/client/cloud-compute/#op-post-api-v1-client-vps-uuid-name) lists every field.

## API

- `GET /api/v1/client/vps/{uuid}/ips`: Get instance IPs (https://docs.coritan.com/api/reference/client/cloud-compute/#op-get-api-v1-client-vps-uuid-ips)
- `GET /api/v1/client/vps/{uuid}/ptr`: Reverse DNS of every address attached to the instance (https://docs.coritan.com/api/reference/client/cloud-compute/#op-get-api-v1-client-vps-uuid-ptr)
- `PATCH /api/v1/client/vps/{uuid}/ptr`: Set the reverse DNS of one attached address (the primary by default) (https://docs.coritan.com/api/reference/client/cloud-compute/#op-patch-api-v1-client-vps-uuid-ptr)
- `POST /api/v1/client/vps/{uuid}/name`: Name instance (https://docs.coritan.com/api/reference/client/cloud-compute/#op-post-api-v1-client-vps-uuid-name)
