Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
管理 EC2 实例的 IPv4 地址
您可以在启动实例时为其分配公有 IPv4 地址。您可以在控制台中通过 Instances(实例)或 Network Interfaces(网络接口)页面查看实例的 IPv4 地址。
在启动时分配公有 IPv4 地址
所有子网都有一个属性可确定在子网中启动的实例是否分配了公有 IP 地址。默认情况下,非默认子网的此属性设置为 false,默认子网的此属性设置为 true。启动实例时,您也可以通过公有 IPv4 寻址功能来控制是否为实例分配公有 IPv4 地址;您可以覆盖子网 IP 寻址属性的默认行为。公有 IPv4 地址从 Amazon 的公有 IPv4 地址池进行分配,并分配给设备索引为 0 的网络接口。此功能取决于启动实例时的特定条件。
注意事项
-
启动后,您可以通过管理与网络接口关联的 IP 地址来将实例的公有 IP 地址取消分配。有关公有 IPv4 地址的更多信息,请参阅公有 IPv4 地址。
-
如果指定多个网络接口,则不能自动分配公有 IP 地址。此外,如果指定设备索引为 0 的某个现有网络接口,则无法使用自动分配公有 IP 功能来覆盖子网设置。
-
无论您是否在启动时为实例分配了公有 IP 地址,您都可以在启动后将弹性 IP 地址与实例相关联。有关更多信息,请参阅 弹性 IP 地址。您还可以修改子网的公有 IPv4 寻址行为。有关更多信息,请参阅修改子网的公有 IPv4 寻址属性。
- Console
-
在启动时分配公有 IPv4 地址
请按照步骤启动实例,并在配置网络设置时选择 Auto-assign Public IP(自动分配公有 IP)。
- Amazon CLI
-
在启动时分配公有 IPv4 地址
使用 run-instances 命令和 --associate-public-ip-address
选项。
--associate-public-ip-address
- PowerShell
-
在启动时分配公有 IPv4 地址
将 New-EC2Instance cmdlet 与 -AssociatePublicIp
参数结合使用。
-AssociatePublicIp $true
在启动时分配私有 IPv4 地址
您可以在子网 IPv4 地址范围中指定一个私有 IPv4 地址,也可以让 Amazon EC2 为您选择一个。该地址会分配给主网络接口。
要在启动后分配 IPv4 地址,请参阅为实例分配辅助 IP 地址。
- Console
-
在启动时分配私有 IPv4 地址
按照程序启动实例。配置网络设置时,展开高级网络配置,然后输入主 IP 的值。
- Amazon CLI
-
在启动时分配私有 IPv4 地址
使用 run-instances 命令和 --private-ip-address
选项。
--private-ip-addresses 10.251.50.12
要让 Amazon EC2 选择 IP 地址,请省略此选项。
- PowerShell
-
在启动时分配私有 IPv4 地址
将 New-EC2Instance cmdlet 与 -PrivateIpAddress
参数结合使用。
-PrivateIpAddress 10.251.50.12
要让 Amazon EC2 选择 IP 地址,请省略此参数。
查看主 IPv4 地址
公有 IPv4 地址在控制台中显示为网络接口的属性,但它通过 NAT 映射到主要私有 IPv4 地址。因此,如果您检查实例网络接口的属性 (例如,通过 ifconfig
[Linux] 或 ipconfig
[Windows]),则不会显示公有 IPv4 地址。
- Console
-
- Amazon CLI
-
查看实例的主 IPv4 地址
可以使用 describe-instances 命令。
aws ec2 describe-instances \
--instance-ids i-1234567890abcdef0
\
--query "Reservations[].Instances[].PrivateIpAddress" \
--output text
下面是示例输出。
10.251.50.12
- PowerShell
-
查看实例的主 IPv4 地址
使用 Get-EC2Instance cmdlet。
(Get-EC2Instance `
-InstanceId i-1234567890abcdef0
).Instances.PrivateIpAddress
下面是示例输出。
10.251.50.12
使用实例元数据查看 IPv4 地址
可以通过检索实例元数据来获取实例的 IPv4 地址。有关更多信息,请参阅 使用实例元数据管理 EC2 实例。
使用实例元数据查看 IPv4 地址
-
连接到您的实例。有关更多信息,请参阅 连接到您的 EC2 实例。
-
运行以下命令之一。
- 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/local-ipv4
Windows
在 Windows 实例上运行以下命令。
[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/local-ipv4
- IMDSv1
-
Linux
在 Linux 实例上运行以下命令。
curl http://169.254.169.254/latest/meta-data/local-ipv4
Windows
在 Windows 实例上运行以下命令。
Invoke-RestMethod http://169.254.169.254/latest/meta-data/local-ipv4
-
使用以下命令之一访问公有 IP 地址。如果实例关联了弹性 IP 地址,则命令会返回该弹性 IP 地址。
- IMDSv2
-
Linux
在 Linux 实例上运行以下命令。
[ec2-user ~]$
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/public-ipv4
Windows
在 Windows 实例上运行以下命令。
[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/public-ipv4
- IMDSv1
-
Linux
在 Linux 实例上运行以下命令。
curl http://169.254.169.254/latest/meta-data/public-ipv4
Windows
在 Windows 实例上运行以下命令。
Invoke-RestMethod http://169.254.169.254/latest/meta-data/public-ipv4