首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VPN 原理與 PPTP 協議詳解:RAW Socket 能否穿透?

     編輯:程式設計綜合問答

核心結論

  • VPN 工作在 IP 層(第 3 層):通過虛擬網卡攔截 IP 包,封裝後發送到隧道。
  • RAW Socket 發送的鏈路層幀(第 2 層)不會被 VPN 捕獲,除非 VPN 驅動下沉到 NDIS 層(罕見)。

PPTP 協議澄清

  • PPTP = Point-to-Point Tunneling Protocol。
  • 數據封裝:PPP 幂 → GRE (IP 協議號 47) → IP 包。
  • 控制通道:TCP 1723 端口建立會話。
  • 說「PPTP 基於 TCP」不準確,控制面用 TCP,數據面用 GRE over IP。
  • 第 2 層隧道協議還有 L2TP(常配合 IPsec),PPTP 相對老舊、安全性較弱。

RAW Socket 模擬 PPTP?

極其困難:需自行實現 PPP 協商、GRE 封裝、TCP 控制狀態機,且需處理重傳、流控、認證(MS-CHAPv2 等)。建議直接用系統 VPN API 或成熟庫(如 strongSwan、OpenVPN)。

推薦資源

  • 《TCP/IP 詳解 卷 1》第 4 章鏈路層、第 11 章隧道技術。
  • RFC 2637 (PPTP), RFC 2661 (L2TP), RFC 4301 (IPsec)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved