

# 默认 VPC
<a name="default-vpc"></a>

当您开启使用 Amazon VPC 时，每个 AWS 区域都有一个原定设置的 VPC。原定设置 VPC 在每个可用区中都有一个公有子网、一个互联网网关以及用于启用 DNS 解析的设置。因此，您可以立即在原定设置 VPC 中启动 Amazon EC2 实例。您还可以在默认 VPC 中使用 Elastic Load Balancing、Amazon RDS 和 Amazon EMR 等服务。

原定设置 VPC 适用于快速入门和启动公有实例 (如博客或简单的网站)。您可以按需修改您的默认 VPC 的组件。

您可以将子网添加到原定设置 VPC 中。有关更多信息，请参阅 [创建子网](create-subnets.md)。

**Topics**
+ [默认 VPC 组件](default-vpc-components.md)
+ [默认子网](default-subnet.md)
+ [查看默认 VPC 和默认子网](work-with-default-vpc.md)

# 默认 VPC 组件
<a name="default-vpc-components"></a>

当我们创建默认 VPC 时，我们会通过以下操作为您完成设置：
+ 创建 IPv4 CIDR 块大小为 `/16` 的 VPC (`172.31.0.0/16`)。最多可提供 65536 个私有 IPv4 地址。
+ 在每个可用区内创建大小为 `/20` 的默认子网。这将为每个子网提供多达 4,096 个地址，其中有一些被预留下来供我们使用。
+ 创建[互联网网关](VPC_Internet_Gateway.md)并将其连接到您的默认 VPC。
+ 在主路由表中添加一个将所有流量 (`0.0.0.0/0`) 指向互联网网关的路由。
+ 创建默认安全组并将其与您的默认 VPC 关联。
+ 创建默认网络访问控制列表 (ACL)，并将其与您的默认 VPC 关联。
+ 关联为您的 AWS 账户设置的默认 DHCP 选项与您的默认 VPC。

**注意**  
Amazon 代表您创建上述资源。IAM 策略不应用到这些操作，因为您不执行这些操作。例如，如果您有 IAM 策略拒绝了调用 CreateInternetGateway 的功能，然后您调用 CreateDefaultVpc，则仍会在默认 VPC 中创建互联网网关。为了防止 Amazon 创建互联网网关，您必须拒绝 CreateDefaultVpc 和 CreateInternetGateway。
要阻止您账户中往返于互联网网关的所有流量，请参阅[屏蔽 VPC 和子网的公共访问权限](security-vpc-bpa.md)。

下图表明了我们为默认 VPC 设置的关键组件。

![\[我们在每个区域创建一个默认 VPC，每个可用区都有一个默认子网。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/userguide/images/default-vpc.png)


下表显示默认 VPC 的主路由表中的路由。


| 目标位置 | 目标 | 
| --- | --- | 
| 172.31.0.0/16 | 本地 | 
| 0.0.0.0/0 | internet\$1gateway\$1id | 

您可以像使用任何其他 VPC 一样使用默认 VPC：
+ 添加更多非默认子网。
+ 修改主路由表。
+ 添加更多路由表。
+ 关联更多安全组。
+ 更新默认安全组的规则。
+ 添加 AWS Site-to-Site VPN 连接。
+ 添加更多 IPv4 CIDR 块。
+ 使用 Direct Connect 网关访问远程区域中的 VPC。有关 Direct Connect 网关选项的信息，请参阅《*AWS Direct Connect 用户指南*》中的 [Direct Connect 网关](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-gateways-intro.html)。

您可像使用任何其他子网一样使用默认子网；可添加自定义路由表和设置网络 ACL。您还可以在启动 EC2 实例时指定特定默认子网。

您可以选择将 IPv6 CIDR 块与默认 VPC 关联。

# 默认子网
<a name="default-subnet"></a>

默认情况下，默认子网为公有子网，因为主路由表会将指定发往 Internet 的子网流量发送到互联网网关。您可以从到互联网网关的目标 0.0.0.0/0 中删除路由，以使默认子网变为私有子网。但是，如果您执行此操作，则在该子网中运行的所有 EC2 实例都无法访问 Internet。

您在默认子网中启动的实例将同时接收公有 IPv4 地址和私有 IPv4 地址以及公有和私有 DNS 主机名。在默认 VPC 中的非默认子网内启动的实例不接收公有 IPv4 地址或 DNS 主机名。您可以更改您子网的默认公有 IP 寻址行为。有关更多信息，请参阅 [修改子网的 IP 寻址属性](subnet-public-ip.md)。

有时，AWS 可能会向某个区域添加新可用区。大多数情况下，我们会在几天内在此可用区中为您的默认 VPC 自动创建新的默认子网。但是，如果您对默认 VPC 进行过任何修改，那么我们不会添加新的默认子网。如果您希望对新的可用区使用默认子网，则可以自行创建一个。有关更多信息，请参阅 [创建默认子网](work-with-default-vpc.md#create-default-subnet)。

# 查看默认 VPC 和默认子网
<a name="work-with-default-vpc"></a>

本节旨在介绍如何使用默认 VPC 和默认子网。

**Topics**
+ [查看您的默认 VPC 和默认子网](#view-default-vpc)
+ [创建默认 VPC](#create-default-vpc)
+ [创建默认子网](#create-default-subnet)
+ [删除您的默认子网和默认 VPC](#deleting-default-vpc)

## 查看您的默认 VPC 和默认子网
<a name="view-default-vpc"></a>

您可以使用 Amazon VPC 控制台或命令行查看您的默认 VPC 和子网。

**使用控制台查看您的默认 VPC 和子网**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Your VPCs**。

1. 在 **Default VPC** 列中，查找值 **Yes**。记下默认 VPC 的 ID。

1. 在导航窗格中，选择 **Subnets (子网)**。

1. 在搜索栏中，键入默认 VPC 的 ID。返回的子网是您的默认 VPC 中的子网。

1. 要验证哪些子网是默认子网，请在 **Default Subnet ** 列中查找值 **Yes**。

**使用命令行描述您的默认 VPC**
+ 使用 [describe-vpcs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpcs.html) (AWS CLI)
+ 使用 [Get-EC2Vpc](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Vpc.html) (AWS Tools for Windows PowerShell)

将命令与 `isDefault` 筛选器结合使用并将筛选值设置为 `true`。

**使用命令行描述您的默认子网**
+ 使用 [describe-subnets](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-subnets.html) (AWS CLI)
+ 使用 [Get-EC2Subnet](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Subnet.html) (AWS Tools for Windows PowerShell)

将命令与 `vpc-id` 筛选器结合使用并将筛选值设置为默认 VPC 的 ID。在输出中，`DefaultForAz` 字段对默认子网设置为 `true`。

## 创建默认 VPC
<a name="create-default-vpc"></a>

如果您删除了默认 VPC，则可以创建一个新的默认 VPC。您无法恢复之前删除的默认 VPC，并且无法将现有非默认 VPC 标记为默认 VPC。

当您创建默认 VPC 时，将使用默认 VPC 的标准[组件](default-vpc-components.md)创建它 (包括每个可用区中的默认子网)。您无法指定您自己的组件。新的默认 VPC 的子网 CIDR 块可能不会与之前的默认 VPC 映射到同一可用区。例如，如果具有 CIDR 块的子网 `172.31.0.0/20` 是在之前的默认 VPC 的 `us-east-2a` 中创建的，则该子网可能在新的默认 VPC 的 `us-east-2b` 中创建。

如果您在该区域中已经有默认 VPC，则无法创建另一个默认 VPC。

**使用控制台创建默认 VPC**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Your VPCs**。

1. 依次选择 **Actions** 和 **Create Default VPC**。

1. 选择**创建**。关闭确认屏幕。

**使用命令行创建默认 VPC**  
您可以使用 [create-default-vpc](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-default-vpc.html) AWS CLI 命令。此命令没有任何输入参数。

```
aws ec2 create-default-vpc
```

下面是示例输出。

```
{
    "Vpc": {
        "VpcId": "vpc-3f139646", 
        "InstanceTenancy": "default", 
        "Tags": [], 
        "Ipv6CidrBlockAssociationSet": [], 
        "State": "pending", 
        "DhcpOptionsId": "dopt-61079b07", 
        "CidrBlock": "172.31.0.0/16", 
        "IsDefault": true
    }
}
```

或者，您可以将 [New-EC2DefaultVpc](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2DefaultVpc.html) 工具用于 Windows PowerShell 命令或 [CreateDefaultVpc](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateDefaultVpc.html) Amazon EC2 API 操作。

## 创建默认子网
<a name="create-default-subnet"></a>

**注意**  
您不能使用 AWS 管理控制台 创建默认子网。

您可以在没有默认子网的可用区中创建一个默认子网。例如，如果您已删除默认子网，或者 AWS 已添加新的可用区但未在您的默认 VPC 中为该区域自动创建默认子网，则您可能需要创建一个默认子网。

创建默认子网时，将使用您的默认 VPC 中的下一个可用连续空间内的大小为 `/20` 的 IPv4 CIDR 块创建它。以下规则适用：
+ 不能自行指定 CIDR 块。
+ 不能恢复已删除的之前的默认子网。
+ 每个可用区只能有一个默认子网。
+ 不能在非默认 VPC 中创建默认子网。

如果您的默认 VPC 中没有用于创建大小为 `/20` 的 CIDR 块的足够地址空间，则请求会失败。如果您需要更多地址空间，则可以[将 IPv4 CIDR 块添加到您的 VPC](vpc-cidr-blocks.md#vpc-resize)。

如果您已将 IPv6 CIDR 块与您的默认 VPC 关联，则新的默认子网不会自动接收 IPv6 CIDR 块。您可以改为在创建一个 IPv6 CIDR 块后将其与默认子网关联。有关更多信息，请参阅 [将 IPv6 CIDR 块添加到子网或从中删除](subnet-associate-ipv6-cidr.md)。

**使用 AWS CLI 创建默认子网**  
使用 [create-default-subnet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-default-subnet.html) AWS CLI 命令并指定要在其中创建子网的可用区。

```
aws ec2 create-default-subnet --availability-zone us-east-2a
```

下面是示例输出。

```
{
    "Subnet": {
        "AvailabilityZone": "us-east-2a", 
        "Tags": [], 
        "AvailableIpAddressCount": 4091, 
        "DefaultForAz": true, 
        "Ipv6CidrBlockAssociationSet": [], 
        "VpcId": "vpc-1a2b3c4d", 
        "State": "available", 
        "MapPublicIpOnLaunch": true, 
        "SubnetId": "subnet-1122aabb", 
        "CidrBlock": "172.31.32.0/20", 
        "AssignIpv6AddressOnCreation": false
    }
}
```

有关设置 AWS CLI 的更多信息，请参阅《[AWS Command Line Interface 用户指南](https://docs.aws.amazon.com/cli/latest/userguide/)》。

或者，您也可以使用 [New-EC2DefaultSubnet](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2DefaultSubnet.html) Tools for Windows PowerShell 命令或 [CreateDefaultSubnet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateDefaultSubnet.html) Amazon EC2 API 操作。

## 删除您的默认子网和默认 VPC
<a name="deleting-default-vpc"></a>

您可以像删除其他任何子网或 VPC 一样删除默认子网或默认 VPC。但是，如果您删除默认子网或默认 VPC，则在启动实例时必须显式指定您的一个 VPC 中的一个子网。如果您没有另一个 VPC，则必须创建至少在一个可用区内有一个子网的 VPC。有关更多信息，请参阅 [创建 VPC](create-vpc.md)。

如果您删除了默认 VPC，则可以创建一个新的默认 VPC。有关更多信息，请参阅 [创建默认 VPC](#create-default-vpc)。

如果您删除默认子网，则可以创建一个新的默认子网。有关更多信息，请参阅 [创建默认子网](#create-default-subnet)。为了确保您的新默认子网按预期正常运行，请修改子网属性以将公有 IP 地址分配到在该子网中启动的实例。有关更多信息，请参阅 [修改子网的 IP 寻址属性](subnet-public-ip.md)。每个可用区只能有一个默认子网。不能在非默认 VPC 中创建默认子网。