簡單地說,macOS Sierra與iOS 10發表後,大家忽然發現Apple不再支援PPTP,所以一定得設定其他的VPN型態。若不要另外裝client,用L2TP是最方便的,SSL VPN雖然好,但若沒有安裝Agent要連線到任一電腦或是非網頁服務還是挺麻煩的。
這裡假設已經知道怎麼設定PPTP Server。打開RAS管理程式,路由及遠端管理
把連接埠的數量訂好
用憑證是很麻煩的事,所以設定成預先共用金鑰,只要講好打這一串文字就好,類似WiFi的密碼。
在防火牆除了要設定 UDP 1701 (L2TP)之外,還要開UDP 500 (IPSec) 及UDP 4500 (NAT traversal)。
但是我測試後,在Android/macOS/iOS都可以,但Windows就怎麼也不會過,為什麼呢?查了很久,終於詢問高手後得知答案,原來是:
若要建立和設定
這裡假設已經知道怎麼設定PPTP Server。打開RAS管理程式,路由及遠端管理
把連接埠的數量訂好
用憑證是很麻煩的事,所以設定成預先共用金鑰,只要講好打這一串文字就好,類似WiFi的密碼。
在防火牆除了要設定 UDP 1701 (L2TP)之外,還要開UDP 500 (IPSec) 及UDP 4500 (NAT traversal)。
但是我測試後,在Android/macOS/iOS都可以,但Windows就怎麼也不會過,為什麼呢?查了很久,終於詢問高手後得知答案,原來是:
根據預設,Windows Vista 及 Windows Server 2008 作業系統不支援網際網路通訊協定安全性 (IPsec) 網路位址轉譯 (NAT) 周遊 (NAT-T) 安全性關聯到位於 NAT 裝置後面的伺服器。因此,如果虛擬私人網路 (VPN) 伺服器位於 NAT 裝置後面, Windows vista 的 VPN 用戶端電腦或 Windows Server 2008 為基礎的 VPN 用戶端電腦就無法進行第二層通道通訊協定 (L2TP) / IPsec 連線到 VPN 伺服器。此案例包含執行 Windows Server 2008 的 VPN 伺服器與 Microsoft Windows Server 2003。步驟
因為 NAT 裝置的轉譯網路流量的方式,所以,您架設在 NAT 裝置後方的伺服器,然後使用 [IPsec NAT-T 環境時,可能會遇到未預期的結果。因此,如果您必須有 IPsec 進行通訊,我們建議您的所有伺服器使用可以從網際網路連接到之公用 IP 位址。不過,如果您有將 NAT 裝置後方的伺服器,然後使用 [IPsec NAT-T 環境,則您可以變更的登錄值,在 VPN 用戶端電腦與 VPN 伺服器上啟用通訊。
若要建立和設定
AssumeUDPEncapsulationContextOnSendRule
登錄值,請依照下列步驟執行︰- 使用者是系統管理員群組的成員身分登入 Windows Vista 用戶端電腦。
- 按一下 [開始] [,指向 [所有程式]、 按一下 [附屬應用程式、 按一下 [執行]、 輸入 regedit,然後按一下 [確定]。如果 使用者帳戶控制] 對話方塊顯示在螢幕上,並提示您升級系統管理員 Token,按一下 [繼續]。
- 找出並按一下下列登錄子機碼︰HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent附註AssumeUDPEncapsulationContextOnSendRule使用 Microsoft Windows XP Service Pack 2 (SP2) 的 DWORD 值-基礎 VPN 用戶端電腦。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
- 在 [編輯] 功能表上,指向 [新增],然後按一下 [ DWORD (32 位元) 值]。
- 輸入AssumeUDPEncapsulationContextOnSendRule,然後再按 ENTER 鍵。
- 以滑鼠右鍵按一下AssumeUDPEncapsulationContextOnSendRule,,,然後按一下 [修改]。
- 在 [數值資料] 方塊中,輸入下列值之一︰
- 0
值為 0 (零) 會將 Windows 設定,讓它無法建立與伺服器位於 NAT 裝置後面的安全性關聯。 - 1
值為 1 設定 Windows,以便它可以建立與伺服器位於 NAT 裝置後面的安全性關聯。 - 2
值為 2 設定 Windows,以便伺服器與 Windows Vista 或 Windows Server 2008 為基礎的 VPN 用戶端電腦同時 NAT 裝置後面時,它可以建立安全性關聯。
- 0
- 按一下 [確定],然後結束 [登錄編輯程式。
- 重新啟動電腦。
留言
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
是在伺服器設置,還是使用者端設置?
如果找不到這個機碼怎麼處理呢?
謝謝。
我的狀況是win7更改了這個機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
以後可以連上。
但是手機都無法用L2TP連不上windows 2008的vpn伺服器。(但是用PPTP可以。)
Android在類型請選 L2TP/IPSec PSK ,
L2TP密碼和IPSec識別碼 都別設定 ,
只要設定 IPSec 預先共用金鑰就好。
轉寄路徑是內網的網段,例如 192.168.0.0/16。
我目前還是不得其門而入。
另外我發現iPhone的設定沒有轉寄路徑的欄位。
我會再摸索看看,有突破再與你分享。
謝謝。