配置弹性 IP
Equinix Metal使您能够通过控制台和 API 为您的服务器静态分配弹性 IP 地址。
可用作弹性 IP 的 IP 地址:
- Addresses in Reserved Public IPv4 subnets
- Global Anycast IP Addresses
- Private IPv4 Addresses
- Public IPv6 Addresses
所有 IP 地址都必须与您分配给它们的服务器位于同一个 Metro 和 Project 中,全局任播 IP 地址除外(可在全球范围内使用)。
向现有服务器添加弹性 IP 地址
- Console
- CLI
- API
在服务器的“网络”选项卡中的“弹性 IP”部分,单击“+ 分配新的弹性 IP”。此时将出现一个侧边栏,您可以在其中选择要分配的子网和 IP 地址。

您可以使用 metal ip assign 命令为服务器分配弹性 IP 地址。请将要分配给服务器的 IP 地址和 CIDR 提供给 --address 标志。
metal ip assign --device-id <UUID> --address 198.51.100.3/31
分配命令的响应在 ID 列中包含一个 UUID。如果您稍后想要取消分配弹性 IP,则需要此 UUID。
+--------------------------------------+----------------+--------+----------------------+
| ID | ADDRESS | PUBLIC | CREATED |
+--------------------------------------+----------------+--------+----------------------+
| c6377504-b6cd-4bf9-aaea-ebba769e0b7e | 198.51.100.3 | true | 2022-12-21T16:28:58Z |
+--------------------------------------+----------------+--------+----------------------+
要在 API 中为服务器分配弹性 IP,请向 /devices/{id}/ips 端点发送 POST 请求。服务器的 UUID 在路径中指定,IP 地址和 CIDR 则在请求正文中传递。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/devices/{id}/ips" \
-d '{
"address": "198.51.100.3/31"
}'
您可以通过仅发送单个 IP 地址来分配子网中的单个 IP 地址。您可以通过发送整个子网的大小来分配整个子网,或者您可以指定任何更小的子网大小。完整的参数选项可在API 参考中找到。
注意——在分配请求的响应中,"id" 字段会包含一个 UUID。如果您之后想要取消分配弹性 IP 地址,则需要用到此 UUID。
主机 IP 配置
与管理 IP 不同,弹性 IP 不会自动在您的服务器上配置。出于安全考虑,一旦操作系统安装完成,我们便无法访问服务器并更新其网络配置文件。您必须自行将新的 IP 地址添加到服务器的网络配置中。
以示例 IP 地址 198.51.100.3 为例,进行以下配置更改后,该 IP 地址即可在您的服务器上使用:
- Ubuntu/Debian
- netplan
临时配置(重启后不会恢复):
sudo ip addr add 198.51.100.3 dev lo
要使其永久生效,请添加到 /etc/network/interfaces:
auto lo:0
iface lo:0 inet static
address 198.51.100.3
netmask 255.255.255.255
临时配置(重启后不会恢复):
sudo ip addr add 198.51.100.3 dev lo
要使其永久生效,请添加到 /etc/netplan/00-elastic.yaml:
network:
version: 2
renderer: networkd
ethernets:
lo:
addresses:
- 127.0.0.1/8
- 198.51.100.3/32
然后是 sudo netplan try 或 sudo netplan apply
跟踪弹性 IP 地址
- Console
- CLI
- API
要在控制台中查看子网和 IP 地址的状态,请单击项目的“IP”选项卡。单击 IP 块的“操作”菜单,即可查看哪些子网和 IP 地址已分配给哪些服务器。

要查看服务器级别的信息,请导航至服务器的“网络”选项卡。在“弹性 IP”部分,您可以查看分配给该服务器的弹性 IP 地址。

可以通过 metal ip get 命令获取项目的所有保留块 IP 地址信息。
`metal ip get -p <project-uuid>`
要检查特定保留 IP 地址块中可用的子网和 IP 地址,请使用 metal ip available 命令。--reservation-id 可以通过 metal ip get -p <project-uuid> 命令获得。
metal ip available --reservation-id <reservation_UUID> --cidr <size_of_subnet>
您可以使用 metal device get 命令的响应的 "ip_addresses" 对象来检查服务器分配的 IP 地址,使用 --output json 标志来获取完整响应。
device get -i <device-id> --output json
响应示例(截断):
{
"id": "d97f0c03-10d2-4667-9465-7f7a27a4f7a7",
....
"ip_addresses": [
{
"id": "4cc7f67b-522e-4b6c-82a5-3b2505be326a",
"address": "198.51.100.3",
"gateway": "198.51.100.2",
"network": "198.51.100.1",
"address_family": 4,
"netmask": "255.255.255.252",
"public": true,
....
"metro": {
"id": "2991b022-b8c4-497e-8db7-5a407c3a209b",
"name": "Silicon Valley",
"code": "sv",
"country": "US"
},
}
]
....
}
您可以通过向 /ips/{id} 端点发送 GET 请求来检查项目中子网和 IP 地址的状态。IP 地址的 UUID(无论是保留 IP 还是管理 IP 块)都应包含在请求路径中。
curl -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/ips/{id}"
响应将包括在指定的 IP 地址块之外使用的 IP 和子网。
要查看服务器级别的信息,请向 /devices/{id}/ips 端点发送 GET 请求。
curl -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/devices/{id}/ips"
取消分配弹性 IP 地址
- Console
- CLI
- API
要从服务器取消分配子网或 IP 地址,请导航至服务器的“网络”选项卡。在“弹性 IP”部分下,选择弹性 IP,然后单击“分离”以将其从服务器取消分配。

使用 metal ip unssign 命令取消分配弹性 IP 地址。您可以从原始分配命令的响应中获取 assignment-id,也可以从 device get -i <device-id> -o json 命令响应的 "ip_addresses" 对象中的 "id" 字段获取 assignment-id。
ip unassign --id <assignment-id>
其他子网和 IP 地址选项
静态分配 IP 或子网并不是使用保留子网和管理块中的 IP 地址的唯一方法。
- 如果您已预留公共 IPv4 地址,则可以在配置时将这些地址和子网分配给服务器。
- 您可以使用 BGP 来发布 IP 地址。
此外,Equinix Metal 还提供 Metal Gateways,它为子网提供公共或私有 IPv4 地址作为网关。