

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Windows 服务器配置为 AWS Site-to-Site VPN 客户网关设备
<a name="customer-gateway-device-windows"></a>

您可以将一台运行 Windows Server 的服务器配置为 VPC 的客户网关设备。无论您是在 VPC 中的 EC2 实例上还是在自己的服务器上运行 Windows Server，都应执行以下过程。以下过程适用于 Windows Server 2012 R2 及更高版本。

**Topics**
+ [配置您的 Windows 实例](#cgw-device-windows-server-configure-instance)
+ [步骤 1：创建 VPN 连接并配置您的 VPC](#cgw-device-windows-server-vpn)
+ [步骤 2：下载 VPN 连接的配置文件](#cgw-device-windows-server-config)
+ [步骤 3：配置 Windows Server](#cgw-device-windows-server-configure)
+ [步骤 4：设置 VPN 隧道](#cgw-device-windows-server-setup-tunnel)
+ [步骤 5：启用失效网关检测](#cgw-device-windows-server-gateway-detection)
+ [步骤 6：测试 VPN 连接](#cgw-device-windows-server-test-connection)

## 配置您的 Windows 实例
<a name="cgw-device-windows-server-configure-instance"></a>

如果将 Windows Server 配置在从 Windows AMI 启动的 EC2 实例上，请执行以下操作：
+ 禁用对实例的 source/destination 检查：

  1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

  1. 选择您的 Windows 实例，然后依次选择 **Actions**（操作）、**Networking**（网络）、**Change source/destination check**（更改源/目标检查）。选择 **Stop**（停止），然后选择 **Save**（保存）。
+ 更新适配器设置，以便您可以路由来自其他实例的流量：

  1. 连接到您的 Windows 实例。有关更多信息，请参阅[连接到您的 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)。

  1. 打开控制面板，启动设备管理器。

  1. 展开**网络适配器**节点。

  1. 选择网络适配器（根据实例类型，可能是 Amazon Elastic Network Adapter 或 Intel 82599 虚拟功能），然后选择 **Action**（操作）、**Properties**（属性）。

  1. **在 “**高级**” 选项卡上，禁用 “**IPv4校验和卸载**”、“**TCP 校验和卸载” (IPv4)** 和 “**UDP 校验和卸载 (IPv4)**” 属性，然后选择 “确定”。**
+ 向您的账户分配弹性 IP 地址并将该地址与实例关联。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)。请记下此地址 – 您创建客户网关时将需要此地址。
+ 确保实例的安全组规则允许出站 IPsec 流量。默认情况下，安全组允许所有出站流量。但是，如果安全组的出站规则已从其原始状态进行了修改，则必须为 IPsec 流量创建以下出站自定义协议规则：IP 协议 50、IP 协议 51 和 UDP 500。

记下您的 Windows 实例所在网络的 CIDR 范围，例如，`172.31.0.0/16`。

## 步骤 1：创建 VPN 连接并配置您的 VPC
<a name="cgw-device-windows-server-vpn"></a>

要从您的 VPC 创建 VPN 连接，请执行以下操作：

1.  创建虚拟私有网关并将其连接到您的 VPC。有关更多信息，请参阅 [创建虚拟专用网关](SetUpVPNConnections.md#vpn-create-vpg)。

1. 创建 VPN 连接和新的客户网关。对于客户网关，请指定 Windows Server 的公有 IP 地址。对于 VPN 连接，请选择静态路由，然后输入 Windows Server 所在网络的 CIDR 范围，例如 `172.31.0.0/16`。有关更多信息，请参阅 [步骤 5：创建 VPN 连接](SetUpVPNConnections.md#vpn-create-vpn-connection)。

创建 VPN 连接后，请将 VPC 配置为启用通过 VPN 连接进行通信。

**配置您的 VPC**
+ 在 VPC 中创建私有子网（如果您还没有），以启动要与 Windows Server 通信的实例。有关更多信息，请参阅[在 VPC 中创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html#AddaSubnet)。
**注意**  
私有子网是不路由到 Internet 网关的子网。下一个项目中描述了此子网的路由。
+ 更新您的 VPN 连接的路由表：
  + 向私有子网的路由表添加路由，以虚拟私有网关作为目标，以 Windows Server 的网络（CIDR 范围）作为目的地。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[从路由表添加和删除路由](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithRouteTables.html#AddRemoveRoutes)。
  + 为虚拟专用网关启用路由传播。有关更多信息，请参阅 [（虚拟私有网关）在路由表中启用路由传播](SetUpVPNConnections.md#vpn-configure-routing)。
+ 为您的实例创建安全组，以允许在 VPC 与您的网络之间进行通信：
  + 添加允许来自您的网络的入站 RDP 或 SSH 访问的规则。这样，您可以从您的网络连接到 VPC 中的实例。例如，要允许您的网络中的计算机访问您的 VPC 中的 Linux 实例，请创建一个 SSH 类型、源设置为您的网络的 CIDR 范围（如 `172.31.0.0/16`）的入站规则。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。
  + 添加允许来自您的网络的入站 ICMP 访问的规则。这样，通过从 Windows Server 对 VPC 中的实例执行 ping 操作，可以测试您的 VPN 连接。

## 步骤 2：下载 VPN 连接的配置文件
<a name="cgw-device-windows-server-config"></a>

您可以使用 Amazon VPC 控制台为您的 VPN 连接下载 Windows Server 配置文件。

**下载配置文件**

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

1. 在导航窗格中，选择 **Site-to-Site VPN Connections**。

1. 选择您的 VPN 连接，然后选择 **Download Configuration**（下载配置）。

1. 选择 **Microsoft** 作为供应商，**Windows Server** 作为平台，**2012 R2** 作为软件。选择**下载**。您可以打开或保存文件。

配置文件中包含一部分与以下示例相似的信息。您会看到这些信息出现两次，每条隧道一次。

```
vgw-1a2b3c4d Tunnel1
--------------------------------------------------------------------	
Local Tunnel Endpoint:       203.0.113.1
Remote Tunnel Endpoint:      203.83.222.237
Endpoint 1:                  [Your_Static_Route_IP_Prefix]
Endpoint 2:                  [Your_VPC_CIDR_Block]
Preshared key:               xCjNLsLoCmKsakwcdoR9yX6GsEXAMPLE
```

`Local Tunnel Endpoint`  
在您创建 VPN 连接时，您为客户网关指定的 IP 地址。

`Remote Tunnel Endpoint`  
虚拟专用网关的两个 IP 地址之一，用于终止连接 AWS 侧的 VPN 连接。

`Endpoint 1`  
在您创建 VPN 连接时，您指定作为静态路由的 IP 前缀。您的网络中的这些 IP 地址被允许使用 VPN 连接访问您的 VPC。

`Endpoint 2`  
连接到虚拟私有网关的 VPC 的 IP 地址范围（CIDR 块，例如 10.0.0.0/16）。

`Preshared key`  
用于在`Local Tunnel Endpoint`和`Remote Tunnel Endpoint`之间建立 IPsec VPN 连接的预共享密钥。

我们建议您将两条隧道配置为 VPN 连接的一部分。 每条隧道都连接到 Site-to-Site VPN 连接的 Amazon 一侧的独立 VPN 集中器。尽管每次只可使用一条隧道，但第二条隧道会在第一条隧道出现故障时自动建立连接。配备冗余隧道可确保在设备故障时连续可用。由于一次仅一条隧道可用，Amazon VPC 控制台指示一条隧道处于关闭状态。这是预期行为，因此无需您采取任何操作。

配置了两条隧道后，如果其中出现设备故障 AWS，您的 VPN 连接将在几分钟内自动故障转移到虚拟专用网关的第二条隧道。在您配置客户网关设备时，务必配置两条隧道。

**注意**  
不时对虚拟专用网关 AWS 执行例行维护。这项维护可能会在短时间内禁用您的 VPN 连接的两条隧道中的一条。当我们执行维护任务时，您的 VPN 连接会自动失效转移到第二条隧道。

下载的配置文件中提供了有关互联网密钥交换 (IKE) 和 IPsec 安全关联 (SA) 的其他信息。

```
MainModeSecMethods:        DHGroup2-AES128-SHA1
MainModeKeyLifetime:       480min,0sess
QuickModeSecMethods:       ESP:SHA1-AES128+60min+100000kb
QuickModePFS:              DHGroup2
```

`MainModeSecMethods`  
IKE SA 的加密和身份验证算法。这些是 VPN 连接的建议设置，也是 Windows 服务器 IPsec VPN 连接的默认设置。

`MainModeKeyLifetime`  
IKE SA 密钥使用期限。  这是 VPN 连接的建议设置，也是 Windows 服务器 IPsec VPN 连接的默认设置。

`QuickModeSecMethods`  
 IPsec SA 的加密和身份验证算法。这些是 VPN 连接的建议设置，也是 Windows 服务器 IPsec VPN 连接的默认设置。

`QuickModePFS`  
 我们建议您在会话中使用主密钥完全向前保密 (PFS)。IPsec 

## 步骤 3：配置 Windows Server
<a name="cgw-device-windows-server-configure"></a>

在设置 VPN 隧道之前，您必须在 Windows Server 上安装并配置路由和远程访问服务。这将允许远程用户访问您的网络上的资源。

**要安装路由和远程访问服务**

1. 登录您的 Windows Server。

1. 转到**开始**菜单，然后选择**服务器管理器**。

1. 安装路由和远程访问服务：

   1. 从**管理**菜单中，选择**添加角色和功能**。

   1. 在**开始之前**页面中，确认您的服务器满足先决条件，然后选择**下一步**。

   1. 选择**基于角色或基于功能的安装**，然后选择**下一步**。

   1. 选择 **Select a server from the server pool**（从服务器池中选择一个服务器），选择 Windows Server，然后选择 **Next**（下一步）。

   1. 在列表中选择**网络策略和访问服务**。在显示的对话框中选择**添加功能**以确认此角色所需的功能。

   1. 在同一列表中，依次选择**远程访问**、**下一步**。

   1. 在**选择功能**页面上，选择**下一步**。

   1. 在**网络策略和访问服务** 页面中，选择**下一步**。

   1. 在**远程访问**页面上，选择**下一步**。在下一页上，选择**DirectAccess 和 VPN (RAS)**。在显示的对话框中选择**添加功能**以确认此角色服务所需的功能。在同一列表中，选择**路由**，然后选择**下一步**。

   1. 在 **Web 服务器角色(IIS)** 页面上，选择**下一步**。保留默认选择，然后选择**下一步**。

   1. 选择**安装**。安装完成后，选择**关闭**。

**配置和启用路由和远程访问服务器。**

1. 在仪表板上，选择**通知** (旗帜图标)。此时应该还有一项任务是完成部署后配置。选择**打开开始向导**链接。

1. 选择**仅部署 VPN**。

1. 在 **Routing and Remote Access (路由和远程访问)** 对话框中，选择服务器名称，选择 **Action (操作)**，然后选择 **Configure and Enable Routing and Remote Access (配置并启用路由和远程访问)**。

1. 在**路由和远程访问服务器安装向导**的第一个页面上，选择**下一步**。

1. 在 **Configuration (配置)** 页面上，选择 **Custom Configuration (自定义配置)**、**Next (下一步)**。

1. 依次选择 **LAN 路由**、**下一步**和**完成**。

1. 当出现**路由和远程访问**对话框提示时，选择**启动服务**。

## 步骤 4：设置 VPN 隧道
<a name="cgw-device-windows-server-setup-tunnel"></a>

通过运行所下载的配置文件中的 netsh 脚本，或者使用 Windows Server 用户界面，可以配置 VPN 隧道。

**重要**  
我们建议您在会话中使用主密钥完全向前保密 (PFS)。 IPsec 如果您选择运行 netsh 脚本，它会包含一个用于启用 PFS () `qmpfs=dhgroup2` 的参数。您不能使用 Windows 用户界面启用 PFS，而是必须使用命令行来启用。

**Topics**
+ [选项 1：运行 netsh 脚本](#cgw-device-windows-server-run-netsh)
+ [选项 2：使用 Windows Server 用户界面](#cgw-device-windows-server-ui)

### 选项 1：运行 netsh 脚本
<a name="cgw-device-windows-server-run-netsh"></a>

复制已下载配置文件中的 Netsh 脚本，并更换变量。以下为示例脚本。

```
netsh advfirewall consec add rule Name="vgw-1a2b3c4d Tunnel 1" ^
Enable=Yes Profile=any Type=Static Mode=Tunnel ^
LocalTunnelEndpoint={{Windows_Server_Private_IP_address}} ^
RemoteTunnelEndpoint=203.83.222.236 Endpoint1={{Your_Static_Route_IP_Prefix}} ^
Endpoint2={{Your_VPC_CIDR_Block}} Protocol=Any Action=RequireInClearOut ^
Auth1=ComputerPSK Auth1PSK=xCjNLsLoCmKsakwcdoR9yX6GsEXAMPLE ^
QMSecMethods=ESP:SHA1-AES128+60min+100000kb ^
ExemptIPsecProtectedConnections=No ApplyAuthz=No QMPFS=dhgroup2
```

**Name**：您可以用自己选择的名称替换建议名称(`vgw-1a2b3c4d Tunnel 1)`。

**LocalTunnelEndpoint**：输入您网络上的 Windows 服务器的私有 IP 地址。

**Endpoint1**：Windows Server 所在网络的 CIDR 块，例如 `172.31.0.0/16`。用双引号（"）将此值括起来。

**Endpoint2**：您的 VPC 或 VPC 中的子网的 CIDR 块，例如，`10.0.0.0/16`。用双引号（"）将此值括起来。

在 Windows Server 上的命令提示行窗口中运行已更新的脚本。(^可让您剪切和粘贴命令行中的折叠文本)。要设置此 VPN 连接的第二条 VPN 隧道，请使用配置文件中的第二个 Netsh 脚本重复该过程。

完成后，请转到 [配置 Windows 防火墙](#cgw-device-windows-server-firewall)。

*有关 netsh 参数的更多信息，请参阅 Microsoft 库[中的 Netsh AdvFirewall Consec 命令](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd736198(v=ws.10)?redirectedfrom=MSDN#BKMK_2_set)。 TechNet*

### 选项 2：使用 Windows Server 用户界面
<a name="cgw-device-windows-server-ui"></a>

您还可以使用 Windows Server 用户界面以设置 VPN 隧道。

**重要**  
您无法使用 Windows Server 用户界面启用主密钥完美前向保密 (PFS)。您必须如[启用主密钥完全向前保密](#cgw-device-windows-server-enable-pfs)所述使用命令行启用 PFS。

**Topics**
+ [为 VPN 隧道配置安全规则](#cgw-device-windows-server-security-rule)
+ [确认隧道配置](#cgw-device-windows-server-confirm-tunnel)
+ [启用主密钥完全向前保密](#cgw-device-windows-server-enable-pfs)
+ [配置 Windows 防火墙](#cgw-device-windows-server-firewall)

#### 为 VPN 隧道配置安全规则
<a name="cgw-device-windows-server-security-rule"></a>

在这部分中，将在 Windows Server 上配置安全规则以创建 VPN 隧道。

**为 VPN 隧道配置一个安全规则**

1. 打开服务器管理器，选择 **Tools**（工具），然后选择**Windows Defender Firewall with Advanced Security**（高级安全 Windows Defender 防火墙）。

1. 选择**连接安全规则**、**操作**和**新建规则**。

1. 在**新建连接安全规则**向导中的**规则类型**页面上，选择**隧道**，然后选择**下一步**。

1. 在 **Tunnel Type (隧道类型)** 页面中的 **What type of tunnel would you like to create (您希望创建什么类型的隧道)** 下，选择 **Custom Configuration (自定义配置)**。在 “**是否要将 IPsec受保护的连接从该隧道中排除**出来” 下，保留默认值为选中状态（**否。 通过隧道发送与该连接安全规则匹配的所有网络流量**），然后选择 “**下一步**”。

1. 在**要求**页面中，选择**要求对入站连接进行身份验证。不要为出站连接建立隧道**，然后选择**下一步**。

1. 在**隧道端点**页面上，在**端点 1 中的计算机**下，选择**添加**。输入您的网络的 CIDR 范围（在 Windows Server 客户网关设备之后，例如 `172.31.0.0/16`），然后选择 **OK**（确定）。该范围可以包含您的客户网关设备的 IP 地址。

1. 在**什么是本地隧道终结点(最接近终结点 1 中的计算机)** 下，选择**编辑**。在**IPv4 地址**字段中，输入您的 Windows 服务器的私有 IP 地址，然后选择**确定**。

1. 在**什么是远程隧道终结点(最接近终结点 2 中的计算机)** 下，选择**编辑**。在**IPv4 地址**字段中，输入配置文件中隧道 1 的虚拟专用网关的 IP 地址（参见`Remote Tunnel Endpoint`），然后选择**确定**。
**重要**  
如果您正在对隧道 2 重复此步骤，请确保选择隧道 2 的端点。

1. 在**终结点 2 中的计算机**下，选择**添加**。在**此 IP 地址或子网字段**中，输入您的 VPC 的 CIDR 块，然后选择**确定**。
**重要**  
您必须在此对话框中进行滚动，直至您找到**端点 2 中的计算机**为止。在完成此步骤之前请勿单击**下一步**，否则您将无法连接到您的服务器。  
![新连接安全规则向导：隧道端点](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/tunnelendpoints_complete_win2012.png)

1. 确认您指定的所有设置都正确，然后选择 **Next (下一步)**。

1. 在**身份验证方法**页面上，选择**高级**，然后选择**自定义**。

1. 在**第一身份验证方法**下，选择**添加**。

1. 选择 **Preshared key (预共享密钥)**，输入配置文件中的预共享密钥值，然后选择 **OK (确定)**。
**重要**  
如果要对隧道 2 重复此步骤，请确保选择隧道 2 的预共享密钥。

1. 确保未选中**第一身份验证可选**，然后选择**确定**。

1. 选择**下一步**。

1. 在 **Profile (配置文件)** 页面上，选中所有三个复选框：**Domain (域)**、**Private (私有)** 和 **Public (公有)**。选择**下一步**。

1. 在**名称**页面中，为您的连接规则输入名称；例如 `VPN to Tunnel 1`，然后选择 **Finish（完成）**。

重复以上过程，从配置文件中指定隧道 2 的数据。

完成后，您的 VPN 连接即配置了两条隧道。

#### 确认隧道配置
<a name="cgw-device-windows-server-confirm-tunnel"></a>

**确认隧道配置**

1. 打开服务器管理器，选择**工具**，选择**高级安全 Windows 防火墙**，然后选择**连接安全规则**。

1. 验证两条隧道的以下设置：
   + **Enabled (已启用)** 为 `Yes`
   + **终结点 1** 是您的网络的 CIDR 块
   + **终结点 2** 是您的 VPC 的 CIDR 块
   + **Authentication mode (身份验证模式)** 是 `Require inbound and clear outbound`
   + **Authentication method (身份验证方法)** 为 `Custom`
   + **端点 1 端口**为 `Any`
   + **端点 2 端口**为 `Any`
   + **Protocol (协议)** 为 `Any`

1. 选择第一个规则，然后选择**属性**。

1. 在 **Authentication (身份验证)** 选项卡上的 **Method (方法)** 下，选择 **Customize (自定义)**。确认 **First authentication methods (第一身份验证方法)** 包含隧道配置文件中的正确预共享密钥，然后选择 **OK (确定)**。

1. 在**高级**选项卡中，验证**域**、**私有**和**公有**都已被选定。

1. **在 “**IPsec 隧道**传输” 下，选择 “自定义”。**验证以下 IPsec 隧道设置，然后再次选择 “**确定”** 和 “**确定”** 以关闭对话框。
   + 已选择 “**使用 IPsec 隧道**”。
   + **本地隧道端点（最接近端点 1）** 包含 Windows Server 的 IP 地址。如果客户网关设备是 EC2 实例，这就是该实例的私有 IP 地址。
   + **Remote tunnel endpoint (closest to Endpoint 2) (本地隧道端点 (最接近端点 2))** 中包含此隧道的虚拟专用网关的 IP 地址。

1. 打开您的第二条隧道的属性。对此隧道重复第 4 步到第 7 步。

#### 启用主密钥完全向前保密
<a name="cgw-device-windows-server-enable-pfs"></a>

您可以使用命令行启用主密钥完全向前保密。此功能不能通过用户界面启用。

**启用主密钥完全向前保密**

1. 在您的 Windows Server 中打开新的命令提示符窗口。

1. 输入以下命令，并将 `rule_name` 替换为您为第一个连接规则提供的名称。

   ```
   netsh advfirewall consec set rule name="{{rule_name}}" new QMPFS=dhgroup2 QMSecMethods=ESP:SHA1-AES128+60min+100000kb
   ```

1. 对第二条隧道重复执行步骤 2，这次使用您为第二个连接规则提供的名称替换 `rule_name`。

#### 配置 Windows 防火墙
<a name="cgw-device-windows-server-firewall"></a>

在服务器上设置安全规则后，请配置一些基本IPsec 设置以使用虚拟专用网关。

**配置 Windows 防火墙**

1. 打开 Server Manager（服务器管理器），依次选择 **Tools**（工具）、**Windows Defender Firewall with Advanced Security**（高级安全 Windows Defender 防火墙）和 **Properties**（属性）。

1. 在 “**IPsec 设置**” 选项卡的 “**IPsec豁免**” 下，确认 “**豁免 ICMP**” 是否IPsec为 “**否”（默认）**。验证**IPsec 隧道授权**是否为 “**无”**。

1. 在**IPsec 默认值**下，选择**自定义**。

1. 在**密钥交换(主模式)** 下，选择**高级**，然后选择**自定义**。

1. 在 **Customize Advanced Key Exchange Settings (自定义高级密钥交换设置)** 中的 **Security methods (安全方式)** 下，验证第一个条目是否使用了以下默认值。
   + 完整性：SHA-1
   + 加密术：AES-CBC 128
   + 密钥交换算法：Diffie-Hellman Group 2
   + 在“**Key lifetimes**”选项下，验证“**Minutes**”为`480`，并且“**Sessions**”为`0`。

   以下设置与配置文件中的条目对应。

   ```
   MainModeSecMethods: DHGroup2-AES128-SHA1,DHGroup2-3DES-SHA1
   MainModeKeyLifetime: 480min,0sec
   ```

1. 在**密钥交换选项**下，选择**将 Diffie-Hellman 用于增强的安全性**，然后选择**确定**。

1. 在**数据保护(快速模式)**下，选择**高级**，然后选择**自定义**。

1. 选择**要求所有使用这些设置的连接安全规则使用加密**。

1. 在 **Data integrity and encryption (数据完整性和加密算法)** 选项下，保留默认值：
   + 协议：ESP
   + 完整性：SHA-1
   + 加密术：AES-CBC 128
   + 使用期限：60 分钟

   这些值与配置文件中的以下条目对应。

   ```
   QuickModeSecMethods: 
   ESP:SHA1-AES128+60min+100000kb
   ```

1. 选择 “**确定”** 返回 “**自定义IPsec 设置**” 对话框，然后再次选择 “**确定”** 以保存配置。

## 步骤 5：启用失效网关检测
<a name="cgw-device-windows-server-gateway-detection"></a>

接下来，配置 TCP，以删除无法使用的网关。也可以修改注册表键以完成此操作：`HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters`。在完成前面的部分之前，不要执行此步骤。在您更改注册密钥之后，您必须重新启动服务器。

**启用失效网关检测**

1. 在 Windows 服务器上，启动命令提示符或 PowerShell 会话，然后输入 **regedit** 以启动注册表编辑器。

1. **展开 **HKEY\_LOCAL\_** MACHINE，展开 SYSTE **M**，展开，展开 “**服务**” **CurrentControlSet**，展开 **Tcpi** p，然后展开 “参数”。**

1. 从**编辑**菜单中，选择**新建**，然后选择 **DWORD (32-位)值**。

1. 输入名称 **EnableDeadGWDetect**。

1. 选择**EnableDeadGWDetect**并选择 “**编辑”、“****修改**”。

1. 在**值数据**中，输入 **1**，然后选择**确定**。

1. 关闭注册表编辑器，并重新启动服务器。

有关更多信息，请参阅 *Microsoft TechNet 资源库[EnableDeadGWDetect](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc960464(v=technet.10)?redirectedfrom=MSDN)*中的。

## 步骤 6：测试 VPN 连接
<a name="cgw-device-windows-server-test-connection"></a>

要测试 VPN 连接是否正常工作，请在 VPC 中启动一个实例，并确保该实例没有 Internet 连接。启动实例后，从您的 Windows Server 对该实例的私有 IP 地址执行 ping 操作。从客户网关设备生成流量时，VPN 隧道将出现。因此，ping 命令也将启动 VPN 连接。

有关测试 VPN 连接的步骤，请参阅[测试 AWS Site-to-Site VPN 连接](HowToTestEndToEnd_Linux.md)。

如果 `ping` 命令失败，请检查以下信息：
+ 确保您配置了安全组规则以允许 ICMP 流向您的 VPC 中的实例。如果您的 Windows 服务器是 EC2 实例，请确保其安全组的出站规则允许 IPsec 流量。有关更多信息，请参阅 [配置您的 Windows 实例](#cgw-device-windows-server-configure-instance)。
+ 确保您向其发送 ping 命令的实例上的操作系统已配置为响应 ICMP。我们建议您使用其中一款亚马逊 Linux AMIs。
+ 如果您要执行 ping 操作的实例是 Windows 实例，请连接到该实例并在 Windows 防火墙 ICMPv4 上启用入站功能。
+ 确保为您的 VPC 或子网正确配置了路由表。有关更多信息，请参阅 [步骤 1：创建 VPN 连接并配置您的 VPC](#cgw-device-windows-server-vpn)。
+ 如果您的客户网关设备是 EC2 实例，请确保您已禁用该实例的 source/destination 检查。有关更多信息，请参阅 [配置您的 Windows 实例](#cgw-device-windows-server-configure-instance)。

在 Amazon VPC 控制台的 **VPN Connections** 页面上，选择 VPC 连接。第一条隧道处于 UP 状态。第二条隧道应同时配置，但除非第一条隧道出现故障，否则第二条隧道将无法使用。稍候几分钟，以建立加密隧道。