Skip to main content

OpenWrt PPTP 穿透

安裝模組kmod-nf-nathelper-extra

kmod-nf-nathelper-extra 是 OpenWrt 中的一個內核模組軟體包,它的核心功能是提供非標準網路協定的 ALG(Application Layer Gateway,應用層網關)支援,解決傳統 NAT(網路地址轉換)無法處理的複雜連線穿透問題。
以下為您拆解它的具體工作原理與功能:
1. 為什麼需要它?(解決 NAT 的先天缺陷)
傳統的 NAT(如家用路由器的 IP 分享功能)只負責修改 IP 封包表頭的 來源/目的 IP 和 TCP/UDP 端口號。
但是,有些傳統的網路協定(例如 PPTP、SIP、H.323)非常特殊:
  • 它們會把內網的私有 IP 或端口號,寫在封包內部的「數據載荷(Data Payload)」裡。
  • 或者是除了標準的 TCP 端口外,還需要建立另一條完全不同協定的通道(例如 PPTP 撥號除了 TCP 1723 之外,還必須傳輸 GRE 協定的數據)。
如果只靠普通 NAT,路由器看不懂也沒辦法修改封包裡面的私有 IP,外部伺服器就無法把資料送回內網客戶端,導致連線失敗(這就是 PPTP 常見卡在「正在核對使用者名稱和密碼」或錯誤 619 的原因)。
2. kmod-nf-nathelper-extra 的核心功能
這個模組包裝了 Linux 核心的 nf_conntrack(連線追蹤)與 nf_nat 的擴充元件,專門用來當作這些特殊協定的「翻譯官」:
  • 深度封包解析(ALG): 它會主動去監聽、攔截並解析特定協定(如 TCP 1723 的 PPTP 控制訊號)。
  • 動態修改內文: 當發現內網客戶端把自己的私有 IP(如 192.168.1.100)寫在封包內文中時,該模組會動態把它修改為路由器的 WAN 端公網 IP。
  • 動態開啟防火牆通道(Pinholing): 它會告訴防火牆:「等一下會有一個關聯的 GRE 協定(協定號 47)封包進來,這是剛剛那個客戶端申請的,請主動放行並轉發給它。」
3. 這個軟體包裡面包含哪些協定?
kmod-nf-nathelper-extra 是一個集合包,安裝它之後,您的 OpenWrt 會同時獲得以下幾種常見傳統協定的穿透能力:
  • PPTP / GRE(虛擬專線網路)
  • AMANDA(備份系統)
  • H.323(舊式視訊會議/網路電話)
  • IRC(網際網路中繼聊天)
  • MMS(微軟早期多媒體串流協定)
  • PPTP(點對點隧道協定)
  • SIP(現代 VoIP 網路電話核心協定)
總結
簡單來說,kmod-nf-nathelper-extra 就是讓 OpenWrt 路由器變聰明,能夠看懂 PPTP 等複雜協定的內容,並在防火牆上動態開路、修改 IP,從而完美實現 PPTP / GRE 的 NAT 穿透。


從網頁介面上搜尋套件或指令安裝

opkg update
opkg install kmod-nf-nathelper-extra

重啟防火牆或重啟

service firewall restart

Windows 11 PPTP設定

建立PPTP VPN後更改加密設定

image.png