

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

# 排除 AWS Client VPN 连接故障
<a name="troubleshooting"></a>

使用以下主题排查您在使用客户端应用程序连接到 Client VPN 端点时可能遇到的问题。

**Topics**
+ [由管理员排查 Client VPN 端点问题](#client-vpn-endpoint-troubleshooting)
+ [在 AWS 提供的客户端 AWS 支持 中将诊断日志发送到](#windows-troubleshooting-client-send-diagnostics)
+ [排除 AWS 客户端 VPN 与基于 Windows 的客户端的连接故障](windows-troubleshooting.md)
+ [对 AWS Client VPN 与 macOS 客户端的连接进行故障排除](macos-troubleshooting.md)
+ [排除 AWS 客户端 VPN 与基于 Linux 的客户端的连接故障](linux-troubleshooting.md)
+ [解决常见的 AWS Client VPN 问题](common-troubleshooting.md)

## 由管理员排查 Client VPN 端点问题
<a name="client-vpn-endpoint-troubleshooting"></a>

本指南中的一些步骤可以由您执行。其他步骤必须由您的 Client VPN 管理员在 Client VPN 端点本身上执行。以下部分说明您需要联系管理员的情况。

有关排查 Client VPN 端点问题的其他信息，请参阅《AWS Client VPN 管理员指南》**中的[排查 Client VPN 问题](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html)。

## 在 AWS 提供的客户端 AWS 支持 中将诊断日志发送到
<a name="windows-troubleshooting-client-send-diagnostics"></a>

如果您在使用 AWS 提供的客户端时遇到问题，需要联系 AWS 支持 以帮助进行故障排除，则 AWS 提供的客户端可以选择将诊断日志发送到 AWS 支持。该选项在 Windows、macOS 和 Linux 客户端应用程序中都可用。

在发送文件之前，您必须同意 AWS 支持 允许访问您的诊断日志。在您同意后，我们会向您提供一个参考号， AWS 支持 以便他们可以立即访问文件。

### 发送诊断日志
<a name="client-vpn-connect-macos-connecting"></a>

在以下步骤中，所 AWS 提供的*Site-to-Site VPN 客户*也被称为客户。

**使用 AWS 提供的适用于 Windows 的客户端发送诊断日志**

1. 打开 **Site-to-Site VPN 客户端**应用程序。

1. 选择**帮助**，**发送诊断日志**。

1. 在**发送诊断日志**窗口中，选择**是**。

1. 在**发送诊断日志**窗口中，请执行以下操作之一：
   + 要将参考编号复制到剪贴板，请选择 **Yes (是)**，然后选择 **OK (确定)**。
   + 要手动跟踪参考编号，请选择**否**。

   联系时 AWS 支持，您需要向他们提供参考号。

**使用 AWS 提供的适用于 macOS 的客户端发送诊断日志**

1. 打开 **Site-to-Site VPN 客户端**应用程序。

1. 选择**帮助**，**发送诊断日志**。

1. 在**发送诊断日志**窗口中，选择**是**。

1. 记下确认窗口中的参考编号，然后选择**确定**。

   联系时 AWS 支持，您需要向他们提供参考号。

**使用 AWS 提供的 Ubuntu 客户端发送诊断日志**

1. 打开 **Site-to-Site VPN 客户端**应用程序。

1. 选择**帮助**，**发送诊断日志**。

1. 在**发送诊断日志**窗口中，选择 **Send (发送)**。

1. 记下确认窗口中的参考编号。可以选择将信息复制到剪贴板。

   联系时 AWS 支持，您需要向他们提供参考号。

# 排除 AWS 客户端 VPN 与基于 Windows 的客户端的连接故障
<a name="windows-troubleshooting"></a>

以下部分包含您在使用基于 Windows 的客户端连接到 Client VPN 端点时可能遇到的问题相关信息。

## AWS 提供的客户端事件日志
<a name="aws-provided-client"></a>

 AWS 提供的客户端会创建事件日志，并将其存储在您计算机上的以下位置。

```
C:\Users\User\AppData\Roaming\AWSVPNClient\logs
```

提供以下日志类型：
+ **应用程序日志**：包含有关应用程序的信息。这些日志的前缀为“aws\$1vpn\$1client\$1”。
+ **OpenVPN 日志**：包含有关 OpenVPN 进程的信息。这些日志的前缀是“ovpn\$1aws\$1vpn\$1client\$1”。

 AWS 提供的客户端使用 Windows 服务执行根目录操作。Windows 服务日志存储在计算机的以下位置。

```
C:\Program Files\Amazon\AWS VPN Client\WinServiceLogs\username
```

**Topics**
+ [AWS 提供的客户端事件日志](#aws-provided-client)
+ [客户端无法连接](#windows-troubleshooting-client-vpn-cannot-connect)
+ [客户端无法连接，显示“没有 Tap-Windows 适配器”日志消息](#windows-troubleshooting-client-vpn-cannot-connect-tap-driver)
+ [客户端卡在重新连接状态](#windows-troubleshooting-client-vpn-stuck)
+ [VPN 连接进程意外退出](#windows-troubleshooting-client-vpn-quits)
+ [应用程序无法启动](#windows-troubleshooting-client-vpn-cannot-launch)
+ [客户端无法创建配置文件](#windows-troubleshooting-client-vpn-cannot-create-profile)
+ [VPN 断开连接并显示弹出消息](#windows-troubleshooting-client-vpn-connection-terminated)
+ [PCs 使用Windows 10或11的戴尔系统会发生客户机崩溃](#windows-troubleshooting-client-vpn-crash-dell)
+ [OpenVPN GUI](#windows-troubleshooting-openvpn-gui)
+ [OpenVPN 连接客户端](#windows-troubleshooting-openvpn-connect)
+ [无法解析 DNS](#windows-troubleshooting-openvpn-connect-dns)
+ [缺少 PKI 别名](#windows-troubleshooting-openvpn-connect-pki)

## 客户端无法连接
<a name="windows-troubleshooting-client-vpn-cannot-connect"></a>

**问题**  
 AWS 提供的客户端无法连接到 Client VPN 端点。

**原因**  
出现此问题的原因可能是以下原因之一：
+ 计算机上已有另一个 OpenVPN 进程在运行，这会阻止客户端连接。
+ 您的配置（.ovpn）文件无效。

**解决方案**  
确保您的计算机上是否运行其他 OpenVPN 应用程序。如果在运行这些应用程序，请停止或退出这些进程，然后再次尝试连接到客户端 VPN 终端节点。检查 OpenVPN 日志中的错误，并要求客户端 VPN 管理员验证以下信息：
+ 配置文件包含正确的客户端密钥和证书。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[导出客户端配置](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-endpoint-export.html)。
+ CRL 仍然有效。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[客户端无法连接到客户端 VPN 终端节点](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#client-cannot-connect)。

## 客户端无法连接，显示“没有 Tap-Windows 适配器”日志消息
<a name="windows-troubleshooting-client-vpn-cannot-connect-tap-driver"></a>

**问题**  
 AWS *提供的客户端无法连接到 Client VPN 端点，应用程序日志中会显示以下错误消息：“此系统上没有 TAP-Windows 适配器。*您应该能够通过转至“开始”->“所有程序”->“TAP-Windows”->“实用程序”->“添加新的 TAP-Windows 虚拟以太网适配器”来创建 Tap-Windows 适配器。

**解决方案**  
您可以通过采取以下一项或多项操作来修复此问题：
+ 重新启动 TAP-Windows 适配器。
+ 重新安装 TAP-Windows 驱动程序。
+ 创建一个新的 TAP-Windows 适配器。

## 客户端卡在重新连接状态
<a name="windows-troubleshooting-client-vpn-stuck"></a>

**问题**  
 AWS 提供的客户端正在尝试连接到 Client VPN 端点，但处于重新连接状态。

**原因**  
出现此问题的原因可能是以下原因之一：
+ 您的计算机未连接到 Internet。
+ DNS 主机名不会解析为 IP 地址。
+ OpenVPN 进程无限期地尝试连接到终端节点。

**解决方案**  
验证您的计算机已连接到 Internet。要求客户端 VPN 管理员验证配置文件中的 `remote` 指令是否解析为有效的 IP 地址。也可以在 VPN 客户端窗口中选择 “**断开连接**” 来断开 AWS VPN 会话，然后重试连接。

## VPN 连接进程意外退出
<a name="windows-troubleshooting-client-vpn-quits"></a>

**问题**  
连接到 Client VPN 端点时，客户端意外退出。

**原因**  
计算机上未安装 TAP-Windows。运行客户端需要此软件。

**解决方案**  
重新运行 AWS 提供的客户端安装程序以安装所有必需的依赖项。

## 应用程序无法启动
<a name="windows-troubleshooting-client-vpn-cannot-launch"></a>

**问题**  
在 Windows 7 上，当你尝试打开 AWS 提供的客户端时，它不会启动。

**原因**  
计算机上未安装 .NET Framework 4.7.2 或更高版本。这是运行客户端所需的。

**解决方案**  
重新运行 AWS 提供的客户端安装程序以安装所有必需的依赖项。

## 客户端无法创建配置文件
<a name="windows-troubleshooting-client-vpn-cannot-create-profile"></a>

**问题**  
在您尝试使用 AWS 提供的客户端创建配置文件时收到了以下错误。

```
The config should have either cert and key or auth-user-pass specified.
```

**原因**  
如果 Client VPN 端点使用双向身份验证，则配置（.ovpn）文件未包含客户端证书和密钥。

**解决方案**  
确保您的客户端 VPN 管理员将客户端证书和密钥添加到配置文件中。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[导出客户端配置](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-endpoint-export.html)。

## VPN 断开连接并显示弹出消息
<a name="windows-troubleshooting-client-vpn-connection-terminated"></a>

**问题**  
VPN 断开连接并弹出消息，指出：“由于您的设备所连接的本地网络的地址空间已更改，因此即将终止 VPN 连接。请建立新的 VPN 连接。”

**原因**  
TAP-Windows 适配器不包含所需描述。

**解决方案**  
如果下面的`Description`字段不匹配，请先移除 Tap-Windows 适配器，然后重新运行 AWS 提供的客户端安装程序以安装所有必需的依赖项。

```
C:\Users\jdoe> ipconfig /all
   
Ethernet adapter Ethernet 2:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix  . :
Description . . . . . . . . . . . : AWS VPN Client TAP-Windows Adapter V9
Physical Address. . . . . . . . . : 00-FF-50-ED-5A-DE
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
```

## PCs 使用Windows 10或11的戴尔系统会发生客户机崩溃
<a name="windows-troubleshooting-client-vpn-crash-dell"></a>

**问题**  
在某些运行Windows 10或11的戴尔 PCs （台式机和笔记本电脑）上，当您浏览文件系统以导入VPN配置文件时，可能会发生崩溃。如果出现此问题，您将在 AWS 提供的客户端的日志中看到如下消息：

```
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at System.Data.SQLite.UnsafeNativeMethods.sqlite3_open_interop(Byte[] utf8Filename, Int32 flags, IntPtr& db)
   at System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteConnectionFlags connectionFlags, SQLiteOpenFlagsEnum openFlags, Int32 maxPoolSize, Boolean usePool)
   at System.Data.SQLite.SQLiteConnection.Open()
   at STCommonShellIntegration.DataShellManagement.CreateNewConnection(SQLiteConnection& newConnection)
   at STCommonShellIntegration.DataShellManagement.InitConfiguration(Dictionary`2 targetSettings)
   at DBROverlayIcon.DBRBackupOverlayIcon.initComponent()
```

**原因**  
Windows 10和11中的Dell Backup和Recovery系统可能会导致与 AWS 提供的客户机发生冲突，尤其是与以下三个客户机发生冲突 DLLs：
+ DBRShellExtension.dll
+ DBROverlayIconBackuped.ll
+ DBROverlayIconNotBackuped.ll

**解决方案**  
为避免出现此问题，请首先确保您的客户机与所 AWS 提供客户端的最新版本保持同步。转到 [AWS Client VPN 下载](https://aws.amazon.com/vpn/client-vpn-download/)，如果有更新的版本，则升级到最新版本。

**此外请执行下面的任意一项操作：**
+ 如果您使用的是 Dell Backup and Recovery 应用程序，请确保该应用程序已经更新。一篇 [Dell 论坛帖子](https://www.dell.com/community/en/conversations/productivity-software/backup-and-recovery-causing-applications-using-qt5-dlls-to-crash/647f54c6f4ccf8a8dee57b89?commentId=647f6c00f4ccf8a8de92b263#M35007)表示该问题已在该应用程序的较新版本中得到解决。
+ 如果您使用的不是 Dell Backup and Recovery 应用程序，如果遇到此问题，仍需采取一些措施。如果您不想升级应用程序，则可以删除或重命名 DLL 文件。但请注意，这将导致 Dell Backup and Recovery 应用程序无法完整运行。

**删除或重命名 DLL 文件**

1. 打开 Windows 资源管理器并浏览到 Dell Backup and Recovery 的安装位置。该应用程序通常安装在以下位置，但有时您可能需要使用搜索功能。

   ```
   C:\Program Files (x86)\Dell Backup and Recovery\Components\Shell
   ```

1. 从安装目录中手动删除以下 DLL 文件，或将其重命名。这两种操作都将避免加载它们。
   + DBRShellExtension.dll
   + DBROverlayIconBackuped.ll
   + DBROverlayIconNotBackuped.ll

   **您可以通过在文件名末尾添加 “.bak” 来重命名文件，DBROverlayIconBackuped例如.dll.bak。**

## OpenVPN GUI
<a name="windows-troubleshooting-openvpn-gui"></a>

在 Windows 10 家庭版（64 位）和 Windows Server 2016（64 位） 上，测试了 11.10.0.0 和 11.11.0.0 版本的 OpenVPN GUI 软件的以下故障排查信息。

配置文件存储在计算机的以下位置。

```
C:\Users\User\OpenVPN\config
```

连接日志存储在计算机的以下位置。

```
C:\Users\User\OpenVPN\log
```

## OpenVPN 连接客户端
<a name="windows-troubleshooting-openvpn-connect"></a>

在 Windows 10 家庭版（64 位）和 Windows Server 2016（64 位） 上，测试了 2.6.0.100 和 2.7.1.101 版本的 OpenVPN Connect 客户端软件的以下故障排查信息。

配置文件存储在计算机的以下位置。

```
C:\Users\User\AppData\Roaming\OpenVPN Connect\profile
```

连接日志存储在计算机的以下位置。

```
C:\Users\User\AppData\Roaming\OpenVPN Connect\logs
```

## 无法解析 DNS
<a name="windows-troubleshooting-openvpn-connect-dns"></a>

**问题**  
连接失败并显示以下错误。

```
Transport Error: DNS resolve error on 'cvpn-endpoint-xyz123.prod.clientvpn.us-east-1.amazonaws.com (http://cvpn-endpoint-xyz123.prod.clientvpn.us-east-1.amazonaws.com/)' for UDP session: No such host is known.
```

**原因**  
无法解析 DNS 名称。客户端必须在 DNS 名称前附加一个随机字符串，以防止 DNS 缓存；但是，某些客户端不这样做。

**解决方案**  
请参阅 *AWS Client VPN 管理员指南*中的[无法解析客户端 VPN 终端节点 DNS 名称](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#resolve-host-name)的解决方案。

## 缺少 PKI 别名
<a name="windows-troubleshooting-openvpn-connect-pki"></a>

**问题**  
与不使用双向身份验证的 Client VPN 端点的连接失败，并出现以下错误。

```
FATAL:CLIENT_EXCEPTION: connect error: Missing External PKI alias
```

**原因**  
OpenVPN Connect 客户端软件有一个已知问题，它尝试使用双向身份验证进行身份验证。如果配置文件不包含客户端密钥和证书，则身份验证将失败。

**解决方案**  
在 Client VPN 配置文件中指定随机客户端密钥和证书，然后将新配置导入 OpenVPN Connect 客户端软件。或者，使用不同的客户端，例如 OpenVPN GUI 客户端 (v11.12.0.0) 或 Viscosity 客户端 (v.1.7.14)。

# 对 AWS Client VPN 与 macOS 客户端的连接进行故障排除
<a name="macos-troubleshooting"></a>

以下部分包含有关使用 macOS 客户端时可能遇到的日志记录和问题的信息。请确保您正在运行这些客户端的最新版本。

## AWS 提供的客户端事件日志
<a name="macos-troubleshooting-client-vpn-connect"></a>

 AWS 提供的客户端会创建事件日志，并将其存储在您计算机上的以下位置。

```
/Users/username/.config/AWSVPNClient/logs
```

提供以下日志类型：
+ **应用程序日志**：包含有关应用程序的信息。这些日志的前缀为“aws\$1vpn\$1client\$1”。
+ **OpenVPN 日志**：包含有关 OpenVPN 进程的信息。这些日志的前缀是“ovpn\$1aws\$1vpn\$1client\$1”。

 AWS 提供的客户端使用客户端守护程序来执行 root 操作。守护程序日志存储在计算机的以下位置。

```
/var/log/AWSVPNClient/AcvcHelperErrLog.txt
/var/log/AWSVPNClient/AcvcHelperOutLog.txt
```

 AWS 提供的客户端将配置文件存储在您计算机上的以下位置。

```
/Users/username/.config/AWSVPNClient/OpenVpnConfigs
```

**Topics**
+ [AWS 提供的客户端事件日志](#macos-troubleshooting-client-vpn-connect)
+ [客户端无法连接](#macos-troubleshooting-client-vpn-cannot-connect)
+ [客户端卡在重新连接状态](#macos-troubleshooting-client-vpn-stuck)
+ [客户端无法创建配置文件](#macos-troubleshooting-client-vpn-cannot-create-profile)
+ [需要具备助手工具错误](#macos-troubleshooting-helper-tool)
+ [Tunnelblick](#macos-troubleshooting-tunnelblick)
+ [找不到密码算法“AES-256-GCM”](#tunnelblick-cipher)
+ [连接停止响应并重置](#tunnelblick-connection-reset)
+ [扩展密钥用法 (EKU)](#tunnelblick-eku)
+ [过期的证书](#tunnelblick-certificate-expired)
+ [OpenVPN](#macos-troubleshooting-openvpn)
+ [无法解析 DNS](#macos-openvpn-dns)

## 客户端无法连接
<a name="macos-troubleshooting-client-vpn-cannot-connect"></a>

**问题**  
 AWS 提供的客户端无法连接到 Client VPN 端点。

**原因**  
出现此问题的原因可能是以下原因之一：
+ 计算机上已有另一个 OpenVPN 进程在运行，这会阻止客户端连接。
+ 您的配置（.ovpn）文件无效。

**解决方案**  
确保您的计算机上是否运行其他 OpenVPN 应用程序。如果在运行这些应用程序，请停止或退出这些进程，然后再次尝试连接到客户端 VPN 终端节点。检查 OpenVPN 日志中的错误，并要求客户端 VPN 管理员验证以下信息：
+ 配置文件包含正确的客户端密钥和证书。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[导出客户端配置](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-endpoint-export.html)。
+ CRL 仍然有效。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[客户端无法连接到客户端 VPN 终端节点](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#client-cannot-connect)。

## 客户端卡在重新连接状态
<a name="macos-troubleshooting-client-vpn-stuck"></a>

**问题**  
 AWS 提供的客户端正在尝试连接到 Client VPN 端点，但处于重新连接状态。

**原因**  
出现此问题的原因可能是以下原因之一：
+ 您的计算机未连接到 Internet。
+ DNS 主机名不会解析为 IP 地址。
+ OpenVPN 进程无限期地尝试连接到终端节点。

**解决方案**  
验证您的计算机已连接到 Internet。要求客户端 VPN 管理员验证配置文件中的 `remote` 指令是否解析为有效的 IP 地址。也可以在 VPN 客户端窗口中选择 “**断开连接**” 来断开 AWS VPN 会话，然后重试连接。

## 客户端无法创建配置文件
<a name="macos-troubleshooting-client-vpn-cannot-create-profile"></a>

**问题**  
在您尝试使用 AWS 提供的客户端创建配置文件时收到了以下错误。

```
The config should have either cert and key or auth-user-pass specified.
```

**原因**  
如果 Client VPN 端点使用双向身份验证，则配置（.ovpn）文件未包含客户端证书和密钥。

**解决方案**  
确保您的客户端 VPN 管理员将客户端证书和密钥添加到配置文件中。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[导出客户端配置](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-endpoint-export.html)。

## 需要具备助手工具错误
<a name="macos-troubleshooting-helper-tool"></a>

**问题**  
在尝试连接 VPN 时，遇到以下错误。

```
AWS VPN Client Helper Tool is required to establish the connection.
```

**解决方案**  
请参阅以下关于 re AWS : Post 的文章。[AWS VPN Client - 需要助手工具错误](https://repost.aws/questions/QUbch5NzWnSyWbGM0hu4w0mg/aws-vpn-client-helper-tool-is-required-error)

## Tunnelblick
<a name="macos-troubleshooting-tunnelblick"></a>

在 macOS High Sierra 10.13.6 上测试了 Tunnelblick 软件版本 3.7.8（build 5180）的以下故障排查信息。

私有配置的配置文件存储在计算机的以下位置。

```
/Users/username/Library/Application Support/Tunnelblick/Configurations
```

共享配置的配置文件存储在计算机的以下位置。

```
/Library/Application Support/Tunnelblick/Shared
```

连接日志存储在计算机的以下位置。

```
/Library/Application Support/Tunnelblick/Logs
```

要增加日志详细程度，请打开 Tunnelblick 应用程序，选择 **Settings (设置)**，然后调整 **VPN log level (VPN 日志级别)** 的值。

## 找不到密码算法“AES-256-GCM”
<a name="tunnelblick-cipher"></a>

**问题**  
连接失败，并在日志中返回以下错误。

```
2019-04-11 09:37:14 Cipher algorithm 'AES-256-GCM' not found
2019-04-11 09:37:14 Exiting due to fatal error
```

**原因**  
该应用程序使用不支持密码算法 AES-256-GCM 的 OpenVPN 版本。

**解决方案**  
通过执行以下操作来选择兼容的 OpenVPN 版本：

1. 打开 Tunnelblick 应用程序。

1. 选择**设置**。

1. 对于 **OpenVPN version (OpenVPN 版本)**，请选择 **2.4.6 - OpenSSL version is v1.0.2q (2.4.6 - OpenSSL 版本为 v1.0.2q)**。

## 连接停止响应并重置
<a name="tunnelblick-connection-reset"></a>

**问题**  
连接失败，并在日志中返回以下错误。

```
MANAGEMENT: >STATE:1559117927,WAIT,,,,,,
MANAGEMENT: >STATE:1559117928,AUTH,,,,,,
TLS: Initial packet from [AF_INET]3.217.107.5:443, sid=df19e70f a992cda3
VERIFY OK: depth=1, CN=server-certificate
VERIFY KU OK
Validating certificate extended key usage
Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server       Authentication
VERIFY EKU OK
VERIFY OK: depth=0, CN=server-cvpn
Connection reset, restarting [0]
SIGUSR1[soft,connection-reset] received, process restarting
```

**原因**  
客户端证书已吊销。连接在尝试进行身份验证后停止响应，并最终从服务器端重置。

**解决方案**  
请求 Client VPN 管理员提供新的配置文件。

## 扩展密钥用法 (EKU)
<a name="tunnelblick-eku"></a>

**问题**  
连接失败，并在日志中返回以下错误。

```
TLS: Initial packet from [AF_INET]50.19.205.135:443, sid=29f2c917 4856ad34
VERIFY OK: depth=2, O=Digital Signature Trust Co., CN=DST Root CA X3
VERIFY OK: depth=1, C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
VERIFY KU OK
Validating certificate extended key usage
 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
VERIFY EKU OK
VERIFY OK: depth=0, CN=cvpn-lab.myrandomnotes.com (http://cvpn-lab.myrandomnotes.com/)
Connection reset, restarting [0]
SIGUSR1[soft,connection-reset] received, process restarting
MANAGEMENT: >STATE:1559138717,RECONNECTING,connection-reset,,,,,
```

**原因**  
服务器身份验证成功。但是，客户端身份验证失败，因为客户端证书已为服务器身份验证启用了扩展密钥用法 (EKU) 字段。

**解决方案**  
确保您使用的是正确的客户端证书和密钥。如有必要，请与您的 Client VPN 管理员进行验证。如果使用服务器证书而不是客户端证书连接到 Client VPN 端点，则可能会发生此错误。

## 过期的证书
<a name="tunnelblick-certificate-expired"></a>

**问题**  
服务器身份验证成功，但客户端身份验证失败，并显示以下错误。

```
WARNING: “Connection reset, restarting [0] , SIGUSR1[soft,connection-reset] received, process restarting”
```

**原因**  
客户端证书有效性已过期。

**解决方案**  
请求 Client VPN 管理员提供新的客户端证书。

## OpenVPN
<a name="macos-troubleshooting-openvpn"></a>

在 macOS High Sierra 10.13.6 上测试了 OpenVPN Connect 客户端版本 2.7.1.100 的以下故障排查信息。

配置文件存储在计算机的以下位置。

```
/Library/Application Support/OpenVPN/profile
```

连接日志存储在计算机的以下位置。

```
Library/Application Support/OpenVPN/log/connection_name.log
```

## 无法解析 DNS
<a name="macos-openvpn-dns"></a>

**问题**  
连接失败并显示以下错误。

```
Mon Jul 15 13:07:17 2019 Transport Error: DNS resolve error on 'cvpn-endpoint-1234.prod.clientvpn.us-east-1.amazonaws.com' for UDP session: Host not found (authoritative)
Mon Jul 15 13:07:17 2019 Client terminated, restarting in 2000 ms...
Mon Jul 15 13:07:18 2019 CONNECTION_TIMEOUT [FATAL-ERR]
Mon Jul 15 13:07:18 2019 DISCONNECTED
Mon Jul 15 13:07:18 2019 >FATAL:CONNECTION_TIMEOUT
```

**原因**  
OpenVPN Connect 无法解析 Client VPN DNS 名称。

**解决方案**  
请参阅 *AWS Client VPN 管理员指南*中的[无法解析客户端 VPN 终端节点 DNS 名称](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#resolve-host-name)的解决方案。

# 排除 AWS 客户端 VPN 与基于 Linux 的客户端的连接故障
<a name="linux-troubleshooting"></a>

以下部分包含有关使用基于 Linux 客户端时可能遇到的日志记录和问题的信息。请确保您正在运行这些客户端的最新版本。

**Topics**
+ [AWS 提供的客户端事件日志](#aws-provided-client)
+ [DNS 查询转到默认名称服务器](#aws-client-dns-nameserver)
+ [OpenVPN（命令行）](#open-vpn-command-line)
+ [通过 Network Manager 建立 OpenVPN (GUI)](#open-vpn-network-manager-gui)

## AWS 提供的客户端事件日志
<a name="aws-provided-client"></a>

 AWS 提供的客户端将日志文件和配置文件存储在系统的以下位置：

```
/home/username/.config/AWSVPNClient/
```

 AWS 提供的客户端守护程序进程将日志文件存储在系统的以下位置：

```
/var/log/aws-vpn-client/
```

例如，您可以检查以下日志文件以查找 DNS up/down 脚本中导致连接失败的错误：
+ `/var/log/aws-vpn-client/configure-dns-up.log`
+ `/var/log/aws-vpn-client/configure-dns-down.log`

## DNS 查询转到默认名称服务器
<a name="aws-client-dns-nameserver"></a>

**问题**  
在某些情况下，建立 VPN 连接后，DNS 查询仍会转到默认系统名称服务器，而不是为 ClientVPN 端点配置的名称服务器。

**原因**  
客户端与 **systemd-resolved** 交互，后者是 Linux 系统上提供的一项服务，也是 DNS 管理的核心组件之一。它用于配置从 Client VPN 端点推送的 DNS 服务器。出现问题的原因是 **systemd-resolved** 未为 Client VPN 端点提供的 DNS 服务器设置最高优先级。相反，它将服务器附加到在本地系统上配置的现有 DNS 服务器列表中。因此，原始 DNS 服务器可能仍具有最高优先级，因此可用于解析 DNS 查询。

**解决方案**

1. 在 OpenVPN 配置文件的第一行中添加以下指令，以确保所有 DNS 查询都发送到 VPN 隧道。

   ```
   dhcp-option DOMAIN-ROUTE .
   ```

1. 使用 **systemd-resolved** 提供的存根解析程序。要确保这一点，请通过在系统上运行以下命令将符号链接 `/etc/resolv.conf` 链接到 `/run/systemd/resolve/stub-resolv.conf`。

   ```
   sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
   ```

1. （可选）如果您不想要 **systemd-resolved** 代理 DNS 查询，而是希望查询直接发送到真正的 DNS 名称服务器，则将符号链接 `/etc/resolv.conf` 链接到 `/run/systemd/resolve/resolv.conf`。

   ```
   sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
   ```

   您可能需要执行此步骤以绕过**系统解析的配置，例如 D** NS 应答缓存、每接口 DNS 配置、 DNSSec 强制执行等。当您需要在连接到 VPN 时使用私有记录覆盖公共 DNS 记录时，此选项特别有用。例如，您的私有 VPC 中可能有一个带有 www.example.com 记录的私有 DNS 解析程序，该记录可解析为私有 IP。此选项可用于覆盖 www.example.com 的公共记录，该记录可解析为公有 IP。

## OpenVPN（命令行）
<a name="open-vpn-command-line"></a>

**问题**  
连接无法正常工作，因为 DNS 解析不起作用。

**原因**  
Client VPN 端点上未配置 DNS 服务器，或者客户端软件未遵循该服务器。

**解决方案**  
使用以下步骤检查 DNS 服务器是否已配置并正常工作。

1. 确保日志中存在 DNS 服务器条目。在以下示例中，在最后一行中返回 DNS 服务器 `192.168.0.2`（在 Client VPN 端点中配置）。

   ```
   Mon Apr 15 21:26:55 2019 us=274574 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
   WRRMon Apr 15 21:26:55 2019 us=276082 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.0.2,route-gateway 10.0.0.97,topology subnet,ping 1,ping-restart 20,auth-token,ifconfig 10.0.0.98 255.255.255.224,peer-id 0
   ```

   如果未指定 DNS 服务器，请要求 Client VPN 管理员修改 Client VPN 端点，并确保已为 Client VPN 端点指定了 DNS 服务器（例如 VPC DNS 服务器）。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[ Client VPN 端点](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-endpoints.html)。

1. 通过运行以下命令确保已安装 `resolvconf` 软件包。

   ```
   sudo apt list resolvconf
   ```

   输出应返回以下内容。

   ```
   Listing... Done
   resolvconf/bionic-updates,now 1.79ubuntu10.18.04.3 all [installed]
   ```

   如果未安装，请使用以下命令进行安装。

   ```
   sudo apt install resolvconf
   ```

1. 在文本编辑器中打开 Client VPN 配置文件（.ovpn 文件）并添加以下行。

   ```
   script-security 2
   up /etc/openvpn/update-resolv-conf
   down /etc/openvpn/update-resolv-conf
   ```

   检查日志以验证是否已调用 `resolvconf` 脚本。日志应包含类似于以下内容的行。

   ```
   Mon Apr 15 21:33:52 2019 us=795388 /etc/openvpn/update-resolv-conf tun0 1500 1552 10.0.0.98 255.255.255.224 init
   dhcp-option DNS 192.168.0.2
   ```

## 通过 Network Manager 建立 OpenVPN (GUI)
<a name="open-vpn-network-manager-gui"></a>

**问题**  
使用 Network Manager OpenVPN 客户端时，连接失败并显示以下错误。

```
Apr 15 17:11:07  OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep  5 2018
Apr 15 17:11:07  library versions: OpenSSL 1.1.0g  2 Nov 2017, LZO 2.08
Apr 15 17:11:07  RESOLVE: Cannot resolve host address: cvpn-endpoint-1234.prod.clientvpn.us-east-1.amazonaws.com:443 (Name or service not known)
Apr 15 17:11:07  RESOLVE: Cannot resolve host
Apr 15 17:11:07  Could not determine IPv4/IPv6 protocol
```

**原因**  
未遵守 `remote-random-hostname` 标志，并且客户端无法使用 `network-manager-gnome` 软件包进行连接。

**解决方案**  
请参阅 *AWS Client VPN 管理员指南*中的[无法解析客户端 VPN 终端节点 DNS 名称](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#resolve-host-name)的解决方案。

# 解决常见的 AWS Client VPN 问题
<a name="common-troubleshooting"></a>

以下是您在使用客户端连接到 Client VPN 端点时可能遇到的常见问题。

## TLS 密钥协商失败
<a name="common-troubleshooting-tls"></a>

**问题**  
TLS 协商失败并显示以下错误。

```
TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed
```

**原因**  
出现此问题的原因可能是以下原因之一：
+ 防火墙规则阻止 UDP 或 TCP 流量。
+ 您在配置 (.ovpn) 文件中使用的客户端密钥和证书不正确。
+ 客户端证书吊销列表 (CRL) 已过期。

**解决方案**  
查看计算机上的防火墙规则是否阻止端口 443 或 1194 上的入站或出站 TCP 或 UDP 流量。请 Client VPN 管理员验证以下信息：
+ Client VPN 端点的防火墙规则未阻止端口 443 或 1194 上的 TCP 或 UDP 流量。
+ 配置文件包含正确的客户端密钥和证书。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[导出客户端配置](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-endpoint-export.html)。
+ CRL 仍然有效。有关更多信息，请参阅 *AWS Client VPN 管理员指南*中的[客户端无法连接到客户端 VPN 终端节点](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#client-cannot-connect)。