知識庫

如需移除,請網站管理者移除.

324
主題:

發佈者:terry8899@gmail.com
文章編號:324 2019-07-09 01:31:18   來自:61.64.208.10   

回覆



1樓. 回覆 : 324 時間 : 2022-03-14 19:28:34

NAT 後 Windows 上 L2TP/IPSec 的 VPN 錯誤 809

事實證明,該問題已為人所知,並在文章https://support.microsoft.com/en-us/kb/926179中進行了描述。默認情況下,Windows 內置 VPN 客戶端不支持通過 NAT 的 L2TP/IPsec 連接。這是因為 IPsec 使用ESP(封裝安全負載)來加密數據包,而 ESP 不支持PAT(端口地址轉換)。如果您想使用 IPSec 進行通信,Microsoft 建議在 VPN 服務器上使用公共 IP 地址。

但也有一種解決方法。您可以通過啟用對NAT-T協議的支持來解決此缺點,該協議允許您將 ESP 50 數據包封裝在端口 4500 上的 UDP 數據包中。默認情況下,幾乎所有操作系統(iOS、Android、Linux)都啟用了 NAT-T,除了視窗。

如果 L2TP/IPsec VPN 服務器位於 NAT 設備後面,為了正確通過 NAT 連接外部客戶端,您必須對服務器和客戶端的註冊表進行一些更改,以允許 L2TP 和 NAT-T 的 UDP 數據包封裝IPsec 中的支持。

  • 打開註冊表編輯器 ( regedit.exe) 並轉到以下註冊表​​項:
    • Windows 10/8.1/Vista 和 Windows Server 2016/2012R2/2008R2 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
    • Windows XP/Windows Server 2003 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec
  • 創建一個名為AssumeUDPEncapsulationContextOnSendRule且值為2的DWORD參數;AssumeUDPEncapsulationContextOnSendRule 註冊表項注意。可能的 AssumeUDPEncapsulationContextOnSendRule 值為:
    • 0 –(默認值)表示服務器連接到 Internet 沒有 NAT;
    • 1 – VPN 服務器位於 NAT 設備後面;
    • 2 — VPN 服務器和客戶端都在 NAT 後面。
  • 只需重新啟動計算機並確保已成功建立 VPN 隧道

[警告] 如果 Windows VPN 服務器和客戶端都在 NAT 之後,您需要在兩台設備上更改此設置。

此外,您可以使用PowerShell cmdlet 對註冊表進行更改

Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesPolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Type DWORD -Value 2 –Force;

啟用 NAT-T 支持後,您將能夠通過 NAT(包括雙重 NAT)從客戶端成功連接到 VPN 服務器。



2樓. 回覆 : 324 時間 : 2022-03-14 19:27:57

來自同一 LAN 的多個 L2TP VPN 連接

還有另一個有趣的 VPN 錯誤。如果您的本地網絡有幾台 Windows 計算機,則您不能同時建立多個到外部 L2TP/IPSec VPN 服務器的連接。如果您嘗試從另一台計算機(使用來自不同設備的活動 VPN 隧道)連接到同一 VPN 服務器,則會出現錯誤代碼 809 或 789:

錯誤 789:L2TP 連接嘗試失敗,因為安全層在與刪除計算機的初始協商期間遇到處理錯誤。

有趣的是,這個問題只發生在 Windows 設備上。在同一個本地網絡的 Linux/MacOS/Android 設備上,不存在此類問題。您可以輕鬆地同時從多個設備連接到 VPN L2TP 服務器。

據 TechNet 稱,該問題與 Windows 上 L2TP/IPSec 客戶端的錯誤實現有關(多年未修復)。

要修復此錯誤,您需要更改HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasManParameters註冊表項中的兩個註冊表參數並重新啟動計算機:

  • AllowL2TPWeakCrypto – 更改為00000001(允許弱加密算法,對於 L2TP/IPSec,使用 MD5 和 DES 算法);
  • ProhibitIPSec – 更改為00000000(啟用 IPsec 加密,通常被某些 VPN 客戶端或系統工具禁用)。

AllowL2TPWeakCrypto 和 ProhibitIpSec 用於 Windows 上 NAT 後面的 l2tp ipsec vpn 連接

運行以下命令以更改應用這些註冊表更改:

reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v ProhibitIpSec /t REG_DWORD /d 0 /f

這支持通過共享公共 IP 地址在 Windows 上進行並發 L2TP/IPSec VPN 連接(適用於從 Windows XP 到 Windows 10 的所有版本)。



3樓. 回覆 : 324 時間 : 2022-03-14 19:25:00

在 NAT 後面配置 L2TP/IPSec VPN 連接,VPN 錯誤代碼 809


由於在 iOS 中禁用 PPTP VPN 支持,我的一位客戶決定將運行 Windows Server 2012 R2 的 VPN 服務器從 PPTP 重新配置為 L2TP/IPSec。來自 LAN 內部的內部 VPN 客戶端連接到 VPN 服務器沒有任何問題,但是外部 Windows 客戶端在嘗試與 L2TP VPN 服務器建立連接時收到錯誤 809:

無法連接到 L2TP-IPsec-VPN-Server.hostname

 

由於遠程服務器沒有響應,無法建立您的計算機和 VPN 服務器之間的網絡連接。這可能是因為您的計算機和遠程服務器之間的網絡設備之一(例如防火牆、NAT、路由器等)未配置為允許 VPN 連接。請聯繫您的管理員或您的服務提供商以確定可能導致問題的設備。

 

無法連接到 L2TP-IPsec-VPN-Server

在其他 Windows 版本中,連接錯誤800794809可能表示相同的問題。

值得注意的是,VPN 服務器在 NAT 後面,路由器配置為轉發L2TP 端口:

 

UDP 1701 — 第 2 層轉發協議 (L2F) 和第 2 層隧道協議 (L2TP)
UDP 500
UDP 4500 NAT-T – IPSec 網絡地址轉換器遍歷
協議 50 ESP
這些端口也在用於 VPN 連接的Windows 防火牆規則中打開。那些,使用經典配置。內置的 Windows VPN 客戶端用於連​​接。

 

NAT 後 Windows 上 L2TP/IPSec 的 VPN 錯誤 809

事實證明,該問題已為人所知,並在文章https://support.microsoft.com/en-us/kb/926179中進行了描述。默認情況下,Windows 內置 VPN 客戶端不支持通過 NAT 的 L2TP/IPsec 連接。這是因為 IPsec 使用ESP(封裝安全負載)來加密數據包,而 ESP 不支持PAT(端口地址轉換)。如果您想使用 IPSec 進行通信,Microsoft 建議在 VPN 服務器上使用公共 IP 地址。

但也有一種解決方法。您可以通過啟用對NAT-T協議的支持來解決此缺點,該協議允許您將 ESP 50 數據包封裝在端口 4500 上的 UDP 數據包中。默認情況下,幾乎所有操作系統(iOS、Android、Linux)都啟用了 NAT-T,除了視窗。

如果 L2TP/IPsec VPN 服務器位於 NAT 設備後面,為了正確通過 NAT 連接外部客戶端,您必須對服務器和客戶端的註冊表進行一些更改,以允許 L2TP 和 NAT-T 的 UDP 數據包封裝IPsec 中的支持。

  • 打開註冊表編輯器 ( regedit.exe) 並轉到以下註冊表​​項:
    • Windows 10/8.1/Vista 和 Windows Server 2016/2012R2/2008R2 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
    • Windows XP/Windows Server 2003 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec
  • 創建一個名為AssumeUDPEncapsulationContextOnSendRule且值為2的DWORD參數;AssumeUDPEncapsulationContextOnSendRule 註冊表項注意。可能的 AssumeUDPEncapsulationContextOnSendRule 值為:
    • 0 –(默認值)表示服務器連接到 Internet 沒有 NAT;
    • 1 – VPN 服務器位於 NAT 設備後面;
    • 2 — VPN 服務器和客戶端都在 NAT 後面。
  • 只需重新啟動計算機並確保已成功建立 VPN 隧道

[警告] 如果 Windows VPN 服務器和客戶端都在 NAT 之後,您需要在兩台設備上更改此設置。

此外,您可以使用PowerShell cmdlet 對註冊表進行更改

Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesPolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Type DWORD -Value 2 –Force;

啟用 NAT-T 支持後,您將能夠通過 NAT(包括雙重 NAT)從客戶端成功連接到 VPN 服務器。



4樓. 回覆 : 324 時間 : 2022-03-14 15:54:44

您無法連線到 L2TP/IPsec 伺服器在 Windows 的內嵌壓縮 7 NAT-T 裝置背後的修正:

Windows Embedded Compact 7

簡介

本文將告訴您無法連線到 L2TP/IPsec 伺服器在 Windows 的內嵌壓縮 7 NAT-T 裝置背後的問題。 有可以解決這個問題的更新。 在您安裝此更新程式之前,必須安裝此產品的所有先前發行之更新程式。

徵狀

試想下列案例:

  • 您有網路位址轉譯 (NAT) 及虛擬私人網路 (VPN) 正在執行 Windows 的內嵌壓縮 7 的裝置上啟用。

  • 建立 (L2TP/IPSec) VPN 連線時,您從這個裝置上的網路和撥號連線項目。

在這個案例中,您從這個裝置,連線到 VPN 伺服器之後,您無法連線到 L2TP/IPsec 伺服器 NAT-T 裝置後方。

解決方案

若要解決這個問題,安裝這個更新。 在安裝此更新之後,您可以在登錄中使用新的AssumeUDPEncapsulationContextOnSendRule值,來支援連線至 Windows 內嵌的精簡 7 基礎裝置上 NAT-T 裝置背後的 L2TP/IPsec 伺服器項目。 AssumeUDPEncapsulationContextOnSendRule值位於下列登錄子機碼下:

HKEY_LOCAL_MACHINECommL2TP1Parms 您可以設定下列值:

  • 如果您設定的AssumeUDPEncapsulationContextOnSendRule值為0,裝置無法建立與伺服器位於 NAT 裝置後面的安全性關聯。 這是預設值。

  • 如果您設定的AssumeUDPEncapsulationContextOnSendRule值為1,裝置就可以建立與伺服器位於 NAT 裝置後面的安全性關聯。

  • 如果您設定的AssumeUDPEncapsulationContextOnSendRule值為2時,裝置可以建立安全性關聯,如果伺服器和裝置都位於 NAT 裝置。

您也需要在OSDesign.reg檔案中設定下列的登錄設定。 這可讓系統檢查AssumeUDPEncapsulationContextOnSendRule值。

;刪除登錄值的"UseIPSec",且在 common.reg 中設定了下列的設定

[HKEY_LOCAL_MACHINECommL2TP1Parms]      "UseIPSec"=-



5樓. 回覆 : 324 時間 : 2022-03-14 15:53:00

設定 NAT-T 裝置背後的 L2TP/IPsec 伺服器

  • 發行項
  • 2021/09/25
  • 2 位參與者

 

本文說明如何在 NAT-T 裝置背後設定 L2TP/IPsec 伺服器。

適用于:  Windows 10-all edition,Windows Server 2012 R2
原始 KB 編號:   926179

摘要

 重要

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為了有多一層保護,請先備份登錄再進行修改。 如此一來,您就可以在發生問題時還原登錄。 如需如何備份及還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄

依預設,Windows Vista 和 Windows Server 2008 不支援網際網路通訊協定安全性 (IPsec) 網路位址轉譯 (nat) 遍歷 (NAT-T) 安全性關聯至位於 NAT 裝置背後的伺服器。 如果虛擬私人網路 (VPN) 伺服器之後是 NAT 裝置,則 Windows Vista 或 Windows server 2008 型 VPN 用戶端電腦無法建立第2層隧道通訊協定 (L2TP) /IPsec 連線至 VPN 伺服器。 此案例包括執行 Windows Server 2008 和 Windows Server 2003 的 VPN 伺服器。

由於 NAT 裝置轉譯網路流量的方式,在下列情況下,您可能會遇到意想不到的結果:

  • 您將伺服器置於 NAT 裝置之後。
  • 您可以使用 IPsec NAT-T 環境。

如果您必須使用 IPsec 進行通訊,請將公用 IP 位址用於您可以從網際網路連線的所有伺服器。 如果您必須將伺服器放在 NAT 裝置後面,然後使用 IPsec NAT-T 環境,您可以在 VPN 用戶端電腦和 VPN 伺服器上變更登錄值,以啟用通訊。

設定 AssumeUDPEncapsulationCoNtextOnSendRule 登錄機碼

若要建立及設定 AssumeUDPEncapsulationCoNtextOnSendRule 登錄值,請遵循下列步驟:

  1. 以管理員群組成員的使用者身分登入 Windows Vista 用戶端電腦。

  2. 選取 [啟動 > 所有程式 > 附件 > 的 執行],輸入 regedit,然後選取 [確定]。 如果螢幕上顯示 [ 使用者帳戶控制 ] 對話方塊,並提示您提升系統管理員權杖,請選取 [ 繼續]。

  3. 找出並選取下列登錄子機碼:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent

     注意

    您也可以將 AssumeUDPEncapsulationCoNtextOnSendRule DWORD 值套用至 Microsoft Windows XP Service Pack 2 (SP2) 型 VPN 用戶端電腦。 若要這麼做,請找到並選取登錄子機碼 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec 。

  4. 在 [ 編輯 ] 功能表上,指向 [ 新增],然後選取 [ DWORD (32-位) 值

  5. 輸入 AssumeUDPEncapsulationCoNtextOnSendRule,然後按 enter。

  6. 以滑鼠右鍵按一下 [ AssumeUDPEncapsulationCoNtextOnSendRule],然後選取 [ 修改]。

  7. 在 [ 數值資料 ] 方塊中,輸入下列其中一個值:

    • 0

      其為預設值。 當其設為0時,Windows 無法建立與位於 NAT 裝置背後之伺服器的安全性關聯。

    • 1

      當其設為1時,Windows 可以建立與位於 NAT 裝置背後之伺服器的安全性關聯。

    • 當它設定為2時,當伺服器和 VPN 用戶端電腦 (Windows Vista 或 Windows server 2008) 都位於 NAT 裝置之後時,Windows 可以建立安全性關聯。

  8. 選取 [確定],然後退出登錄編輯程式。

  9. 重新啟動電腦。



6樓. 回覆 : 324 時間 : 2019-07-09 01:31:52

如附件


所有程式與圖片和影片版權皆歸原作者,出版商,製造商所有,若有侵權請來信告知,謝謝。

Copyright 2013 台豐實業
如有任何問題或合作提案歡迎私訊或來信 E-Mail 與我們聯絡 service@grapes.tw  / LINE ID : 0908113192 台豐實業  
本網站僅支援桌上型PC版本,並不適用於手機,平板電腦