

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 故障診斷 AWS Client VPN
<a name="troubleshooting"></a>

下列各節可協助您針對 Client VPN 端點可能遇到的問題進行疑難排解。

如需有關疑難排解用戶端用來連線到 Client VPN 之 OpenVPN 型軟體的更多資訊，請參閱*《AWS Client VPN 使用者指南》*中的[對您的 Client VPN 連接進行故障診斷](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/troubleshooting.html)。

**Topics**
+ [無法解析 Client VPN 端點 DNS 名稱](resolve-host-name.md)
+ [流量不會在子網路之間分割](split-traffic.md)
+ [Active Directory 群組的授權規則未如預期般運作](ad-group-auth-rules.md)
+ [用戶端無法存取對等 VPC、Amazon S3 或網際網路](no-internet-access.md)
+ [對等 VPC、Amazon S3 或網際網路的存取斷斷續續](intermittent-access.md)
+ [用戶端軟體傳回 TLS 錯誤](client-cannot-connect.md)
+ [用戶端軟體傳回使用者名稱和密碼錯誤 — Active Directory 身分驗證](client-user-name-password-mfa.md)
+ [用戶端軟體會傳回使用者名稱和密碼錯誤 — 聯合身分驗證](missing-attribute.md)
+ [用戶端無法連線 — 交互身分驗證](client-cannot-connect-mutual.md)
+ [用戶端傳回的登入資料超過大小上限錯誤 — 聯合身分驗證](client-credentials-exceeded.md)
+ [用戶端不會開啟瀏覽器 — 聯合身分驗證](client-no-browser.md)
+ [用戶端未傳回任何可用的連接埠錯誤 — 聯合身分驗證](client-no-port.md)
+ [由於 IP 不相符而終止 VPN 連線](server-ip-mismatch.md)
+ [將流量路由到 LAN 無法如預期般運作](routing-to-lan.md)
+ [驗證端點的頻寬限制](test-throughput.md)
+ [Client VPN 通道連線](VPNTunnelConnectivityTroubleshooting.md)

# 故障診斷 AWS Client VPN：無法解析 Client VPN 端點 DNS 名稱
<a name="resolve-host-name"></a>

**問題**  
我無法解析 Client VPN 端點的 DNS 名稱。

**原因**  
Client VPN 端點組態檔案包含一個名為 `remote-random-hostname` 的參數。此參數會強制用戶端在 DNS 名稱前面加上隨機字串，以防止 DNS 快取。有些用戶端無法辨識這個參數，因此它們不會在 DNS 名稱前面加上必要的隨機字串。

**解決方案**  
使用您偏好的文字編輯器開啟 Client VPN 端點組態檔案。找出指定 Client VPN 端點 DNS 名稱的行，並在前面加上隨機字串，使格式成為 *random\$1string.displayed\$1DNS\$1name*。例如：
+ 原始 DNS 名稱：`cvpn-endpoint-0102bc4c2eEXAMPLE.clientvpn.us-west-2.amazonaws.com`
+ 修改過的 DNS 名稱：`asdfa.cvpn-endpoint-0102bc4c2eEXAMPLE.clientvpn.us-west-2.amazonaws.com`

# 故障診斷 AWS Client VPN：未在子網路之間分割流量
<a name="split-traffic"></a>

**問題**  
我嘗試在兩個子網路之間分割網路流量。私有流量應透過私有子網路路由，而網際網路流量應透過公有子網路路由。但是，即使我已將兩個路由都新增到 Client VPN 端點路由表中，仍只使用一個路由。

**原因**  
您可以將多個子網路與用戶端 VPN 端點產生關聯，但每個可用區域只能關聯一個子網路。多個子網路關聯的目的是為用戶端提供高可用性和可用區域備援。不過，用戶端 VPN 不會讓您選擇性地分割與用戶端 VPN 端點相關聯的子網路之間的流量。

用戶端會根據 DNS 循環配置資源演算法連線到用戶端 VPN 端點。這表示其流量可以在建立連線時透過任何關聯的子網路路由傳送。因此，如果用戶端登陸在沒有必要路由項目的關聯子網路上，可能會遇到連線問題。

例如，假設您設定下列子網路關聯和路由：
+ 子網路關聯
  + 關聯 1：子網路 A (us-east-1a)
  + 關聯 2：子網路 B (us-east-1b)
+ 路由
  + 路由 1：10.0.0.0/16 路由到子網路 A
  + 路由 2：172.31.0.0/16 路由到子網路 B

在此範例中，連線時登陸子網路 A 的用戶端無法存取路由 2，而連線時登陸子網路 B 的用戶端無法存取路由 1。

**解決方案**  
確認用戶端 VPN 端點與每個關聯網路的目標具有相同的路由項目。這可確保用戶端能夠存取所有路由，而不論其流量是透過哪個子網路路由傳送。

# 故障診斷 AWS Client VPN：Active Directory 群組的授權規則未如預期運作
<a name="ad-group-auth-rules"></a>

**問題**  
我已為我的 Active Directory 群組設定授權規則，但它們並未如預期般運作。我新增了 `0.0.0.0/0` 的授權規則來授權所有網路的流量，但是特定目的地 CIDR 的流量仍然失敗。

**原因**  
授權規則在網路 CIDR 上編製索引。授權規則必須授與 Active Directory 群組對特定網路 CIDR 的存取權。`0.0.0.0/0` 的授權規則會視為特殊情況來處理，因此不論建立授權規則的順序為何，都會最後才評估。

例如，假設您以下列順序建立五個授權規則：
+ 規則 1：群組 1 可存取 `10.1.0.0/16`
+ 規則 2：群組 1 可存取 `0.0.0.0/0`
+ 規則 3：群組 2 可存取 `0.0.0.0/0`
+ 規則 4：群組 3 可存取 `0.0.0.0/0`
+ 規則 5：群組 2 可存取 `172.131.0.0/16`

在此範例中，最後評估規則 2、規則 3 和規則 4。群組 1 僅具有 `10.1.0.0/16` 的存取權，而群組 2 僅具有 `172.131.0.0/16` 的存取權。群組 3 沒有 `10.1.0.0/16` 或 `172.131.0.0/16` 的存取權，但它可以存取所有其他網路。如果您移除規則 1 和 5，則所有三個群組都可以存取所有網路。

評估授權規則時，Client VPN 會使用最長字首比對。請參閱 *Amazon VPC 使用者指南*中的[路由優先順序](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-tables-priority)以取得更多詳細資訊。

**解決方案**  
確認您是否建立明確授與 Active Directory 群組存取特定網路 CIDR 的授權規則。如果您新增 `0.0.0.0/0` 的授權規則，請記住此規則將最後評估，而前面的授權規則可能會限制其授與存取權的網路。

# 故障診斷 AWS Client VPN：用戶端無法存取對等 VPC、Amazon S3 或網際網路
<a name="no-internet-access"></a>

**問題**  
我已經正確設定 Client VPN 端點路由，但用戶端卻無法存取對等 VPC、Amazon S3 或網際網路。

**解決方案**  
下列流程圖包含診斷網際網路、對等 VPC 和 Amazon S3 連線問題的步驟。

![\[Client VPN 故障診斷步驟\]](http://docs.aws.amazon.com/zh_tw/vpn/latest/clientvpn-admin/images/cvpn-flow.png)


1. 若要存取網際網路，請新增 `0.0.0.0/0` 的授權規則。

   若要存取對等 VPC，請為 VPC 的 IPv4 CIDR 範圍新增授權規則。

   若要存取 S3，請指定 Amazon S3 端點的 IP 地址。

1. 請檢查您是否能夠解析 DNS 名稱。

   如果您無法解析 DNS 名稱，請確認已為 Client VPN 端點指定 DNS 伺服器。如果您管理自己的 DNS 伺服器，請指定其 IP 地址。確認 DNS 伺服器可從 VPC 存取。

   如果不確定要為 DNS 伺服器指定哪個 IP 地址，請在 VPC 中的 .2 IP 地址指定 VPC DNS 解析程式。

1. 對於網際網路存取，請檢查您是否能夠 ping 公用 IP 地址或公用網站，例如 `amazon.com`。如果您沒有收到回應，請確定關聯子網路的路由表具有預設路由，其以網際網路閘道或 NAT 閘道為目標。如果預設路由已存在，請確認關聯的子網路沒有會封鎖傳入和傳出流量的網路存取控制清單規則。

   如果您無法連上對等 VPC，請確認關聯子網路的路由表具有對等 VPC 的路由項目。

   如果您無法連線到 Amazon S3，請確認關聯子網路的路由表具有閘道 VPC 端點的路由項目。

1. 檢查您是否可以使用大於 1400 位元組的承載 ping 公有 IP 地址。請使用以下其中一個命令：
   + Windows

     ```
     C:\> ping  8.8.8.8 -l 1480 -f
     ```
   + Linux

     ```
     $ ping -s 1480 8.8.8.8 -M do
     ```

   如果您無法使用 1400 位元組以上的承載對 IP 地址執行 ping 命令，請使用您偏好的文字編輯器開啟 Client VPN 端點 `.ovpn` 組態檔案，然後新增下列項目。

   ```
   mssfix 1328
   ```

# 故障診斷 AWS Client VPN：對對等 VPC、Amazon S3 或網際網路的存取是間歇性的
<a name="intermittent-access"></a>

**問題**  
連線到對等 VPC、Amazon S3 或網際網路時，我的連線斷斷續續，但關聯子網路的存取不受影響。我需要中斷連接並重新連接以解決連接問題。

**原因**  
用戶端會根據 DNS 循環配置資源演算法連線到用戶端 VPN 端點。這表示其流量可以在建立連線時透過任何關聯的子網路路由傳送。因此，如果用戶端登陸在沒有必要路由項目的關聯子網路上，可能會遇到連線問題。

**解決方案**  
確認用戶端 VPN 端點與每個關聯網路的目標具有相同的路由項目。這可確保用戶端能夠存取所有路由，而不論其流量是透過哪個關聯的子網路。

例如，假設您的用戶端 VPN 端點有三個關聯的子網路 (子網路 A、B 和 C)，而您想要為用戶端啟用網際網路存取。若要這樣做，您必須新增三個 `0.0.0.0/0` 路由 - 每個各以一個關聯子網路為目標：
+ 路由 1：`0.0.0.0/0` 用於子網路 A
+ 路由 2：`0.0.0.0/0` 用於子網路 B
+ 路由 3：`0.0.0.0/0` 用於子網路 C

# 故障診斷 AWS Client VPN：嘗試連線至 Client VPN 時，用戶端軟體會傳回 TLS 錯誤
<a name="client-cannot-connect"></a>

**問題**  
我的用戶端以前可以成功連線到 Client VPN，但現在 OpenVPN 型用戶端在嘗試連線時會傳回以下錯誤之一：

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

```
Connection failed because of a TLS handshake error. Contact your IT administrator.
```

**可能的原因 1：**  
如果您使用交互身分驗證並匯入用戶端憑證撤銷清單，則用戶端憑證撤銷清單可能已過期。在身分驗證階段期間，Client VPN 端點會根據您匯入的用戶端憑證撤銷清單來檢查用戶端憑證。如果用戶端憑證撤銷清單已過期，您就無法連線到 Client VPN 端點。

**解決方案 1：**  
使用 OpenSSL 工具檢查用戶端憑證撤銷清單的到期日。

```
$ openssl crl -in path_to_crl_pem_file -noout -nextupdate
```

輸出會顯示到期日期和時間。如果用戶端憑證撤銷清單已過期，您必須建立新的清單並將其匯入 Client VPN 端點。如需詳細資訊，請參閱[AWS Client VPN 用戶端憑證撤銷清單](cvpn-working-certificates.md)。

**可能的原因 2：**  
用於 Client VPN 端點的伺服器憑證已過期。

**解決方案 2：**  
在 AWS Certificate Manager 主控台或使用 CLI AWS 檢查伺服器憑證的狀態。如果伺服器憑證已過期，建立新憑證並上傳至 ACM。有關使用 [OpenVPN easy-rsa 實用程序](https://github.com/OpenVPN/easy-rsa)產生伺服器和用户端憑證及金鑰，然後將它們匯入 ACM 中的詳細步驟，請參閱[中的相互身分驗證 AWS Client VPN](mutual.md)。

或者，可能是用戶端用來連線到 Client VPN 的 OpenVPN 型軟體有問題。如需對 OpenVPN 型軟體進行故障診斷的更多資訊，請參閱*《AWS Client VPN Client VPN 使用者指南》*中的[對您的 Client VPN 連接進行故障診斷](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/troubleshooting.html)。

# 故障診斷 AWS Client VPN：用戶端軟體傳回使用者名稱和密碼錯誤 — Active Directory 身分驗證
<a name="client-user-name-password-mfa"></a>

**問題**  
我的 Client VPN 端點使用 Active Directory 身分驗證，以前能夠成功連線到 Client VPN。但是現在，用戶端取得無效的使用者名稱和密碼錯誤。

**可能原因**  
如果您使用 Active Directory 身分驗證，且在分發用戶端組態檔案之後啟用多重要素驗證 (MFA)，則檔案不包含提示使用者輸入其 MFA 代碼的必要資訊。系統會提示使用者只輸入其使用者名稱和密碼，且身分驗證失敗。

**解決方案**  
下載新的用戶端組態檔案，並將它分發到您的用戶端。確認新檔案是否包含下列程式碼行。

```
static-challenge "Enter MFA code " 1
```

如需詳細資訊，請參閱[AWS Client VPN 端點組態檔案匯出](cvpn-working-endpoint-export.md)。測試您 Active Directory 的 MFA 組態，而不使用 Client VPN 端點確認 MFA 是否如預期運作。

# 故障診斷 AWS Client VPN：用戶端軟體傳回使用者名稱和密碼錯誤 — 聯合身分驗證
<a name="missing-attribute"></a>

**問題**  
嘗試使用聯合身分驗證的使用者名稱和密碼登入，並收到錯誤「收到的登入資料不正確。請聯絡您的 IT 管理員。」

**原因**  
此錯誤可能是因為 IdP 的 SAML 回應中沒有包含至少一個屬性。

**解決方案**  
確定 IdP 的 SAML 回應中至少包含一個屬性。如需詳細資訊，請參閱「[SAML 型 IdP 組態資源](federated-authentication.md#saml-config-resources)」。

# 故障診斷 AWS Client VPN：用戶端無法連線 — 交互身分驗證
<a name="client-cannot-connect-mutual"></a>

**問題**  
我在 Client VPN 端點使用交互身分驗證。用戶端取得 TLS 金鑰交涉失敗錯誤和逾時錯誤。

**可能原因**  
提供給用戶端的組態檔案不包含用戶端憑證和用戶端私有金鑰，或是憑證和金鑰不正確。

**解決方案**  
確定組態檔案包含正確的用戶端憑證和金鑰。如有必要，請修正組態檔案並將其重新分發給您的用戶端。如需詳細資訊，請參閱[AWS Client VPN 端點組態檔案匯出](cvpn-working-endpoint-export.md)。

# 故障診斷 AWS Client VPN：用戶端傳回的憑證超過 Client VPN 中的大小上限錯誤 — 聯合身分驗證
<a name="client-credentials-exceeded"></a>

**問題**  
我在 Client VPN 端點使用聯合身分驗證。當用戶端在 SAML 型身分提供者 (IdP) 瀏覽器視窗中輸入其使用者名稱和密碼時，會收到登入資料超過支援大小上限的錯誤。

**原因**  
IdP 傳回的 SAML 回應超過支援的大小上限。如需詳細資訊，請參閱[SAML 型聯合身分驗證的需求和考量](federated-authentication.md#saml-requirements)。

**解決方案**  
請嘗試減少 IdP 中使用者所屬的群組數目，然後再試一次連線。

# 故障診斷 AWS Client VPN：用戶端不會開啟端點的瀏覽器 — 聯合身分驗證
<a name="client-no-browser"></a>

**問題**  
我在 Client VPN 端點使用聯合身分驗證。當用戶端嘗試連線到端點時，用戶端軟體不會開啟瀏覽器視窗，而是顯示使用者名稱和密碼快顯視窗。

**原因**  
提供給用戶端的組態檔案不包含 `auth-federate` 旗標。

**解決方案**  
[匯出最新的組態檔案](cvpn-working-endpoint-export.md)，將其匯入至 AWS 提供的用戶端，然後再次嘗試連線。

# 故障診斷 AWS Client VPN：用戶端未傳回任何可用的連接埠錯誤 — 聯合身分驗證
<a name="client-no-port"></a>

**問題**  
我在 Client VPN 端點使用聯合身分驗證。當用戶端嘗試連線到端點時，用戶端軟體會傳回下列錯誤：

```
The authentication flow could not be initiated. There are no available ports. 
```

**原因**  
 AWS 提供的用戶端需要使用 TCP 連接埠 35001 來完成身分驗證。如需詳細資訊，請參閱[SAML 型聯合身分驗證的需求和考量](federated-authentication.md#saml-requirements)。

**解決方案**  
請確認用戶端的裝置未封鎖 TCP 連接埠 35001，或將它用於不同的程序。

# 故障診斷 AWS Client VPN：因 IP 不相符而終止連線
<a name="server-ip-mismatch"></a>

**問題**  
VPN 連線已終止，用戶端軟體會傳回下列錯誤： `"The VPN connection is being terminated due to a discrepancy between the IP address of the connected server and the expected VPN server IP. Please contact your network administrator for assistance in resolving this issue."`

**原因**  
 AWS 提供的用戶端要求其連線的 IP 地址符合支援 Client VPN 端點的 VPN 伺服器的 IP。如需詳細資訊，請參閱[使用 的規則和最佳實務 AWS Client VPN](what-is-best-practices.md)。

**解決方案**  
確認 AWS 提供的用戶端與 Client VPN 端點之間沒有 DNS 代理。

# 故障診斷 AWS Client VPN：將流量路由到 LAN 無法如預期運作
<a name="routing-to-lan"></a>

**問題**  
當 LAN IP 地址範圍不在下列標準私有 IP 地址範圍內時，嘗試將流量路由到區域網路 (LAN) 無法如預期運作：`10.0.0.0/8`、`192.168.0.0/16`、 `172.16.0.0/12`或 `169.254.0.0/16`。

**原因**  
如果偵測到用戶端 LAN 地址範圍超出上述標準範圍，則 Client VPN 端點會自動將 OpenVPN 指令 "redirect-gateway block-local" 推送至用戶端，強制所有 LAN 流量進入 VPN。如需詳細資訊，請參閱[使用 的規則和最佳實務 AWS Client VPN](what-is-best-practices.md)。

**解決方案**  
如果您在 VPN 連接期間需要 LAN 存取，建議您為 LAN 使用上面列出的傳統地址範圍。

# 故障診斷 AWS Client VPN：驗證 Client VPN 端點的頻寬限制
<a name="test-throughput"></a>

**問題**  
我需要確認 Client VPN 端點的頻寬限制。

**原因**  
輸送量取決於多個因素，例如來自您位置的連線容量，以及電腦上 Client VPN 桌面應用程式和 VPC 端點之間的網路延遲。每個使用者連線支援 10 Mbps 的最小頻寬。

**解決方案**  
執行下列命令以驗證頻寬。

```
sudo iperf3 -s -V
```

在用戶端上：

```
sudo iperf -c server IP address -p port -w 512k -P 60
```

# 故障診斷 AWS Client VPN：VPC 的通道連線問題
<a name="VPNTunnelConnectivityTroubleshooting"></a>

當您的 AWS Client VPN 連線遇到連線問題時，請遵循此系統疑難排解方法來識別並解決問題。本節提供step-by-step程序，以診斷遠端用戶端與 Amazon VPC 資源之間的常見 Client VPN 連線問題。

**Topics**
+ [網路連線先決條件](#NetworkConnectivityPrerequisites)
+ [檢查 Client VPN 端點狀態](#CheckClientVPNEndpointStatus)
+ [驗證用戶端連線](#VerifyClientConnections)
+ [驗證用戶端身分驗證](#ClientAuthentication)
+ [檢查授權規則](#AuthorizationRules)
+ [驗證 Client VPN 路由](#ValidateClientVPNRoutes)
+ [驗證安全群組和網路 ACLs](#SecurityGroupNACLVerification)
+ [測試用戶端連線](#TestClientConnectivity)
+ [診斷用戶端裝置](#ClientSideDiagnostics)
+ [故障診斷 DNS 解析](#DNSTroubleshooting)
+ [對效能進行故障診斷](#PerformanceTroubleshooting)
+ [監控 Client VPN 指標](#MonitorClientVPNMetrics)
+ [檢查 Client VPN 日誌](#CheckClientVPNLogs)
+ [常見問題與解決方案](#CommonIssues)

## 網路連線先決條件
<a name="NetworkConnectivityPrerequisites"></a>

在對 Client VPN 連線進行故障診斷之前，請確認這些網路先決條件：
+ 確保 Client VPN 端點子網路具有網際網路連線能力 （透過網際網路閘道或 NAT 閘道）。
+ 確認 Client VPN 端點與不同可用區域中的子網路相關聯，以獲得高可用性。
+ 檢查 VPC 是否有足夠的 IP 地址空間，且不與用戶端 CIDR 區塊衝突。
+ 確認目標子網路具有適當的路由表關聯。

## 檢查 Client VPN 端點狀態
<a name="CheckClientVPNEndpointStatus"></a>

首先，確認您的 Client VPN 端點處於正確狀態：

1. 使用 AWS CLI 檢查 Client VPN 端點狀態：

   ```
   aws ec2 describe-client-vpn-endpoints --region your-region
   ```

1. 在輸出中尋找端點狀態。狀態應為 `available`。

1. 確認端點具有相關聯的目標網路 （子網路）。

1. 如果狀態不是 `available`，請檢查可能表示組態問題的任何錯誤訊息或擱置狀態。

## 驗證用戶端連線
<a name="VerifyClientConnections"></a>

檢查用戶端連線至 Client VPN 端點的狀態：

1. 檢查作用中的用戶端連線：

   ```
   aws ec2 describe-client-vpn-connections --client-vpn-endpoint-id cvpn-endpoint-id --region your-region
   ```

1. 檢閱連線狀態和輸出中的任何錯誤訊息。

1. 檢查用戶端身分驗證日誌是否有失敗的身分驗證嘗試。

1. 確認用戶端正在從設定的用戶端 CIDR 區塊接收 IP 地址。

**注意**  
如果用戶端無法連線，問題可能是身分驗證組態、授權規則或網路連線。

## 驗證用戶端身分驗證
<a name="ClientAuthentication"></a>

身分驗證問題是 Client VPN 連線問題的常見原因：
+ 對於交互身分驗證，請確保用戶端憑證有效且未過期。
+ 針對 Active Directory 身分驗證，驗證使用者登入資料和網域連線。
+ 對於以 SAML 為基礎的聯合身分驗證，請檢查 IdP 組態和使用者許可。
+ 檢閱 CloudWatch 中的身分驗證日誌，以取得詳細的錯誤資訊。
+ 確認端點上設定的身分驗證方法符合用戶端組態。

## 檢查授權規則
<a name="AuthorizationRules"></a>

授權規則控制用戶端可存取的網路資源：

1. 列出目前的授權規則：

   ```
   aws ec2 describe-client-vpn-authorization-rules --client-vpn-endpoint-id cvpn-endpoint-id --region your-region
   ```

1. 確認用戶端需要存取的目標網路存在規則。

1. 檢查規則是否指定正確的 Active Directory 群組 （如果使用 AD 身分驗證）。

1. 確保授權規則處於 `active` 狀態。

## 驗證 Client VPN 路由
<a name="ValidateClientVPNRoutes"></a>

適當的路由組態對於 Client VPN 連線至關重要：

1. 檢查 Client VPN 端點路由：

   ```
   aws ec2 describe-client-vpn-routes --client-vpn-endpoint-id cvpn-endpoint-id --region your-region
   ```

1. 驗證用戶端需要存取的目標網路是否有路由。

1. 檢查 Amazon VPC 路由表，以確保傳回流量可以到達 Client VPN 端點：

   ```
   aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-id" --region your-region
   ```

1. 確認已正確設定目標網路關聯。

## 驗證安全群組和網路 ACLs
<a name="SecurityGroupNACLVerification"></a>

安全群組和網路 ACLs可以封鎖 Client VPN 流量：

1. 檢查目標 EC2 執行個體的安全群組：

   ```
   aws ec2 describe-security-groups --group-ids sg-xxxxxxxxx --region your-region
   ```

1. 驗證傳入規則允許來自 Client VPN CIDR 區塊的流量：
   + Client VPN CIDR 的 SSH （連接埠 22)： `10.0.0.0/16`
   + 來自 Client VPN CIDR 的 HTTP （連接埠 80)： `10.0.0.0/16`
   + 來自 Client VPN CIDR 的 HTTPS （連接埠 443)： `10.0.0.0/16`
   + 視需要自訂應用程式連接埠

1. 對於 Client VPN 端點安全群組 （如果適用），請確保它允許：
   + 從 0.0.0.0/0 的 UDP 連接埠 443 (OpenVPN)
   + 所有傳出至 VPC CIDR 區塊的流量

1. 檢查網路 ACLs是否未封鎖流量。網路 ACLs 是無狀態的，因此必須設定傳入和傳出規則。

1. 驗證您嘗試傳送之特定流量的傳入和傳出規則。

## 測試用戶端連線
<a name="TestClientConnectivity"></a>

測試從 Client VPN 用戶端到 Amazon VPC 資源的連線：

1. 從連線的 Client VPN 用戶端，測試與 Amazon VPC 資源的連線：

   ```
   ping vpc-resource-ip
   traceroute vpc-resource-ip
   ```

1. 測試特定應用程式連線：

   ```
   telnet vpc-resource-ip port
   ```

1. 如果使用私有 DNS 名稱，請驗證 DNS 解析：

   ```
   nslookup private-dns-name
   ```

1. 如果啟用分割通道，則測試網際網路資源的連線能力。

## 診斷用戶端裝置
<a name="ClientSideDiagnostics"></a>

在用戶端裝置上執行這些檢查：

1. 確認用戶端組態檔案 (.ovpn) 包含正確的設定：
   + 正確的伺服器端點 URL
   + 有效的用戶端憑證和私有金鑰
   + 適當的身分驗證方法組態

1. 檢查用戶端日誌是否有連線錯誤：
   + Windows：事件檢視器 → 應用程式和服務日誌 → OpenVPN
   + macOS：主控台應用程式，搜尋「Tunnelblick」或「OpenVPN」
   + Linux： `/var/log/openvpn/`或系統化日誌

1. 從用戶端測試基本網路連線：

   ```
   ping 8.8.8.8
   nslookup cvpn-endpoint-id.cvpn.region.amazonaws.com
   ```

## 故障診斷 DNS 解析
<a name="DNSTroubleshooting"></a>

DNS 問題可能會阻止使用私有 DNS 名稱存取資源：

1. 檢查是否已在 Client VPN 端點中設定 DNS 伺服器：

   ```
   aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-ids cvpn-endpoint-id --query 'ClientVpnEndpoints[0].DnsServers'
   ```

1. 從用戶端測試 DNS 解析：

   ```
   nslookup private-resource.internal
   dig private-resource.internal
   ```

1. 如果使用自訂 DNS 解析，請驗證 Route 53 Resolver 規則。

1. 檢查安全群組是否允許從 Client VPN CIDR 到 DNS 伺服器的 DNS 流量 (UDP/TCP 連接埠 53)。

## 對效能進行故障診斷
<a name="PerformanceTroubleshooting"></a>

解決 Client VPN 連線的效能問題：
+ 使用 CloudWatch 指標監控傳入/傳出位元組的頻寬使用率。
+ 使用用戶端的持續 ping 測試來檢查封包遺失。
+ 確認 Client VPN 端點未達到連線限制。
+ 考慮使用多個 Client VPN 端點進行負載分佈。
+ 使用不同的用戶端位置進行測試，以識別區域效能問題。

## 監控 Client VPN 指標
<a name="MonitorClientVPNMetrics"></a>

使用 CloudWatch 監控 Client VPN 端點指標：

1. 檢查作用中連線指標：

   ```
   aws cloudwatch get-metric-statistics \
     --namespace AWS/ClientVPN \
     --metric-name ActiveConnectionsCount \
     --dimensions Name=Endpoint,Value=cvpn-endpoint-id \
     --start-time start-time \
     --end-time end-time \
     --period 300 \
     --statistics Average
   ```

1. 檢閱身分驗證失敗指標：

   ```
   aws cloudwatch get-metric-statistics \
     --namespace AWS/ClientVPN \
     --metric-name AuthenticationFailures \
     --dimensions Name=Endpoint,Value=cvpn-endpoint-id \
     --start-time start-time \
     --end-time end-time \
     --period 300 \
     --statistics Sum
   ```

1. 檢閱其他可用的指標，例如輸入和輸出位元組和封包。

## 檢查 Client VPN 日誌
<a name="CheckClientVPNLogs"></a>

Client VPN 連線日誌提供有關連線嘗試和錯誤的詳細資訊：
+ 如果尚未設定，請啟用 Client VPN 連線記錄。
+ 檢閱 CloudWatch 日誌是否有連線嘗試、身分驗證失敗和授權錯誤。
+ 尋找指出連線問題根本原因的特定錯誤代碼和訊息。
+ 檢查失敗連線中可能表示組態問題的模式。

## 常見問題與解決方案
<a name="CommonIssues"></a>

可能影響 Client VPN 連線的常見問題：

身分驗證失敗  
用戶端憑證過期或無效，或 Active Directory 憑證不正確。驗證身分驗證組態和登入資料有效性。

缺少授權規則  
由於授權規則遺失或不正確，用戶端無法存取目標網路。為所需的網路新增適當的授權規則。

分割通道問題  
由於通道組態分割，流量路由不正確。視需要檢閱和調整分割通道設定。

用戶端 IP 集區耗盡  
用戶端 CIDR 區塊中沒有可用的 IP 地址。展開用戶端 CIDR 範圍或中斷連接未使用的用戶端。

MTU 問題  
由於 MTU 大小限制，大型封包正在捨棄。嘗試將 MTU 設定為 1436 位元組，或在用戶端裝置上啟用路徑 MTU 探索。

DNS 解析問題  
用戶端無法解析私有 DNS 名稱。驗證 DNS 伺服器組態，並確保透過安全群組允許 DNS 流量。

重疊 IP 範圍  
用戶端 CIDR 區塊與本機網路範圍衝突。檢查並解決用戶端 CIDR 和本機網路之間任何重疊的 IP 地址範圍。

TLS 交握失敗  
TLS 交涉期間連線失敗。檢查憑證有效性、確保正確的密碼套件，並確認已正確設定用戶端和伺服器憑證。

路由傳播延遲  
用戶端無法立即使用新的路由。變更 Client VPN 路由後，請等待 1-2 分鐘進行路由傳播。

連線中斷/不穩定  
頻繁中斷連線或連線不穩定。檢查用戶端裝置上的網路擁塞、防火牆干擾或電源管理設定。