

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

# 问题排查 AWS 客户端 VPN 与 macOS 客户端的连接
<a name="macos-troubleshooting"></a>

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

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

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

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

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

 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
```

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

**解决方案**  
通过执行以下操作来选择兼容的 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)的解决方案。