本文提供針對內部部署網路與 Azure 之間的 VPN 網關聯機進行疑難解答的一些秘訣。 如需針對常見 VPN 相關錯誤進行疑難解答的一般資訊,請參閱 針對常見 VPN 相關錯誤進行疑難解答。
確認 VPN 設備正常運作
下列建議適用於判斷您的內部部署 VPN 裝置是否正常運作。
檢查 VPN 裝置所產生的任何記錄檔是否有錯誤或失敗。 這可協助您判斷 VPN 裝置是否正常運作。 此資訊的位置會根據您的設備而有所不同。 例如,如果您在 Windows Server 上使用 RRAS,您可以使用下列 PowerShell 命令來顯示 RRAS 服務的錯誤事件資訊:
Get-EventLog -LogName System -EntryType Error -Source RemoteAccess | Format-List -Property *
每個專案的 Message 屬性都會提供錯誤的描述。 一些常見的範例包括:
無法連線,可能是因為 RRAS VPN 網路介面設定中為 Azure VPN 閘道指定的 IP 位址不正確。
EventID : 20111 MachineName : on-premises-vm Data : {41, 3, 0, 0} Index : 14231 Category : (0) CategoryNumber : 0 EntryType : Error Message : RoutingDomainID- {00000000-0000-0000-0000-000000000000}: A demand dial connection to the remote interface AzureGateway on port VPN2-4 was successfully initiated but failed to complete successfully because of the following error: The network connection between your computer and the VPN server could not be established because the remote server is not responding. This could be because one of the network devices (for example, firewalls, NAT, routers, and so on) between your computer and the remote server is not configured to allow VPN connections. Please contact your Administrator or your service provider to determine which device may be causing the problem. Source : RemoteAccess ReplacementStrings : {{00000000-0000-0000-0000-000000000000}, AzureGateway, VPN2-4, The network connection between your computer and the VPN server could not be established because the remote server is not responding. This could be because one of the network devices (for example, firewalls, NAT, routers, and so on) between your computer and the remote server is not configured to allow VPN connections. Please contact your Administrator or your service provider to determine which device may be causing the problem.} InstanceId : 20111 TimeGenerated : 3/18/2024 1:26:02 PM TimeWritten : 3/18/2024 1:26:02 PM UserName : Site : Container :
RRAS VPN 網路介面組態中指定的共用金鑰錯誤。
EventID : 20111 MachineName : on-premises-vm Data : {233, 53, 0, 0} Index : 14245 Category : (0) CategoryNumber : 0 EntryType : Error Message : RoutingDomainID- {00000000-0000-0000-0000-000000000000}: A demand dial connection to the remote interface AzureGateway on port VPN2-4 was successfully initiated but failed to complete successfully because of the following error: Internet key exchange (IKE) authentication credentials are unacceptable. Source : RemoteAccess ReplacementStrings : {{00000000-0000-0000-0000-000000000000}, AzureGateway, VPN2-4, IKE authentication credentials are unacceptable. } InstanceId : 20111 TimeGenerated : 3/18/2024 1:34:22 PM TimeWritten : 3/18/2024 1:34:22 PM UserName : Site : Container :
您也可以使用下列 PowerShell 命令,取得嘗試透過 RRAS 服務連線的事件記錄檔資訊:
Get-EventLog -LogName Application -Source RasClient | Format-List -Property *
如果連線失敗,此記錄檔將包含類似下列的錯誤:
EventID : 20227
MachineName : on-premises-vm
Data : {}
Index : 4203
Category : (0)
CategoryNumber : 0
EntryType : Error
Message : CoId={B4000371-A67F-452F-AA4C-3125AA9CFC78}: The user SYSTEM dialed a connection named
AzureGateway that has failed. The error code returned on failure is 809.
Source : RasClient
ReplacementStrings : {{B4000371-A67F-452F-AA4C-3125AA9CFC78}, SYSTEM, AzureGateway, 809}
InstanceId : 20227
TimeGenerated : 3/18/2024 1:29:21 PM
TimeWritten : 3/18/2024 1:29:21 PM
UserName :
Site :
Container :
確認連線能力
確認跨 VPN 閘道的連線和路由。 VPN 設備可能無法透過 Azure VPN 閘道正確路由傳送流量。 使用 PsPing 之類的工具來驗證 VPN 閘道之間的連線和路由。 例如,若要測試從內部部署電腦到 VNet 上網頁伺服器的連線能力,請執行下列命令(將 <<web-server-address>>
取代為網頁伺服器的位址):
PsPing -t <<web-server-address>>:80
如果內部部署機器可以將流量路由傳送至 Web 伺服器,您應該會看到類似下列的輸出:
D:\PSTools> psping -t 10.20.0.5:80
PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP connect to 10.20.0.5:80:
Infinite iterations (warmup 1) connecting test:
Connecting to 10.20.0.5:80 (warmup): 6.21ms
Connecting to 10.20.0.5:80: 3.79ms
Connecting to 10.20.0.5:80: 3.44ms
Connecting to 10.20.0.5:80: 4.81ms
Sent = 3, Received = 3, Lost = 0 (0% loss),
Minimum = 3.44ms, Maximum = 4.81ms, Average = 4.01ms
如果內部部署電腦無法與指定的目的地通訊,您會看到如下的訊息:
D:\PSTools>psping -t 10.20.1.6:80
PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP connect to 10.20.1.6:80:
Infinite iterations (warmup 1) connecting test:
Connecting to 10.20.1.6:80 (warmup): This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80: This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80: This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80: This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80:
Sent = 3, Received = 0, Lost = 3 (100% loss),
Minimum = 0.00ms, Maximum = 0.00ms, Average = 0.00ms
確認內部部署防火牆允許 VPN 流量通過,並開啟正確的埠。
確認內部部署 VPN 設備使用與 Azure VPN 閘道相容的加密方法。 針對原則型路由,Azure VPN 閘道支援 AES256、AES128 和 3DES 加密演算法。 路由式閘道支援 AES256 和 3DES。 如需詳細資訊,請參閱 關於站對站 VPN 網關聯機的 VPN 裝置和 IPsec/IKE 參數。
檢查 Azure VPN 閘道的問題
下列建議適用於判斷 Azure VPN 閘道是否有問題:
檢查 Azure VPN 閘道診斷記錄中是否有潛在問題。 如需詳細資訊,ee 逐步解說:擷取 Azure Resource Manager VNet 網關診斷記錄。
確認 Azure VPN 閘道和內部部署 VPN 裝置已使用相同的共用驗證金鑰進行設定。 您可以使用下列 Azure CLI 命令來檢視 Azure VPN 閘道所儲存的共享金鑰:
azure network vpn-connection shared-key show <<resource-group>> <<vpn-connection-name>>
使用適用於內部部署 VPN 裝置的命令來顯示針對該設備設定的共用密鑰。
確認 GatewaySubnet 持有 Azure VPN 閘道的子網未與 NSG 相關聯。
您可以使用下列 Azure CLI 命令來檢視子網詳細資料:
azure network vnet subnet show -g <<resource-group>> -e <<vnet-name>> -n GatewaySubnet
請確定沒有名為 網路安全組識別子的資料欄位。 下列範例顯示已指派 NSG 之 GatewaySubnet 實例的結果(VPN-Gateway-Group)。 如果為此 NSG 定義了任何規則,這可以防止閘道正常運作。
C:\>azure network vnet subnet show -g profx-prod-rg -e profx-vnet -n GatewaySubnet
info: Executing command network vnet subnet show
+ Looking up virtual network "profx-vnet"
+ Looking up the subnet "GatewaySubnet"
data: Id : /subscriptions/########-####-####-####-############/resourceGroups/profx-prod-rg/providers/Microsoft.Network/virtualNetworks/profx-vnet/subnets/GatewaySubnet
data: Name : GatewaySubnet
data: Provisioning state : Succeeded
data: Address prefix : 10.20.3.0/27
data: Network Security Group id : /subscriptions/########-####-####-####-############/resourceGroups/profx-prod-rg/providers/Microsoft.Network/networkSecurityGroups/VPN-Gateway-Group
info: network vnet subnet show command OK
確認 Azure VNet 中的虛擬機已設定為允許來自 VNet 外部的流量。 檢查與包含這些虛擬機之子網相關聯的任何 NSG 規則。 您可以使用下列 Azure CLI 命令來檢視所有 NSG 規則:
azure network nsg show -g <<resource-group>> -n <<nsg-name>>
確認 Azure VPN 閘道已連線。 您可以使用下列 Azure PowerShell 命令來檢查 Azure VPN 連線的目前狀態。
<<connection-name>>
參數是鏈接虛擬網路閘道和本機閘道的 Azure VPN 連線名稱。
Get-AzureRmVirtualNetworkGatewayConnection -Name <<connection-name>> - ResourceGroupName <<resource-group>>
如果閘道已連線(第一個範例),且已中斷連線,則下列代碼段會反白顯示所產生的輸出(第二個範例):
PS C:\> Get-AzureRmVirtualNetworkGatewayConnection -Name profx-gateway-connection -ResourceGroupName profx-prod-rg
AuthorizationKey :
VirtualNetworkGateway1 : Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
VirtualNetworkGateway2 :
LocalNetworkGateway2 : Microsoft.Azure.Commands.Network.Models.PSLocalNetworkGateway
Peer :
ConnectionType : IPsec
RoutingWeight : 0
SharedKey : ####################################
ConnectionStatus : Connected
EgressBytesTransferred : 55254803
IngressBytesTransferred : 32227221
ProvisioningState : Succeeded
...
PS C:\> Get-AzureRmVirtualNetworkGatewayConnection -Name profx-gateway-connection2 -ResourceGroupName profx-prod-rg
AuthorizationKey :
VirtualNetworkGateway1 : Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
VirtualNetworkGateway2 :
LocalNetworkGateway2 : Microsoft.Azure.Commands.Network.Models.PSLocalNetworkGateway
Peer :
ConnectionType : IPsec
RoutingWeight : 0
SharedKey : ####################################
ConnectionStatus : NotConnected
EgressBytesTransferred : 0
IngressBytesTransferred : 0
ProvisioningState : Succeeded
...
其他問題
下列建議適用於判斷主機 VM 設定、網路頻寬使用率或應用程式效能是否有問題:
確認防火牆設定。 確認子網中 Azure VM 上執行的客體作系統防火牆已正確設定為允許來自內部部署 IP 範圍的允許流量。
確認流量量未接近 Azure VPN 閘道可用的頻寬限制。 如何確認這取決於執行內部部署的 VPN 設備。 例如,如果您在 Windows Server 上使用 RRAS,您可以使用性能監視器來追蹤透過 VPN 連線接收和傳輸的數據量。 使用 RAS Total 對象,選取 Bytes Received/Sec 和 Bytes Transmitted/Sec 計数器:
您應該將結果與 VPN 閘道可用的頻寬進行比較(從基本 SKU 的 100 Mbps 到 VpnGw3 SKU 的 1.25 Gbps):
確認您已為應用程式載入部署正確的 VM 數目和大小。 判斷 Azure VNet 中的任何虛擬機是否執行速度緩慢。 如果是這樣,它們可能會多載,處理負載可能太少,或負載平衡器可能無法正確設定。 若要判斷此情況,擷取和分析診斷資訊。 您可以使用 Azure 入口網站來檢查結果,但您也可以使用許多第三方工具,以提供效能數據的詳細深入解析。
您可以使用 Azure DDoS 保護來協助防止惡意資源耗盡。 Azure DDoS 保護,結合應用程式設計最佳做法,提供增強的 DDoS 風險降低功能,以提供更多防禦 DDoS 攻擊。 您應該在任何周邊虛擬網路上啟用 Azure DDOS 保護。
確認應用程式正在有效率地使用雲端資源。 檢測在每個 VM 上執行的應用程式程式碼,以判斷應用程式是否充分利用資源。 您可以使用 Application Insights之類的工具。
後續步驟
產品檔案:
- 在 Azure 中 Linux 虛擬機
- 什麼是 Azure PowerShell?
- 什麼是 Azure 虛擬網路?
- 什麼是 Azure CLI?
- 什麼是 VPN 閘道?
- Azure 中的 Windows 虛擬機
Microsoft Learn 課程模組:
- 使用工具設定 Azure 資源
- 設定 VPN 閘道
- 在 Azure 中建立 Linux 虛擬機
- 在 Azure 中建立 Windows 虛擬機
相關資源
- 混合式架構設計
- 使用 VPN 擴充內部部署網路
- 遠端和本機分支背景工作角色的災害復原混合式檔案共享