管理 EC2 实例的 IPv6 地址
如果您的 VPC 和子网有与之关联的 IPv6 CIDR 块,则您可以在启动期间或之后向实例分配 IPv6 地址。您可以在控制台的实例页面或网络接口页面上访问实例的 IPv6 地址。以下任务为您的实例配置 IP 地址。要改为配置网络接口的 IP 地址,请参阅管理网络接口的 IP 地址。
向实例分配 IPv6 地址
您可以在子网 IPv6 地址范围中指定一个 IPv6 地址,也可以让 Amazon EC2 为您选择一个。该地址会分配给主网络接口。请注意,C1、M1、M2、M3 和 T1 实例类型不支持 IPv6 地址。
- Console
-
在启动后分配 IPv6 地址
按照程序启动实例。在配置网络设置时,选择自动分配 IPv6 IP 选项。如果看不到此选项,则表示所选子网没有关联任何 IPv6 CIDR 块。
在启动实例后分配 IPv6 地址
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Instances (实例)。
-
选择您的实例,然后依次选择操作、联网和管理 IP 地址。
-
展开网络接口。在 IPv6 地址下,选择分配新 IP 地址。
-
输入子网范围内的一个 IPv6 地址,也可将该字段留空,以便让 Amazon EC2 为您选择 IPv6 地址。如果看不到此选项,则表示实例子网没有关联任何 IPv6 CIDR 块。
-
选择保存。
- Amazon CLI
-
在启动后分配 IPv6 地址
使用 run-instances
命令和 --ipv6-addresses
选项。以下示例会分配两个 IPv6 地址。--ipv6-addresses Ipv6Address=
2001:db8::1234:5678:1.2.3.4
Ipv6Address=2001:db8::1234:5678:5.6.7.8
要让 Amazon EC2 选择 IPv6 地址,请改用
--ipv6-address-count
选项。以下示例会分配两个 IPv6 地址。--ipv6-address-count 2
在启动实例后分配 IPv6 地址
使用 assign-ipv6-addresses
命令。以下示例会分配两个 IPv6 地址。 aws ec2 assign-ipv6-addresses \ --network-interface-id
eni-1234567890abcdef0
\ --ipv6-addresses2001:db8::1234:5678:1.2.3.4
2001:db8::1234:5678:5.6.7.8
要让 Amazon EC2 选择 IPv6 地址,请改用
--ipv6-address-count
选项。以下示例会分配两个 IPv6 地址。aws ec2 assign-ipv6-addresses \ --network-interface-id
eni-1234567890abcdef0
\ --ipv6-address-count 2 - PowerShell
-
在启动后分配 IPv6 地址
将 New-EC2Instance cmdlet 与
-Ipv6Address
参数结合使用。以下示例会分配两个 IPv6 地址。-Ipv6Address $ipv6addr1,$ipv6addr2
按如下所示定义 IPv6 地址。
$ipv6addr1 = New-Object Amazon.EC2.Model.InstanceIpv6Address $ipv6addr1.Ipv6Address = "
2001:db8::1234:5678:1.2.3.4
" $ipv6addr2 = New-Object Amazon.EC2.Model.InstanceIpv6Address $ipv6addr2.Ipv6Address = "2001:db8::1234:5678:5.6.7.8
"要让 Amazon EC2 选择 IPv6 地址,请改用
-Ipv6AddressCount
参数。以下示例会分配两个 IPv6 地址。-Ipv6AddressCount 2
在启动实例后分配 IPv6 地址
使用 Register-EC2Ipv6AddressList cmdlet。以下示例会分配两个 IPv6 地址。
Register-EC2Ipv6AddressList ` -NetworkInterfaceId
eni-1234567890abcdef0
` -Ipv6Address "2001:db8::1234:5678:1.2.3.4
","2001:db8::1234:5678:5.6.7.8
"要让 Amazon EC2 选择 IPv6 地址,请改用
-Ipv6AddressCount
参数。以下示例会分配两个 IPv6 地址。Register-EC2Ipv6AddressList ` -NetworkInterfaceId
eni-1234567890abcdef0
` -Ipv6AddressCount 2
查看实例的 IPv6 地址
您可以查看实例的 IPv6 地址。
- Console
-
查看实例的 IPv6 地址
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择实例。
-
在联网选项卡上,找到 IPv6 地址。
- Amazon CLI
-
查看实例的 IPv6 地址
可以使用 describe-instances
命令。 aws ec2 describe-instances \ --instance-ids
i-1234567890abcdef0
\ --query "Reservations[*].Instances[].Ipv6Address" \ --output text下面是示例输出。
2001:db8::1234:5678:1.2.3.4
- PowerShell
-
查看实例的 IPv6 地址
使用 Get-EC2Instance cmdlet。
(Get-EC2Instance ` -InstanceId
i-1234567890abcdef0
).Instances.Ipv6Address下面是示例输出。
2001:db8::1234:5678:1.2.3.4
使用实例元数据查看 IPv6 地址
连接到实例后,您可以使用实例元数据检索 IPv6 地址。首先,您必须从 http://169.254.169.254/latest/meta-data/network/interfaces/macs/
中获取实例的 MAC 地址。
- IMDSv2
-
Linux
在 Linux 实例上运行以下命令。
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/network/interfaces/macs/
mac-address
/ipv6sWindows
在 Windows 实例上运行以下 cmdlet。
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} ` -Method PUT -Uri http://169.254.169.254/latest/api/token
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} ` -Method GET -Uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/
mac-address
/ipv6s - IMDSv1
-
Linux
在 Linux 实例上运行以下命令。
curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/
mac-address
/ipv6sWindows
在 Windows 实例上运行以下 cmdlet。
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/
mac-address
/ipv6s
取消分配给实例的 IPv6 地址
您可以随时取消分配给实例的 IPv6 地址。
- Console
-
取消分配给实例的 IPv6 地址
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Instances (实例)。
-
选择您的实例,然后依次选择操作、联网和管理 IP 地址。
-
展开网络接口。在 IPv6 地址下方,选择 IPv6 地址旁边的取消分配。
-
选择 Save。
- Amazon CLI
-
取消分配给实例的 IPv6 地址
使用 unassign-ipv6-addresses
命令。 aws ec2 unassign-ipv6-addresses \ --network-interface-id
eni-1234567890abcdef0
\ --ipv6-addresses2001:db8::1234:5678:1.2.3.4
- PowerShell
-
取消分配给实例的 IPv6 地址
使用 Unregister-EC2Ipv6AddressList cmdlet。
Unregister-EC2Ipv6AddressList ` -NetworkInterfaceId
eni-1234567890abcdef0
` -Ipv6Address2001:db8::1234:5678:1.2.3.4