

# 弹性网络接口
<a name="using-eni"></a>

*弹性网络接口* 是 VPC 中表示虚拟网卡的逻辑网络组件。您可以创建并配置网络接口，并将其连接到同一可用区中启动的实例。将网络接口附加到一个实例或者从一个实例分离并重新附加到另一实例时，网络接口的属性不会变化。当您将网络接口从一个实例移动到另一个实例时，网络流量也会从原始实例重定向到新实例。

请注意，该 AWS 资源在 AWS 管理控制台 和 Amazon EC2 API 中称为*网络接口*。因此，我们在本文档中使用“网络接口”，而不是“弹性网络接口”。本文档中的“网络接口”术语始终表示“弹性网络接口”。

**网络接口属性**

网络接口可以包含以下属性：
+ 您子网的 IPv4 地址范围内的一个主要私有 IPv4 地址
+ 您子网的 IPv6 地址范围内的一个主 IPv6 地址
+ 子网 IPv4 地址范围内的辅助私有 IPv4 地址
+ 每个私有 IPv4 地址一个弹性 IP 地址（IPv4）
+ 一个公有 IPv4 地址
+ 辅助 IPv6 地址
+ 安全组
+ 一个 MAC 地址
+ 一个源/目标检查标记
+ 一个描述

**监控流量**  
您可以在网络接口上启用 VPC 流日志以捕获有关出入该网络接口的流量的信息。创建流日志后，您可以在 Amazon CloudWatch Logs 中查看和检索其数据。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [VPC 流日志](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

**Topics**
+ [网络接口概念](#eni-basics)
+ [网卡](#network-cards)
+ [每个网络接口的最大 IP 地址数](AvailableIpPerENI.md)
+ [为 Amazon EC2 实例创建网络接口](create-network-interface.md)
+ [EC2 实例的网络接口连接](network-interface-attachments.md)
+ [管理网络接口的 IP 地址](managing-network-interface-ip-addresses.md)
+ [修改网络接口属性](modify-network-interface-attributes.md)
+ [您的 Amazon EC2 实例的多个网络接口](scenarios-enis.md)
+ [请求者托管的网络接口](requester-managed-eni.md)
+ [Amazon EC2 网络接口的前缀委派](ec2-prefix-eni.md)
+ [删除网络接口](delete_eni.md)

## 网络接口概念
<a name="eni-basics"></a>

以下是开始使用网络接口时需要理解的重要概念。

**主网络接口**  
每个实例都有一个默认网络接口，称为*主网络接口*。您无法将主网络接口与实例分离。

**辅助网络接口**  
您可以创建辅助网络接口并将其附加到您的实例。最大网络接口数量因实例类型而不同。有关更多信息，请参阅 [每个网络接口的最大 IP 地址数](AvailableIpPerENI.md)。

**网络接口的 IPv4 地址**  
在仅 IPv4 或双堆栈子网中启动 EC2 实例时，该实例将在子网的 IPv4 地址范围内收到一个主要私有 IP 地址。您还可以指定其他私有 IPv4 地址，即辅助私有 IPv4 地址。与主要私有 IP 地址不同的是，辅助私有 IP 地址可以从一个实例重新分配到另一个实例。

**网络接口的公有 IPv4 地址**  
所有子网都有一个可以修改的属性，该属性可以确定在子网中创建的网络接口（以及因此在该子网中启动的实例）是否会分配一个公有 IPv4 地址。有关更多信息，请参阅《*Amazon VPC 用户指南*》中的[子网设置](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-settings)。在启动实例时，将为主网络接口分配 IP 地址。如果启动实例时指定现有的网络接口作为主网络接口，则公有 IPv4 地址由该网络接口确定。  
当您创建一个网络接口时，它会继承子网的公有 IPv4 寻址属性。如果您日后修改了子网的公有 IPv4 寻址属性，网络接口仍会继续使用在其创建时生效的设置。  
当该实例停止、休眠或终止后，我们会释放公有 IP 地址。当您启动已停止或休眠状态的实例时，我们会分配新的公有 IP 地址，除非其具有辅助网络接口或与弹性 IP 地址关联的辅助私有 IPv4 地址。

**网络接口的 IPv6 地址**  
如果您将 IPv6 CIDR 块与您的 VPC 和子网关联，则可以将子网范围内的 IPv6 地址分配给一个网络接口。每个 IPv6 地址可以分配给一个网络接口。  
所有子网都有一个可以修改的属性，该属性可以确定在子网中创建的网络接口 (以及在该子网中启动的实例) 是否会自动分配到一个处于子网范围内的 IPv6 地址。在启动实例时，将为主网络接口分配 IPv6 地址。

**网络接口的弹性 IP 地址**  
您可以将弹性 IP 地址与网络接口的其中一个私有 IPv4 地址关联。您可以为每个私有 IPv4 地址关联一个弹性 IP 地址。如果解除弹性 IP 地址与网络接口的关联，则可以释放该弹性 IP 地址或将其与其他实例关联。

**终止操作**  
您可以设置附加到实例的网络接口的终止操作。您可以指定在终止网络接口附加到的实例时是否自动删除该接口。

**源/目标检查**  
您可以启用或禁用源/目标检查，以确保实例是其接收的任何流量的源或目标。默认情况下会启用源/目标检查。如果实例运行网络地址转换、路由或防火墙等服务，您必须禁用源/目标检查。

**请求者托管的网络接口**  
这些网络接口由 AWS 服务创建和管理，以使您能够使用一些资源和服务。您自己无法管理这些网络接口。有关更多信息，请参阅 [请求者托管的网络接口](requester-managed-eni.md)。

**前缀委派**  
前缀是预留的私有 IPv4 或 IPv6 CIDR 范围，用于自动或手动分配给与实例关联的网络接口。通过使用委派前缀，您可以通过将一系列 IP 地址分配为单个前缀来更快启动服务。

**托管网络接口**  
*托管网络接口*是指由服务提供商（例如 Amazon EKS 自动模式）管理的实例。您不能直接修改托管网络接口的设置。托管网络接口由**托管**字段中的 **true** 进行标识。有关更多信息，请参阅 [Amazon EC2 托管式实例](amazon-ec2-managed-instances.md)。

## 网卡
<a name="network-cards"></a>

大多数实例类型都支持一个网卡。支持多个网卡的实例类型可提供更高的网络性能，包括 100 Gbps 以上的带宽能力和更高的数据包速率性能。在将网络接口附加到支持多个网卡的实例时，可以为该网络接口选择网卡。必须将主网络接口分配给网卡索引 0。

EFA 和仅限 EFA 的网络接口算作网络接口。每个网卡只能分配一个 EFA 或仅限 EFA 的网络接口。主网络接口不能是仅限 EFA 的网络接口。

以下实例类型支持多个网卡。有关实例类型支持的网络接口数量的信息，请参阅[每个网络接口的最大 IP 地址数](AvailableIpPerENI.md)。


| 实例类型 | 网卡数 | 
| --- | --- | 
| c6in.32xlarge | 2 | 
| c6in.metal | 2 | 
| c8gb.48xlarge | 2 | 
| c8gb.metal-48xl | 2 | 
| c8gn.48xlarge | 2 | 
| c8gn.metal-48xl | 2 | 
| dl1.24xlarge | 4 | 
| g6e.24xlarge | 2 | 
| g6e.48xlarge | 4 | 
| g7e.24xlarge | 2 | 
| g7e.48xlarge | 4 | 
| hpc6id.32xlarge | 2 | 
| hpc7a.12xlarge | 2 | 
| hpc7a.24xlarge | 2 | 
| hpc7a.48xlarge | 2 | 
| hpc7a.96xlarge | 2 | 
| hpc8a.96xlarge | 2 | 
| m6idn.32xlarge | 2 | 
| m6idn.metal | 2 | 
| m6in.32xlarge | 2 | 
| m6in.metal | 2 | 
| m8gb.48xlarge | 2 | 
| m8gb.metal-48xl | 2 | 
| m8gn.48xlarge | 2 | 
| m8gn.metal-48xl | 2 | 
| p4d.24xlarge | 4 | 
| p4de.24xlarge | 4 | 
| p5.48xlarge | 32 | 
| p5e.48xlarge | 32 | 
| p5en.48xlarge | 16 | 
| p6-b200.48xlarge | 8 | 
| p6-b300.48xlarge | 17 | 
| p6e-gb200.36xlarge | 17 | 
| r8gb.48xlarge | 2 | 
| r8gb.metal-48xl | 2 | 
| r8gn.48xlarge | 2 | 
| r8gn.metal-48xl | 2 | 
| r6idn.32xlarge | 2 | 
| r6idn.metal | 2 | 
| r6in.32xlarge | 2 | 
| r6in.metal | 2 | 
| trn1.32xlarge | 8 | 
| trn1n.32xlarge | 16 | 
| trn2.48xlarge | 16 | 
| trn2u.48xlarge | 16 | 
| u7in-16tb.224xlarge | 2 | 
| u7in-24tb.224xlarge | 2 | 
| u7in-32tb.224xlarge | 2 | 
| u7inh-32tb.480xlarge | 2 | 

# 每个网络接口的最大 IP 地址数
<a name="AvailableIpPerENI"></a>

每个实例类型支持的每个网络接口的最大数量、每个网络接口支持的私有 IPv4 地址的最大数量，以及每个网络接口支持的 IPv6 地址的最大数量。每个网络接口的 IPv6 地址与私有 IPv4 地址有不同的限制并且分别列出。请注意，除了 C1、M1、M2、M3 和 T1 实例类型，其余实例类型都支持 IPv6 寻址。

**可用的网络接口**

《Amazon EC2 实例类型指南》**提供有关每种实例类型可以使用的网络接口的信息。有关更多信息，请参阅下列内容：
+ [网络规格 – 通用型](https://docs.aws.amazon.com/ec2/latest/instancetypes/gp.html#gp_network)
+ [网络规格 – 计算优化型](https://docs.aws.amazon.com/ec2/latest/instancetypes/co.html#co_network)
+ [网络规格 – 内存优化型](https://docs.aws.amazon.com/ec2/latest/instancetypes/mo.html#mo_network)
+ [网络规格 – 存储优化型](https://docs.aws.amazon.com/ec2/latest/instancetypes/so.html#so_network)
+ [网络规格 – 加速计算型](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html#ac_network)
+ [网络规格 – 高性能计算型](https://docs.aws.amazon.com/ec2/latest/instancetypes/hpc.html#hpc_network)
+ [网络规格 – 上一代](https://docs.aws.amazon.com/ec2/latest/instancetypes/pg.html#pg_network)

------
#### [ Console ]

**检索最大网络接口数**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instance Types (实例类型)**。

1. 添加筛选条件来指定实例类型（**实例类型=c5.12xlarge**）或实例系列（**实例系列=c5**）。

1. （可选）单击**首选项**图标，然后打开**最大网络接口数**。此列会指示每种实例类型的最大网络接口数量。

1. （可选）选择实例类型。在**联网**选项卡上，找到**最大网络接口数**。

------
#### [ AWS CLI ]

**检索最大网络接口数**  
您可以使用 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) 命令来显示有关实例类型的信息，例如其支持的网络接口和每个接口的 IP 地址。以下示例显示了所有 C8i 实例的此类信息。

```
{ echo -e "InstanceType\tMaximumNetworkInterfaces\tIpv4AddressesPerInterface"; \
aws ec2 describe-instance-types \
    --filters "Name=instance-type,Values=c8i.*" \
    --query 'InstanceTypes[*].[InstanceType, NetworkInfo.MaximumNetworkInterfaces, NetworkInfo.Ipv4AddressesPerInterface]' \
    --output text | sort -k2 -n; } | column -t
```

下面是示例输出。

```
InstanceType    MaximumNetworkInterfaces  Ipv4AddressesPerInterface
c8i.large       3                         20
c8i.2xlarge     4                         30
c8i.xlarge      4                         30
c8i.4xlarge     8                         50
c8i.8xlarge     10                        50
c8i.12xlarge    12                        50
c8i.16xlarge    16                        64
c8i.24xlarge    16                        64
c8i.32xlarge    24                        64
c8i.48xlarge    24                        64
c8i.96xlarge    24                        64
c8i.metal-48xl  24                        64
c8i.metal-96xl  24                        64
```

------
#### [ PowerShell ]

**检索最大网络接口数**  
您可以使用 [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) PowerShell 命令来显示有关实例类型的信息，例如其支持的网络接口和每个接口的 IP 地址。以下示例显示了所有 C8i 实例的此类信息。

```
Get-EC2InstanceType -Filter @{Name="instance-type"; Values="c8i.*"} |
Select-Object `
    InstanceType,
    @{Name='MaximumNetworkInterfaces'; Expression={$_.NetworkInfo.MaximumNetworkInterfaces}},
    @{Name='Ipv4AddressesPerInterface'; Expression={$_.NetworkInfo.Ipv4AddressesPerInterface}} |
Sort-Object MaximumNetworkInterfaces |
Format-Table -AutoSize
```

下面是示例输出。

```
InstanceType   MaximumNetworkInterfaces Ipv4AddressesPerInterface
------------   ------------------------ -------------------------
c8i.large                             3                        20
c8i.xlarge                            4                        30
c8i.2xlarge                           4                        30
c8i.4xlarge                           8                        50
c8i.8xlarge                          10                        50
c8i.12xlarge                         12                        50
c8i.24xlarge                         16                        64
c8i.16xlarge                         16                        64
c8i.96xlarge                         24                        64
c8i.48xlarge                         24                        64
c8i.metal-96xl                       24                        64
c8i.32xlarge                         24                        64
c8i.metal-48xl                       24                        64
```

------

# 为 Amazon EC2 实例创建网络接口
<a name="create-network-interface"></a>

您可以创建一个网络接口供您的 EC2 实例使用。创建网络接口时，需要指定创建该接口的子网。您不能在创建网络接口之后将其移动至另一子网。您必须将网络接口连接到同一可用区中的实例。您可以从实例中分离辅助网络接口，然后将其附加到同一可用区中的其他实例。您无法将主网络接口与实例分离。有关更多信息，请参阅 [EC2 实例的网络接口连接](network-interface-attachments.md)。

------
#### [ Console ]

**创建网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选择**创建网络接口**。

1. （可选）对于**描述**，请输入一个描述性的名称。

1. 对于 **Subnet (子网)**，选择一个子网。后续步骤中可用的选项根据您选择的子网类型（仅 IPv4、仅 IPv6 或双堆栈（IPv4 和 IPv6））而有所变化。

1. 对于**集成类型**，请选择下列选项之一：
   + **ENA**：一种高性能网络接口，旨在满足高吞吐量和每秒数据包速率的 TCP/IP 协议处理需求，同时尽可能降低 CPU 使用率。这是默认值。有关更多信息，请参阅[弹性网络适配器](enhanced-networking-ena.md)。
   + **带 ENA 的 EFA**：一种同时支持 ENA 和 EFA 设备的网络接口，用于传统基于 TCP/IP 的传输以及基于 SRD 的传输。如果选择带 ENA 的 EFA，则挂载该接口的实例必须[支持 EFA](efa.md#efa-instance-types)。有关 EFA 的更多信息，请参阅 [Elastic Fabric Adapter](efa.md)。
   + **仅 EFA**：一种高性能网络接口，旨在满足基于 SRD 的传输对高吞吐量、低延迟节点间通信的处理需求，同时避开操作系统堆栈。如果选择此选项，则挂载该接口的实例必须[支持 EFA](efa.md#efa-instance-types)。仅 EFA 网络接口不支持 IP 地址。有关 EFA 的更多信息，请参阅 [Elastic Fabric Adapter](efa.md)。

1. 对于**私有 IPv4 地址**，执行以下操作之一：
   + 选择**自动分配**允许 Amazon EC2 从子网中选择 IPv4 地址。
   + 选择**自定义**然后输入从子网中选择的 IPv4 地址。

1. （仅具有 IPv6 地址的子网）对于 **IPv6 地址**，请执行以下操作之一：
   + 如果您不想为网络接口分配 IPv6 地址，选择**没有**。
   + 选择**自动分配**允许 Amazon EC2 从子网中选择 IPv6 地址。
   + 选择**自定义**然后输入从子网中选择的 IPv6 地址。

1. （可选）如果您在双栈或仅使用 IPv6 的子网中创建网络接口，则可以选择**分配主要 IPv6 IP**。这将为网络接口分配一个主 IPv6 全局单播地址（GUA）。分配主要 IPv6 地址使您能够避免中断实例或 ENI 的流量。如果此 ENI 要连接至的实例依赖于其 IPv6 地址不变，则选择**启用**。AWS 会自动将与您的实例连接的 ENI 相关联 IPv6 地址分配为主要 IPv6 地址。一旦将 IPv6 GUA 地址启用为主要 IPv6，您将无法将其禁用。当您将 IPv6 GUA 地址启用为主要 IPv6 时，第一个 IPv6 GUA 将成为主要 IPv6 地址，直到实例终止或网络接口断开为止。如果您有多个 IPv6 地址与连接到实例的 ENI 相关联，并且启用了主要 IPv6 地址，则与该 ENI 关联的第一个 IPv6 GUA 地址将成为主要 IPv6 地址。

1. （可选）要创建 Elastic Fabric Adapter，请选择 **Elastic Fabric Adapter**，**启用**。

1. （可选）在**高级设置**下，您可以选择设置 IP 前缀委托。有关更多信息，请参阅 [前缀委派](ec2-prefix-eni.md)。
   + **自动分配**：AWS 从子网的 IPv4 或 IPv6 CIDR 块中选择前缀，并将其分配给该网络接口。
   + **手动分配**：您可以从子网的 IPv4 或 IPv6 CIDR 块中指定前缀，AWS 会在将该前缀分配给网络接口之前，验证其是否尚未分配给其他资源。

1. （可选）在**高级设置**下，对于**空闲连接跟踪超时**，请修改默认的空闲连接超时。有关更多信息，请参阅 [空闲连接跟踪超时](security-group-connection-tracking.md#connection-tracking-timeouts)。
   + **TCP 建立超时**：处于已建立状态的空闲 TCP 连接的超时时间（以秒为单位）。
     + 最小值：`60` 秒
     + 最大值：`432000` 秒
     + 默认值：[Nitrov6](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) 实例类型（不包括 P6e-GB200）为 `350` 秒。其他实例类型（包括 P6e-GB200）为 `432000` 秒。
     + 建议值：小于 `432000` 秒
   + **UDP 超时**：空闲 UDP 流的超时时间（以秒为单位），这些流仅在单个方向或单个请求-响应事务上看到流量。
     + 最小值：`30` 秒
     + 最大值：`60` 秒
     + 原定设置：`30` 秒
   + **UDP 流超时**：空闲 UDP 流的超时（以秒为单位），这些流被归类为已看到多个请求-响应事务的流。
     + 最小值：`60` 秒
     + 最大值：`180` 秒
     + 原定设置：`180` 秒

1. 对于 **Security groups**，选择一个或多个安全组。

1. （可选）对于每个标签，请选择**添加新标签**，然后输入标签键和可选的标签值。

1. 选择**创建网络接口**。

------
#### [ AWS CLI ]

**示例 1：使用 Amazon EC2 选择的 IP 地址创建网络接口**  
使用以下 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令。此示例将使用 Amazon EC2 选择的一个公有 IPv4 地址和一个 IPv6 地址创建一个网络接口。

```
aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my dual-stack network interface" \
    --ipv6-address-count 1 \
    --groups sg-1234567890abcdef0
```

**示例 2：使用特定的 IP 地址创建网络接口**  
使用以下 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令。

```
aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my dual-stack network interface" \
    --private-ip-address 10.251.50.12 \
    --ipv6-addresses 2001:db8::1234:5678:1.2.3.4 \
    --groups sg-1234567890abcdef0
```

**示例 3：使用一组辅助 IP 地址创建网络接口**  
使用以下 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令。在此示例中，Amazon EC2 选择了主 IP 地址和若干辅助 IP 地址。

```
aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my network interface" \
    --secondary-private-ip-address-count 2 \
    --groups sg-1234567890abcdef0
```

**示例 4：使用特定的辅助 IP 地址创建网络接口**  
使用以下 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令。此示例会指定一个主 IP 地址和一个辅助 IP 地址。

```
aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --description "my network interface" \
    --private-ip-addresses PrivateIpAddress=10.0.1.30,Primary=true \
                           PrivateIpAddress=10.0.1.31,Primary=false
    --groups sg-1234567890abcdef0
```

------
#### [ PowerShell ]

**示例 1：使用 Amazon EC2 选择的 IP 地址创建网络接口**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet。此示例将使用 Amazon EC2 选择的一个公有 IPv4 地址和一个 IPv6 地址创建一个网络接口。

```
New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -Description "my dual-stack network interface" `
    -Ipv6AddresCount 1 `
    -Group sg-1234567890abcdef0
```

**示例 2：使用特定的 IP 地址创建网络接口**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet。

```
New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -Description "my dual-stack network interface" `
    -PrivateIpAddress 10.251.50.12 `
    -Ipv6Address $ipv6addr `
    -Group sg-1234567890abcdef0
```

按如下所示定义 IPv6 地址。

```
$ipv6addr = New-Object Amazon.EC2.Model.InstanceIpv6Address
$ipv6addr1.Ipv6Address = "2001:db8::1234:5678:1.2.3.4"
```

**示例 3：使用一组辅助 IP 地址创建网络接口**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet。在此示例中，Amazon EC2 选择了主 IP 地址和若干辅助 IP 地址。

```
New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -Description "my network interface" `
    -SecondaryPrivateIpAddressCount 2 `
    -Group sg-1234567890abcdef0
```

**示例 4：使用特定的辅助 IP 地址创建网络接口**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet。此示例会指定一个主 IP 地址和一个辅助 IP 地址。

```
New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -Description "my network interface" `
    -PrivateIpAddresses @($primary, $secondary) `
    -Group sg-1234567890abcdef0
```

按如下所示定义辅助地址。

```
$primary = New-Object Amazon.EC2.Model.PrivateIpAddressSpecification
$primary.PrivateIpAddress = "10.0.1.30"
$primary.Primary = $true
$secondary = New-Object Amazon.EC2.Model.PrivateIpAddressSpecification
$secondary.PrivateIpAddress = "10.0.1.31"
$secondary.Primary = $false
```

------

# EC2 实例的网络接口连接
<a name="network-interface-attachments"></a>

可以创建网络接口，供 EC2 实例用作主要或辅助网络接口。如果某 EC2 实例与某网络接口位于同一可用区中，则必须将该网络接口附加到该 EC2 实例。实例类型决定了可以附加到该实例的网络接口数量。有关更多信息，请参阅 [每个网络接口的最大 IP 地址数](AvailableIpPerENI.md)。

**注意事项**
+ 您可以在实例运行时 (热附加)、实例停止时 (暖附加) 或实例启动时 (冷附加) 将网络接口连接到实例。
+ 您可以在实例运行时或停止时分离次要网络接口。不过，您无法分离主网络接口。
+ 您可以从一个实例分离辅助网络接口并将其附加到另一个实例。
+ 在使用 CLI、API 或开发工具包启动实例时，您可以指定主网络接口和额外的网络接口。请注意，如果您在启动期间添加了辅助网络接口，则无法启用公有 IPv4 地址的自动分配。
+ 启动具有多个网络接口的 Amazon Linux 或 Windows Server 实例会自动在该实例的操作系统上配置接口、私有 IPv4 地址和路由表。
+ 如果要通过暖附加或热附加方式连接一个额外的网络接口，您可能需要手动添加第二个接口、配置私有 IPv4 地址并相应修改路由表。运行 Amazon Linux 或 Windows Server 的实例会自动识别暖附加或热附加，并自行进行配置。
+ 您无法通过将另一个网络接口附加到实例（例如一种网卡绑定配置）以增加或加倍双主机实例的网络带宽。
+ 如果将来自同一子网的多个网络接口连接到一个实例，则可能会遇到非对称路由等联网问题。请尽可能在主网络接口上添加辅助私有 IPv4 地址。
+ 对于仅 IPv6 子网中的 EC2 实例，如果您附加辅助网络接口，则辅助网络接口的私有 DNS 主机名将解析为主网络接口的主 IPv6 地址。
+ [Windows 实例] – 如果向一个实例添加多个网络接口，则必须将网络接口配置为使用静态路由。

## 附加网络接口
<a name="attach_eni"></a>

您可以使用 Amazon EC2 控制台的 **Instances (实例)** 或 **Network Interfaces (网络接口)** 页面，将网络接口连接至相同可用区中的任何实例。或者，您可以在[启动实例](ec2-launch-instance-wizard.md)时指定现有的网络接口。

如果您的实例上的公有 IPv4 地址已释放，并且有多个网络接口附加到实例，那么该实例不会收到新地址。有关公有 IPv4 地址行为的更多信息，请参阅[公有 IPv4 地址](using-instance-addressing.md#concepts-public-addresses)。

------
#### [ Console ]

**使用“实例”页面挂载网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选中该实例的复选框。

1. 依次选择**操作**、**联网**、**附加网络接口**。

1. 选择 VPC。该网络接口可以位于您的实例所在的同一 VPC 中，也可以位于您所拥有的其他 VPC 中，只要网络接口与实例位于同一可用区中即可。这使您能够在具有不同网络和安全配置的 VPC 之间创建多宿主实例。

1. 选择网络接口。如果实例支持多个网卡，则可以选择网卡。

1. 选择 **Attach**。

**使用“网络接口”挂载网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选中该网络接口的复选框。

1. 依次选择**操作**、**附加**。

1. 选择一个实例。如果实例支持多个网卡，则可以选择网卡。

1. 选择 **Attach**。

------
#### [ AWS CLI ]

**挂载网络接口**  
使用以下 [attach-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-network-interface.html) 命令。

```
aws ec2 attach-network-interface \
    --network-interface-id eni-1234567890abcdef0 \
    --instance-id i-1234567890abcdef0 \
    --device-index 1
```

------
#### [ PowerShell ]

**挂载网络接口**  
使用 [Add-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2NetworkInterface.html) cmdlet。

```
Add-EC2NetworkInterface `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -InstanceId i-1234567890abcdef0 `
    -DeviceIndex 1
```

------

## 分离网络接口
<a name="detach_eni"></a>

您可以随时使用 Amazon EC2 控制台的 **Instances (实例)** 或 **Network Interfaces (网络接口)** 页面，分离附加到 EC2 实例的辅助网络接口。

如果试图将连接至资源的网络接口从另一个服务（如 Elastic Load Balancing 负载均衡器、Lambda 函数、WorkSpace 或 NAT 网关）中分离，您将收到错误消息，提示您无权访问资源。要查找哪个服务创建了连接到网络接口的资源，请检查网络接口的说明。如果删除资源，则其网络接口将被删除。

------
#### [ Console ]

**使用“实例”页面分离网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选中该实例的复选框。检查**联网**选项卡的**网络接口**部分，以验证网络接口是否作为辅助网络接口附加到实例。

1. 依次选择**操作**、**联网**、**分离网络接口**。

1. 选择网络接口，然后选择**分离**。

**使用“网络接口”页面分离网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选中该网络接口的复选框。检查**详细信息**选项卡的**实例详细信息**部分，以验证网络接口是否作为辅助网络接口附加到实例。

1. 依次选择**操作**、**分离**。

1. 当系统提示进行确认时，选择**分离**。

1. 如果网络接口未能与实例分离，请选择**强制分离**、**启用**，然后重试。我们建议仅将强制分离用作最后手段。强制分离可以防止您在重新启动实例之前在同一索引上附加不同的网络接口。它还可以防止实例元数据反映网络接口在您重新启动实例已分离。

------
#### [ AWS CLI ]

**分离网络接口**  
使用以下 [detach-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/detach-network-interface.html) 命令。

```
aws ec2 detach-network-interface --attachment-id eni-attach-016c93267131892c9
```

------
#### [ PowerShell ]

**分离网络接口**  
使用 [Dismount-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/Dismount-EC2NetworkInterface.html) cmdlet。

```
Dismount-EC2NetworkInterface -AttachmentId eni-attach-016c93267131892c9
```

------

# 管理网络接口的 IP 地址
<a name="managing-network-interface-ip-addresses"></a>

您可以管理网络接口的以下 IP 地址：
+ 弹性 IP 地址（每个私有 IPv4 地址一个）
+ IPv4 地址
+ IPv6 地址

------
#### [ Console ]

**管理网络接口的 IP 地址**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选中该网络接口的复选框。

1. 要管理 IPv4 和 IPv6 地址，请执行以下操作：

   1. 依次选择**操作**、**管理 IP 地址**。

   1. 展开网络接口。

   1. 对于 **IPv4 地址**，根据需要编辑 IP 地址。要分配其他 IPv4 地址，请选择**分配新 IP 地址**，然后从子网范围内指定一个 IPv4 地址，或者让 AWS 为您选择一个。

   1. （双栈或仅 IPv6）对于 **IPv6 地址**，请根据需要编辑 IP 地址。要分配其他 IPv6 地址，请选择**分配新 IP 地址**，然后从子网范围内指定一个 IPv6 地址，或者让 AWS 为您选择一个。

   1. 要为网络接口分配或取消分配公有 IPv4 地址，请选择**自动分配公有 IP**。您可以为任何网络接口启用或禁用此选项，但只会影响主网络接口。

   1. （双栈或仅 IPv6）对于 **分配主 IPv6 地址**，请选择**启用**来分配一个主 IPv6 地址。将与该网络接口关联的第一个 GUA 选择为主 IPv6 地址。分配主 IPv6 地址后，您无法对其进行更改。该地址将为主 IPv6 地址，直到实例终止或网络接口分离。

   1. 选择**保存**。

1. 要关联弹性 IP 地址，请执行以下操作：

   1. 依次选择**操作**、**关联地址**。

   1. 对于**弹性 IP 地址**，选择弹性 IP 地址。

   1. 对于**私有 IPv4 地址**，选择要与弹性 IP 地址关联的私有 IPv4 地址。

   1. （可选）如果网络接口当前已与其他实例或网络接口关联，选择**允许重新关联弹性 IP 地址**。

   1. 选择**关联 **。

1. 要取消关联弹性 IP 地址，请执行以下操作：

   1. 选择 **Actions**、**Disassociate address**。

   1. 对于**公有 IP 地址**，选择弹性 IP 地址。

   1. 选择**取消关联**。

------
#### [ AWS CLI ]

**管理 IPv4 地址**  
使用以下 [assign-private-ip-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-private-ip-addresses.html) 命令分配 IPv4 地址。

```
aws ec2 assign-private-ip-addresses \
    --network-interface-id eni-1234567890abcdef0 \
    --private-ip-addresses 10.0.0.82
```

使用以下 [unassign-private-ip-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-private-ip-addresses.html) 命令取消分配 IPv4 地址。

```
aws ec2 unassign-private-ip-addresses \
    --network-interface-id eni-1234567890abcdef0 \
    --private-ip-addresses 10.0.0.82
```

**管理 IPv6 地址**  
使用以下 [assign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-ipv6-addresses.html) 命令分配 IPv6 地址。

```
aws ec2 assign-ipv6-addresses \
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-addresses 2001:db8:1234:1a00:9691:9503:25ad:1761
```

使用以下 [unassign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-ipv6-addresses.html) 命令取消分配 IPv6 地址。

```
aws ec2 unassign-ipv6-addresses \
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-addresses 2001:db8:1234:1a00:9691:9503:25ad:1761
```

**管理主私有 IPv4 地址的弹性 IP 地址**  
使用以下 [associate-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-address.html) 命令，将弹性 IP 地址关联到主私有 IPv4 地址。

```
aws ec2 associate-address \
    --allocation-id eipalloc-0b263919b6EXAMPLE \
    --network-interface-id eni-1234567890abcdef0
```

使用以下 [disassociate-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-address.html) 命令，将弹性 IP 地址与主私有 IPv4 地址取消关联。

```
aws ec2 disassociate-address --association-id eipassoc-2bebb745a1EXAMPLE
```

------
#### [ PowerShell ]

**管理 IPv4 地址**  
使用 [Register-EC2PrivateIpAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2PrivateIpAddress.html) cmdlet 分配 IPv4 地址。

```
Register-EC2PrivateIpAddress `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -PrivateIpAddress 10.0.0.82
```

使用 [Unregister-EC2PrivateIpAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2PrivateIpAddress.html) cmdlet 取消分配 IPv4 地址。

```
Unregister-EC2PrivateIpAddress `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -PrivateIpAddress 10.0.0.82
```

**管理 IPv6 地址**  
使用 [Register-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Ipv6AddressList.html) cmdlet 分配 IPv6 地址。

```
Register-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6Address 2001:db8:1234:1a00:9691:9503:25ad:1761
```

使用 [Unregister-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Ipv6AddressList.html) cmdlet 取消分配 IPv6 地址。

```
Unregister-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6Address 2001:db8:1234:1a00:9691:9503:25ad:1761
```

**管理主私有 IPv4 地址的弹性 IP 地址**  
使用 [Register-EC2Address](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Address.html) cmdlet，将弹性 IP 地址与主私有 IPv4 地址相关联。

```
Register-EC2Address `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -AllocationId eipalloc-0b263919b6EXAMPLE
```

使用 [Unregister-EC2Address](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Address.html) cmdlet，将弹性 IP 地址与主私有 IPv4 地址取消关联。

```
Unregister-EC2Address -AssociationId eipassoc-2bebb745a1EXAMPLE
```

------

# 修改网络接口属性
<a name="modify-network-interface-attributes"></a>

您可以更改以下网络接口属性：
+ 描述
+ 安全组
+ 终止时删除
+ 源/目标检查
+ 空闲连接跟踪超时

**注意事项**  
不能更改请求者托管式网络接口的属性。

------
#### [ Console ]

**修改网络接口属性**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选中该网络接口的复选框。

1. 要更改描述，请执行以下操作：

   1. 依次选择**操作**、**更改描述**。

   1. 对于**说明**，输入说明。

   1. 选择**保存**。

1. 要更改安全组，请执行以下操作：

   1. 依次选择**操作**、**更改安全组**。

   1. 对于**关联安全组**，根据需要添加和移除安全组。安全组和网络接口必须针对相同 VPC 创建。

   1. 选择**保存**。

1. 要更改终止行为，请执行以下操作：

   1. 依次选择**操作**、**更改终止行为**。

   1. 选择或清除**终止时删除**、**启用**。

   1. 选择**保存**。

1. 要更改源/目标检查，请执行以下操作：

   1. 依次选择**操作**、**更改源/目标检查**。

   1. 选择或清除**源/目标**、**启用**。

   1. 选择**保存**。

1. 要更改空闲连接跟踪超时，请执行以下操作：

   1. 选择**操作**、**修改空闲连接跟踪超时**。

   1. 根据需要修改超时值。有关更多信息，请参阅 [空闲连接跟踪超时](security-group-connection-tracking.md#connection-tracking-timeouts)。
      + **TCP 建立超时**：处于已建立状态的空闲 TCP 连接的超时时间（以秒为单位）。
        + 最小值：`60` 秒
        + 最大值：`432000` 秒
        + 默认值：[Nitrov6](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) 实例类型（不包括 P6e-GB200）为 `350` 秒。其他实例类型（包括 P6e-GB200）为 `432000` 秒。
        + 建议值：小于 `432000` 秒
      + **UDP 超时**：空闲 UDP 流的超时时间（以秒为单位），这些流仅在单个方向或单个请求-响应事务上看到流量。
        + 最小值：`30` 秒
        + 最大值：`60` 秒
        + 原定设置：`30` 秒
      + **UDP 流超时**：空闲 UDP 流的超时（以秒为单位），这些流被归类为已看到多个请求-响应事务的流。
        + 最小值：`60` 秒
        + 最大值：`180` 秒
        + 原定设置：`180` 秒

   1. 选择**保存**。

------
#### [ AWS CLI ]

**Example 示例：修改描述**  
使用以下 [modify-network-interface-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-network-interface-attribute.html) 命令。  

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --description "my updated description"
```

**Example 示例：修改安全组**  
使用以下 [modify-network-interface-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-network-interface-attribute.html) 命令。  

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --groups sg-1234567890abcdef0
```

**Example 示例：修改终止行为**  
使用以下 [modify-network-interface-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-network-interface-attribute.html) 命令。  

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --attachment AttachmentId=eni-attach-43348162abEXAMPLE,DeleteOnTermination=false
```

**Example 示例：启用源/目标检查**  
使用以下 [modify-network-interface-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-network-interface-attribute.html) 命令。  

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --source-dest-check
```

**Example 示例：修改空闲连接跟踪超时**  
使用以下 [modify-network-interface-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-network-interface-attribute.html) 命令。有关更多信息，请参阅 [空闲连接跟踪超时](security-group-connection-tracking.md#connection-tracking-timeouts)。  

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --connection-tracking-specification TcpEstablishedTimeout=172800,UdpStreamTimeout=90,UdpTimeout=60
```

------
#### [ PowerShell ]

**Example 示例：修改描述**  
使用 [Edit-EC2NetworkInterfaceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2NetworkInterfaceAttribute.html) cmdlet。  

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Description "my updated description"
```

**Example 示例：修改安全组**  
使用 [Edit-EC2NetworkInterfaceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2NetworkInterfaceAttribute.html) cmdlet。  

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Group sg-1234567890abcdef0
```

**Example 示例：修改终止行为**  
使用 [Edit-EC2NetworkInterfaceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2NetworkInterfaceAttribute.html) cmdlet。  

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Attachment_AttachmentId eni-attach-43348162abEXAMPLE `
    -Attachment_DeleteOnTermination $false
```

**Example 示例：启用源/目标检查**  
使用 [Edit-EC2NetworkInterfaceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2NetworkInterfaceAttribute.html) cmdlet。  

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -SourceDestCheck $true
```

**Example 示例：修改空闲连接跟踪超时**  
使用 [Edit-EC2NetworkInterfaceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2NetworkInterfaceAttribute.html) cmdlet。有关更多信息，请参阅 [空闲连接跟踪超时](security-group-connection-tracking.md#connection-tracking-timeouts)。  

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -ConnectionTrackingSpecification_TcpEstablishedTimeout 172800 `
    -ConnectionTrackingSpecification_UdpStreamTimeout 90 `
    -ConnectionTrackingSpecification_UdpTimeout 60
```

------

# 您的 Amazon EC2 实例的多个网络接口
<a name="scenarios-enis"></a>

当您需要以下功能时，将多个网络接口附加到一个实例很有帮助：
+ 一个[管理网络](#creating-a-management-network)。
+ [网络和安全设备](#use-network-and-security-appliances-in-your-vpc)。
+ 工作负载位于不同[子网](#creating-dual-homed-instances-with-workloads-roles-on-distinct-subnets)或 [VPC](#creating-dual-homed-instances-with-workloads-roles-on-distinct-subnets) 中的双主机实例。
+ 一个[低预算、高可用性](#create-a-low-budget-high-availability-solution)解决方案。

## 管理网络
<a name="creating-a-management-network"></a>

以下概述描述了使用多个网络接口创建的管理网络。

**标准**
+ 实例上的主网络接口（例如 eth0）处理公有流量。
+ 实例上的辅助网络接口（例如 eth1）处理后端管理流量。它连接到具有更严格的访问控制的单独子网，并作为主网络接口位于可用区内。

**设置**
+ 主网络接口（可能配置或未配置负载均衡器）具有允许从 Internet 访问服务器的关联的安全组。例如，允许来自 0.0.0.0/0 或来自负载均衡器的 TCP 端口 80 和 443。
+ 辅助网络接口具有一个关联的安全组，该安全组仅允许 SSH 访问，从以下位置之一启动：
  + 允许的 IP 地址范围，可以是 VPC 之内，也可以是来自互联网。
  + 与主网络接口位于同一可用区内的私有子网。
  + 虚拟私有网关。

**注意**  
为确保故障转移功能，可以考虑针对网络接口上的传入流量使用辅助私有 IPv4。在某个实例失效时，您可以将接口和/或辅助私有 IPv4 地址移动到备用实例中。

![\[创建管理网络\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/EC2_ENI_management_network.png)


## 网络和安全设备
<a name="use-network-and-security-appliances-in-your-vpc"></a>

负载均衡器、网络地址转换 (NAT) 服务器和代理服务器等网络和安全设备更偏向于配置多个网络接口。您可以创建并附加辅助网络接口至正在运行这些类型的应用程序的实例中，并用实例自己的公用和私有 IP 地址、安全组和源/目标检查设置其他接口。

## 工作负载位于不同子网中的双主机实例
<a name="creating-dual-homed-instances-with-workloads-roles-on-distinct-subnets"></a>

您可以将网络接口放置到每一个与承载应用程序服务器的中间层网络相连接的 Web 服务器。应用程序服务器也可以用双主机连接至承载数据库服务器的后端网络（子网）。每一个双主机实例都在前端接收和处理请求、启动与后端的连接，然后将请求发送至后端网络上的服务器，而不是通过双主机实例路由网络数据包。

## 工作负载位于同一账户下不同 VPC 中的双主机实例
<a name="creating-dual-homed-instances-with-workloads-roles-on-distinct-vpcs"></a>

您可以在一个 VPC 中启动 EC2 实例，并从其他 VPC 附加辅助 ENI，只要网络接口与实例位于同一可用区中即可。这使您能够在具有不同网络和安全配置的 VPC 之间创建多宿主实例。您不能在不同 AWS 账户中的 VPC 之间创建多宿主实例。

在以下使用案例中，您可以跨 VPC 使用双宿主实例：
+ **克服两个无法对等互连的 VPC 之间的 CIDR 重叠**：您可以利用 VPC 中的辅助 CIDR 并允许实例跨两个不重叠的 IP 范围进行通信。
+ **在单个账户中连接多个 VPC**：启用通常由 VPC 边界分隔的各个资源之间的通信。

## 低预算、高可用性解决方案
<a name="create-a-low-budget-high-availability-solution"></a>

如果您的一个提供特定功能的实例失效，则其网络接口可附加到一个针对同一种角色预配置的替代或热备用实例，以快速恢复服务。例如，您可以将一个网络接口用作连接数据库实例或 NAT 实例等关键服务的主要或辅助网络接口。如果实例失效，您 (或更有可能是代表您运行的代码) 可以将网络接口附加到热备用实例。由于接口保持其私有 IP 地址、弹性 IP 地址和 MAC 地址，因此只要您将网络接口附加到替代实例，网络流量就会立即开始流向备用实例。在实例失效之后、网络接口附加到备用实例之前，用户会暂时失去连接，但不需要更改路由表或您的 DNS 服务器。

# 请求者托管的网络接口
<a name="requester-managed-eni"></a>

请求者托管式网络接口是 AWS 服务 代表您在 VPC 中创建的网络接口。网络接口与其他服务的资源相关联，例如 Amazon RDS 的数据库实例、NAT 网关或 AWS PrivateLink 的接口 VPC 终端节点。

**注意事项**
+ 您可以查看自己账户中的请求者托管的网络接口。您可以添加或删除标签，但不能更改请求者托管式网络接口的其他属性。
+ 您无法断开请求者托管式网络接口。
+ 如果您删除与请求者托管式网络接口关联的资源，AWS 服务 会断开网络接口并将其删除。如果服务断开了网络接口但没有将其删除，您可以删除断开的网络接口。

------
#### [ Console ]

**查看请求者托管式网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，依次选择 **Network & Security**（网络与安全）、**Network Interfaces**（网络接口）。

1. 选择网络接口的 ID 以打开其详细信息页面。

1. 以下是可用于确定网络接口用途的关键字段：
   + **Description**（描述）：由创建接口的 AWS 服务提供的描述。例如，“VPC Endpoint Interface vpce 089f2123488812123（VPC 终端节点接口 vpce 089f2123488812123）”。
   + **Requester-managed**（请求者托管式）：指明网络接口是否由 AWS 托管。
   + **Requester ID**（请求者 ID）：创建网络接口的主体或服务的别名或 AWS 账户 ID。如果您创建了网络接口，这便是您的 AWS 账户 ID。如果没有，则由其他主体或服务创建。

------
#### [ AWS CLI ]

**查看请求者托管式网络接口**  
按如下方式使用 [describe-network-interfaces](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-network-interfaces.html) 命令。

```
aws ec2 describe-network-interfaces \
    --filters "Name=requester-managed,Values=true" \
    --query "NetworkInterfaces[*].[Description, InterfaceType]" \ 
    --output table
```

以下示例输出显示了可用于确定网络接口用途的关键字段 `Description` 和 `InterfaceType`。

```
-------------------------------------------------------------------------------
|                          DescribeNetworkInterfaces                          |
+---------------------------------------------------+-------------------------+
|  VPC Endpoint Interface: vpce-0f00567fa8477a1e6   |  interface              |
|  VPC Endpoint Interface vpce-0d8ddce4be80e4474    |  interface              |
|  VPC Endpoint Interface vpce-078221a1e27d1ea5b    |  vpc_endpoint           |
|  Resource Gateway Interface rgw-0bba03f3d56060135 |  interface              |
|  VPC Endpoint Interface: vpce-0cc199f605eaeace7   |  interface              |
|  VPC Endpoint Interface vpce-019b90d6f16d4f958    |  interface              |
+---------------------------------------------------+-------------------------+
```

------
#### [ PowerShell ]

**查看请求者托管式网络接口**  
按如下所示使用 [Get-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2NetworkInterface.html) cmdlet。

```
Get-EC2NetworkInterface -Filter @{Name="requester-managed"; Values="true"} | Select Description, InterfaceType
```

以下示例输出显示了可用于确定网络接口用途的关键字段 `Description` 和 `InterfaceType`。

```
Description                                      InterfaceType
-----------                                      -------------
VPC Endpoint Interface: vpce-0f00567fa8477a1e6   interface
VPC Endpoint Interface vpce-0d8ddce4be80e4474    interface
VPC Endpoint Interface vpce-078221a1e27d1ea5b    vpc_endpoint
Resource Gateway Interface rgw-0bba03f3d56060135 interface
VPC Endpoint Interface: vpce-0cc199f605eaeace7   interface
VPC Endpoint Interface vpce-019b90d6f16d4f958    interface
```

------

# Amazon EC2 网络接口的前缀委派
<a name="ec2-prefix-eni"></a>

您可以自动或手动为网络接口分配私有 IPv4 或 IPv6 CIDR 范围。通过分配前缀，您可以扩展和简化应用程序的管理，包括一个实例上需要多个 IP 地址的容器和网络应用程序。有关 IPv4 和 IPv6 地址的更多信息，请参阅 [Amazon EC2 实例 IP 寻址](using-instance-addressing.md)。

可用的分配选项如下：
+ **自动分配** - AWS选择前缀并将其分配给您的网络接口。如果网络接口的子网的子网 CIDR 预留类型为`prefix`，我们会从子网 CIDR 预留中选择前缀。否则，我们会从子网 CIDR 范围中选择它们。
+ **手动分配** – 您指定前缀后，AWS 会在将前缀分配给您的网络接口之前，验证该前缀是否尚未分配给其他资源。

分配前缀具有以下优势：
+ 增加了网络接口上的 IP 地址 – 使用前缀时，您可以分配一个 IP 地址块，而不是单个 IP 地址。这会增加网络接口的 IP 地址数量。
+ 简化了容器的 VPC 管理 – 在容器应用程序中，每个容器都需要一个唯一的 IP 地址。为您的实例分配前缀可简化 VPC 的管理，因为您可以启动和终止容器，而无需为单个 IP 分配调用 Amazon EC2 API。

**Contents**
+ [基本功能](#ec2-prefix-basics)
+ [注意事项](#prefix-limit)
+ [管理前缀](work-with-prefixes.md)
  + [在网络接口创建过程中分配前缀](work-with-prefixes.md#assign-auto-creation)
  + [分配前缀至现有网络接口](work-with-prefixes.md#assign-auto-existing)
  + [从网络接口中移除前缀](work-with-prefixes.md#unassign-prefix)

## 基本功能
<a name="ec2-prefix-basics"></a>
+ 您可以为新的或现有网络接口分配前缀。
+ 要使用前缀，请为您的网络接口分配前缀，将该网络接口连接至您的实例，然后配置您的操作系统。
+ 选择指定前缀的选项时，前缀必须满足以下要求：
  + 您可以指定的 IPv4 前缀为 `/28`。
  + 您可以指定的 IPv6 前缀为 `/80`。
  + 前缀位于网络接口的子网 CIDR 中，并且不会与分配给子网中现有资源的其他前缀或 IP 地址重叠。
+ 您可以为主网络接口或辅助网络接口分配前缀。
+ 您可以将弹性 IP 地址分配给有前缀的网络接口。
+ 您也可以将弹性 IP 地址分配给已分配前缀的 IP 地址。
+ 我们将实例的私有 DNS 主机名解析为主私有 IPv4 地址。
+ 我们使用以下格式为网络接口分配每个私有 IPv4 地址，包括前缀中的地址：
  + `us-east-1` 区域

    ```
    ip-private-ipv4-address.ec2.internal
    ```
  + 所有其他区域

    ```
    ip-private-ipv4-address.region.compute.internal
    ```

## 注意事项
<a name="prefix-limit"></a>

使用前缀时请注意以下事项：
+ [基于 Nitro 的实例](instance-types.md#instance-hypervisor-type)支持带有前缀的网络接口。
+ 网络接口的前缀必须使用 IPv6 地址和私有 IPv4 地址。
+ 您可以分配给网络接口的 IP 地址的最大数量取决于实例类型。您分配给网络接口的每个前缀都算作一个 IP 地址。例如，`c5.large` 实例具有每个网络接口 `10` 个 IPv4 地址的限制。此实例的每个网络接口都有一个主 IPv4 地址。如果网络接口没有辅助 IPv4 地址，则您最多可以为网络接口分配 9 个前缀。您每为网络接口多分配一个 IPv4 地址，则您就可以为网络接口少分配一个前缀。有关更多信息，请参阅 [每个网络接口的最大 IP 地址数](AvailableIpPerENI.md)。
+ 前缀包含在源/目标检查中。
+ 您必须配置操作系统，才能使用带有前缀的网络接口。请注意以下几点：
  + 一些 Amazon Linux AMI 包含由 AWS 安装的其他脚本，它们称为 `ec2-net-utils`。这些脚本可以选择性地自动配置您的网络接口。它们仅在 Amazon Linux 上使用。
  + 对于容器，您可以将容器网络接口（CNI）用于 Kubernetes 插件或 `dockerd`（如果您使用 Docker 管理容器）。

# 管理网络接口的前缀
<a name="work-with-prefixes"></a>

在为网络接口分配前缀时，您可以选择是否让我们自动分配前缀，您也可以指定自定义前缀。如果您让我们自动分配前缀，并且网络接口的子网的子网 CIDR 预留类型为`prefix`，我们会从子网 CIDR 预留中选择前缀。否则，我们会从子网 CIDR 范围中选择它们。

**Topics**
+ [在网络接口创建过程中分配前缀](#assign-auto-creation)
+ [分配前缀至现有网络接口](#assign-auto-existing)
+ [从网络接口中移除前缀](#unassign-prefix)

## 在网络接口创建过程中分配前缀
<a name="assign-auto-creation"></a>

您可以在创建网络接口时分配自动或自定义前缀。

------
#### [ Console ]

**在网络接口创建过程中自动分配前缀**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选择**创建网络接口**。

1. 输入网络接口的描述，选择要在其中创建网络接口的子网，并配置私有 IPv4 和 IPv6 地址。

1. 展开 **Advanced settings**（高级设置）。

1. 对于 **IPv4 前缀委派**，请执行下列操作之一：
   + 要自动分配 IPv4 前缀，请选择**自动分配**。对于 **IPv4 前缀的数量**，输入要分配的前缀数。
   + 要分配特定 IPv4 前缀，请选择**自定义**。选择**添加新的前缀**，然后输入该前缀。

1. 对于 **IPv6 前缀委派**，请执行下列操作之一：
   + 要自动分配 IPv6 前缀，请选择**自动分配**。对于 **IPv6 前缀的数量**，输入要分配的前缀数。
   + 要分配特定 IPv6 前缀，请选择**自定义**。选择**添加新的前缀**，然后输入该前缀。
**注意**  
**IPv6 prefix delegation**（IPv6 前缀委派）仅当为 IPv6 启用了选定的子网时才会显示。

1. 选择要与网络接口关联的安全组，并根据需要分配资源标签。

1. 选择**创建网络接口**。

------
#### [ AWS CLI ]

**在网络接口创建过程中自动分配 IPv4 前缀**  
使用 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令并将 `--ipv4-prefix-count` 设置为要让 AWS 分配的 IPv4 前缀数。在下面的示例中，AWS 分配一个 IPv4 前缀。

```
aws ec2 create-network-interface \
    --subnet-id subnet-047cfed18eEXAMPLE \
    --description "IPv4 automatic example" \
    --ipv4-prefix-count 1
```

**在网络接口创建过程中分配特定 IPv4 前缀**  
使用 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令并将 `--ipv4-prefixes` 设置为该前缀范围。AWS 会从此范围中选择 IPv4 地址。在下面的示例中，前缀 CIDR 为 10.0.0.208/28。

```
aws ec2 create-network-interface \
    --subnet-id subnet-047cfed18eEXAMPLE \
    --description "IPv4 manual example" \
    --ipv4-prefixes Ipv4Prefix=10.0.0.208/28
```

**在网络接口创建过程中自动分配 IPv6 前缀**  
使用 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令并将 `--ipv6-prefix-count` 设置为要让 AWS 分配的 IPv6 前缀数。在下面的示例中，AWS 分配一个 IPv6 前缀。

```
aws ec2 create-network-interface \
    --subnet-id subnet-047cfed18eEXAMPLE \
    --description "IPv6 automatic example" \
    --ipv6-prefix-count 1
```

**在网络接口创建过程中分配特定 IPv6 前缀**  
使用 [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html) 命令并将 `--ipv6-prefixes` 设置为该前缀范围。AWS 会从此范围中选择 IPv6 地址。在下面的示例中，前缀 CIDR 为 2600:1f13:fc2:a700:1768::/80。

```
aws ec2 create-network-interface \
    --subnet-id subnet-047cfed18eEXAMPLE \
    --description "IPv6 manual example" \
    --ipv6-prefixes Ipv6Prefix=2600:1f13:fc2:a700:1768::/80
```

------
#### [ PowerShell ]

**在网络接口创建过程中自动分配 IPv4 前缀**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet 并将 `Ipv4PrefixCount` 设置为要让 AWS 分配的 IPv4 前缀数。在下面的示例中，AWS 分配一个 IPv4 前缀。

```
New-EC2NetworkInterface `
    -SubnetId 'subnet-047cfed18eEXAMPLE' `
    -Description 'IPv4 automatic example' `
    -Ipv4PrefixCount 1
```

**在网络接口创建过程中分配特定 IPv4 前缀**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet 并将 `Ipv4Prefix` 设置为该前缀范围。AWS 会从此范围中选择 IPv4 地址。在下面的示例中，前缀 CIDR 为 10.0.0.208/28。

```
Import-Module AWS.Tools.EC2
New-EC2NetworkInterface `
    -SubnetId 'subnet-047cfed18eEXAMPLE' `
    -Description 'IPv4 manual example' `
    -Ipv4Prefix (New-Object `
        -TypeName Amazon.EC2.Model.Ipv4PrefixSpecificationRequest `
        -Property @{Ipv4Prefix = '10.0.0.208/28'})
```

**在网络接口创建过程中自动分配 IPv6 前缀**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet 并将 `Ipv6PrefixCount` 设置为要让 AWS 分配的 IPv6 前缀数。在下面的示例中，AWS 分配一个 IPv6 前缀。

```
New-EC2NetworkInterface `
    -SubnetId 'subnet-047cfed18eEXAMPLE' `
    -Description 'IPv6 automatic example' `
    -Ipv6PrefixCount 1
```

**在网络接口创建过程中分配特定 IPv6 前缀**  
使用 [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html) cmdlet 并将 `Ipv6Prefixes` 设置为该前缀范围。AWS 会从此范围中选择 IPv6 地址。在下面的示例中，前缀 CIDR 为 2600:1f13:fc2:a700:1768::/80。

```
Import-Module AWS.Tools.EC2
New-EC2NetworkInterface `
    -SubnetId 'subnet-047cfed18eEXAMPLE' `
    -Description 'IPv6 manual example' `
    -Ipv6Prefix (New-Object `
        -TypeName Amazon.EC2.Model.Ipv6PrefixSpecificationRequest `
        -Property @{Ipv6Prefix = '2600:1f13:fc2:a700:1768::/80'})
```

------

## 分配前缀至现有网络接口
<a name="assign-auto-existing"></a>

您可以为现有网络接口分配自动或自定义前缀。

------
#### [ Console ]

**自动分配前缀至现有网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选择要为其分配前缀的网络接口，然后选择 **Actions**（操作）、**Manage prefixes**（管理前缀）。

1. 对于 **IPv4 前缀委派**，请执行下列操作之一：
   + 要自动分配 IPv4 前缀，请选择**自动分配**。对于 **IPv4 前缀的数量**，输入要分配的前缀数。
   + 要分配特定 IPv4 前缀，请选择**自定义**。选择**添加新的前缀**，然后输入该前缀。

1. 对于 **IPv6 前缀委派**，请执行下列操作之一：
   + 要自动分配 IPv6 前缀，请选择**自动分配**。对于 **IPv6 前缀的数量**，输入要分配的前缀数。
   + 要分配特定 IPv6 前缀，请选择**自定义**。选择**添加新的前缀**，然后输入该前缀。
**注意**  
**IPv6 prefix delegation**（IPv6 前缀委派）仅当为 IPv6 启用了选定的子网时才会显示。

1. 选择**保存**。

------
#### [ AWS CLI ]

使用 [assign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-ipv6-addresses.html) 命令为现有网络接口分配 IPv6 前缀，并使用 [assign-private-ip-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-private-ip-addresses.html) 命令为现有网络接口分配 IPv4 前缀。

**自动分配 IPv4 前缀至现有网络接口**  
使用 [assign-private-ip-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-private-ip-addresses.html) 命令并将 `--ipv4-prefix-count` 设置为要让 AWS 分配的 IPv4 前缀数。在下面的示例中，AWS 分配一个 IPv4 前缀。

```
aws ec2 assign-private-ip-addresses \
    --network-interface-id eni-081fbb4095EXAMPLE \
    --ipv4-prefix-count 1
```

**分配特定 IPv4 前缀至现有网络接口**  
使用 [assign-private-ip-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-private-ip-addresses.html) 命令并设置 `--ipv4-prefixes` 至前缀。AWS 会从此范围中选择 IPv4 地址。在下面的示例中，前缀 CIDR 为 10.0.0.208/28。

```
aws ec2 assign-private-ip-addresses \
    --network-interface-id eni-081fbb4095EXAMPLE \
    --ipv4-prefixes 10.0.0.208/28
```

**自动分配 IPv6 前缀至现有网络接口**  
使用 [assign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-ipv6-addresses.html) 命令并将 `--ipv6-prefix-count` 设置为要让 AWS 分配的 IPv6 前缀数。在下面的示例中，AWS 分配一个 IPv6 前缀。

```
aws ec2 assign-ipv6-addresses \
    --network-interface-id eni-00d577338cEXAMPLE \
    --ipv6-prefix-count 1
```

**分配特定 IPv6 前缀至现有网络接口**  
使用 [assign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-ipv6-addresses.html) 命令并设置 `--ipv6-prefixes` 至前缀。AWS 会从此范围中选择 IPv6 地址。在下面的示例中，前缀 CIDR 为 2600:1f13:fc2:a700:18bb::/80。

```
aws ec2 assign-ipv6-addresses \
    --network-interface-id eni-00d577338cEXAMPLE \
    --ipv6-prefixes 2600:1f13:fc2:a700:18bb::/80
```

------
#### [ PowerShell ]

**自动分配 IPv4 前缀至现有网络接口**  
使用 [Register-EC2PrivateIpAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2PrivateIpAddress.html) cmdlet 并将 `Ipv4PrefixCount` 设置为要让 AWS 分配的 IPv4 前缀数。在下面的示例中，AWS 分配一个 IPv4 前缀。

```
Register-EC2PrivateIpAddress `
    -NetworkInterfaceId 'eni-00d577338cEXAMPLE' `
    -Ipv4PrefixCount 1
```

**分配特定 IPv4 前缀至现有网络接口**  
使用 [Register-EC2PrivateIpAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2PrivateIpAddress.html) cmdlet 并将 `Ipv4Prefix` 设置为该前缀。AWS 会从此范围中选择 IPv4 地址。在下面的示例中，前缀 CIDR 为 10.0.0.208/28。

```
Register-EC2PrivateIpAddress `
    -NetworkInterfaceId 'eni-00d577338cEXAMPLE' `
    -Ipv4Prefix '10.0.0.208/28'
```

**自动分配 IPv6 前缀至现有网络接口**  
使用 [Register-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Ipv6AddressList.html) cmdlet 并将 `Ipv6PrefixCount` 设置为要让 AWS 分配的 IPv4 前缀数。在下面的示例中，AWS 分配一个 IPv6 前缀。

```
Register-EC2Ipv6AddressList `
    -NetworkInterfaceId 'eni-00d577338cEXAMPLE' `
    -Ipv6PrefixCount 1
```

**分配特定 IPv6 前缀至现有网络接口**  
使用 [Register-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Ipv6AddressList.html) cmdlet 并将 `Ipv6Prefix` 设置为该前缀。AWS 会从此范围中选择 IPv6 地址。在下面的示例中，前缀 CIDR 为 2600:1f13:fc2:a700:18bb::/80。

```
Register-EC2Ipv6AddressList `
    -NetworkInterfaceId 'eni-00d577338cEXAMPLE' `
    -Ipv6Prefix '2600:1f13:fc2:a700:18bb::/80'
```

------

## 从网络接口中移除前缀
<a name="unassign-prefix"></a>

您可以从现有网络接口中删除前缀。

------
#### [ Console ]

**从网络接口中移除前缀**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选择网络接口。

1. 选择**操作**，**管理前缀**。

1. 对于 **IPv4 前缀委派**，要删除特定的前缀，请选择要删除的前缀旁边的**取消分配**。要移除所有前缀，请选择**不分配**。

1. 对于 **IPv6 前缀委派**，要删除特定的前缀，请选择要删除的前缀旁边的**取消分配**。要移除所有前缀，请选择**不分配**。
**注意**  
**IPv6 prefix delegation**（IPv6 前缀委派）仅当为 IPv6 启用了选定的子网时才会显示。

1. 选择**保存**。

------
#### [ AWS CLI ]

您可以使用 [unassign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-ipv6-addresses.html) 命令来移除 IPv6 前缀，使用 [unassign-private-ip-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-private-ip-addresses.html) 命令将 IPv4 前缀从现有网络接口中移除。

**从网络接口中移除 IPv4 前缀**  


使用 [unassign-private-ip-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-private-ip-addresses.html) 命令并将 `--ipv4-prefix` 设置为要移除的前缀 CIDR。

```
aws ec2 unassign-private-ip-addresses \
    --network-interface-id eni-081fbb4095EXAMPLE \
    --ipv4-prefixes 10.0.0.176/28
```

**从网络接口中移除 IPv6 前缀**  
使用 [unassign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-ipv6-addresses.html) 命令并将 `--ipv6-prefix` 设置为要移除的前缀 CIDR。

```
aws ec2 unassign-ipv6-addresses \
    --network-interface-id eni-00d577338cEXAMPLE \
    --ipv6-prefix 2600:1f13:fc2:a700:18bb::/80
```

------
#### [ PowerShell ]

**从网络接口中移除 IPv4 前缀**  
使用 [Unregister-EC2PrivateIpAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2PrivateIpAddress.html) cmdlet 并将 `Ipv4Prefix` 设置为要移除的前缀 CIDR。

```
Unregister-EC2PrivateIpAddress `
    -NetworkInterfaceId 'eni-00d577338cEXAMPLE' `
    -Ipv4Prefix '10.0.0.208/28'
```

**从网络接口中移除 IPv6 前缀**  
使用 [Unregister-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Ipv6AddressList.html) cmdlet 并将 `Ipv6Prefix` 设置为要移除的前缀 CIDR。

```
Unregister-EC2Ipv6AddressList `
    -NetworkInterfaceId 'eni-00d577338cEXAMPLE' `
    -Ipv6Prefix '2600:1f13:fc2:a700:18bb::/80'
```

------

# 删除网络接口
<a name="delete_eni"></a>

删除网络接口之后，所有与该接口关联的属性都会被释放，而且所有私有 IP 地址或弹性 IP 地址也都会被释放以供另一个实例使用。

您无法删除正在使用的网络接口。首先，您必须[分离网络接口](network-interface-attachments.md#detach_eni)。

------
#### [ Console ]

**删除网络接口**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**网络接口**。

1. 选中网络接口的复选框，然后依次选择**操作**、**删除**。

1. 当系统提示进行确认时，选择 **Delete（删除）**。

------
#### [ AWS CLI ]

**删除网络接口**  
使用以下 [delete-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-network-interface.html) 命令。

```
aws ec2 delete-network-interface --network-interface-id eni-1234567890abcdef0
```

------
#### [ PowerShell ]

**删除网络接口**  
使用 [Remove-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2NetworkInterface.html) cmdlet。

```
Remove-EC2NetworkInterface -NetworkInterfaceId eni-1234567890abcdef0
```

------