開啟 3 天免費試用
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。


WireGuard 漫遊讓 peer 公開密鑰身份保持不變,同時准許外層 IP 地址及 UDP 連接埠改變。來自新來源地址或連接埠的封包正確通過驗證後,WireGuard 會更新該 peer 的目前 Endpoint,其後流量便傳往新位置。系統不會信任未經驗證的「我已移動」訊息。
VPN 完整指南解釋完整受保護連線。本文只處理 WireGuard 協議層的 Endpoint 更新,而非你切換網絡時作業系統及應用程式可能經歷的全部事件。
關鍵要點
- 公開密鑰識別 peer,Endpoint 記錄該 peer 目前在哪裏可達。
- 最近一個正確驗證封包可更新 peer 外層 IP 地址及 UDP 連接埠。
- 移動後,漫遊 peer 通常要先從新路徑傳送有效封包。
- NAT 狀態及可選 PersistentKeepalive 會影響可達性,但不定義身份,也不保證恢復。
- 隧道恢復不代表每個 TCP、媒體、DNS 或 App 工作階段都可原樣繼續。
wg(8) 說明,已設定 Endpoint 會自動更新為來自相應 peer、最近一個正確驗證封包的來源 IP 地址及連接埠。[1]更新期間公開密鑰不變,因而清楚分開密碼學身份與臨時網絡位置。
手機使用家中 Wi-Fi 時,伺服器可能看到 198.51.100.7:42310。轉至流動網絡後,網絡商 NAT 或讓它顯示為 203.0.113.9:51124。只要手機從流動路徑送出有效 WireGuard 封包,伺服器便驗證它仍是同一 peer,再以新組合取代舊 Endpoint。
即使外層地址改變,10.0.0.7 等內層隧道地址一般仍保持不變。App 可繼續向同一內層 peer 定址,但實際工作階段能否保留,還視乎時序、作業系統行為,以及 Endpoint 更新以外的傳輸協議。
| 屬性 | 一般漫遊期間的表現 |
|---|---|
| peer 公開密鑰 | 保持不變 |
| 外層來源 IP 及連接埠 | 可以改變 |
| 已記錄 Endpoint | 收到有效封包後更新 |
| 內層隧道地址 | 通常保持不變 |
| 系統路由可用性 | 仍須有效 |
| App 工作階段 | 可繼續、重試或獨立失敗 |
WireGuard 白皮書描述 peer 從驗證資料學習最新互聯網 Endpoint。[2]新來源必須先通過驗證才會被接受。隨機 UDP 封包不能向監聽連接埠冒充另一 peer,也不能重新導向其明文流量。
圖例:1 是 peer 舊外層地址;2 是轉換網絡後的新外層地址;3 是遠端 peer 記錄的 Endpoint;4 是令 Endpoint 更新的正確驗證 UDP 封包。虛線舊路徑已陳舊,實線新路徑只有在有效流量到達後才可用。
移動一方通常先送出封包,因為仍知道伺服器位置。遙距客戶端可保留伺服器穩定主機名稱或公網地址作為設定 Endpoint。客戶端本地網絡改變後,下一個握手或資料封包從新介面送出,並建立新 NAT 映射。伺服器驗證封包、學習映射,再在該處回覆。
Endpoint 指南解釋 Endpoint 為何是外層 地址:UDP 連接埠,而不是隧道地址。漫遊會改變這個運作目的地,卻不會修改 peer 公開密鑰關聯。
應用程式流量、握手重試都能觸發;可選保活亦可在閒置間隔到期後產生驗證流量。協議毋須信任一種專門的網絡轉換通知,才確認 peer 新位置。
時序仍然重要。如果流動作業系統暫停 VPN 程序、延遲介面回調或等待一段時間才重試,在有效流量從新位置送出前,遠端仍記住舊 Endpoint。WireGuard 學習規則不能處理裝置尚未傳送的封包。
NAT 會建立臨時外層地址及連接埠映射。更換接入網絡通常會得到不同映射,即使裝置內層隧道地址未變。新路徑上首個出站 WireGuard 封包,向遠端提供這個映射的驗證觀察。
PersistentKeepalive 的作用較窄。NAT 後 peer 可週期傳送驗證空封包,避免目前映射在靜默時到期。PersistentKeepalive 說明解釋 25 秒為何只是常用例子,而非漫遊保證。
保活在轉換前後可有兩項幫助:沒有 App 資料時,它或會主動使用新路徑;更新後,它亦可維持新 NAT 映射。但它不能令封鎖 UDP 的網絡放行,不能喚醒無限期暫停的程序,亦不能修正錯誤路由或密鑰。
若兩個 peers 同時移動,而且誰都沒有保留對方可用位置,Endpoint 學習會遇到啟動問題。只有驗證封包先到達,位置才能更新;WireGuard 本身不提供通用會合或發現服務,替雙方找出兩個未知新地址。
協議層漫遊不會決定 Wi-Fi 消失後作業系統該使用哪個本地介面。系統仍要更新預設路由、令新網絡可用,並把相關內層封包交給 WireGuard。登入門戶、沒有數據的流動計劃、IPv4/IPv6 變化及本地防火牆都可能在此阻截。
wg-quick(8) 可安裝由 AllowedIPs 推導的路由,並管理預設路由。[3]這項設定不同於 WireGuard 學習 peer Endpoint。正確的 peer 更新不能補償陳舊系統路由,正確路由亦不能驗證 peer。
分層順序有助定位轉換問題:
步驟 1 及 2 的一般症狀應參考 Wi-Fi/流動網絡轉換指南。把所有轉網故障都稱為 WireGuard 漫遊失敗,會掩蓋流程實際在哪裏停止。
WireGuard 可快速恢復驗證封包流,卻不會保留每個上層連線。TCP 工作階段可能容忍短暫停頓並重傳,也可能觸發 App 逾時;即時通話或重新協商媒體;DNS 查詢或透過新解析路徑重試;瀏覽器亦可能建立替代連線。
內層地址保持穩定會有幫助,但本地系統仍可移除路由或暫停 socket,遠端服務也可令工作階段到期。「握手已更新」及「視像通話無感」是兩種驗收。
應分別量度。隧道方面記錄轉換前後握手時間、傳送計數及遠端 Endpoint;App 方面記錄工作階段是繼續、重試還是重建。這樣不會把 App 政策誤歸因於 WireGuard Endpoint 學習規則。
想從用戶一方觀察漫遊,可以在 Android 手機上連接 AethoVPN,開始一次長時間下載或通話,然後從 Wi-Fi 切換到流動數據,記錄隧道會否重新連線、中斷持續多久,以及 App 工作階段是否延續。保持同一個 App 內位置,讓網絡成為唯一改變的因素。該 App 沒有文件說明手動 WireGuard 欄位,也不承諾每個工作階段都能在網絡切換後延續,所以每次結果都只是量度,而不是保證。測試前先下載 Android App。
Endpoint 更新受驗證限制,離路徑傳送者不能任意提供未驗證替代地址。合法 peer 移動時,加密及身份驗證仍有效。
不過,WireGuard Known Limitations 記錄一種主動中間人情況:攻擊者可令已記錄 Endpoint 重新導向受害地址並造成阻斷服務。[4]沒有密鑰的攻擊者仍不能解密內容或冒充 peer。
「只有驗證封包更新 Endpoint」描述一般規則,但「Endpoint 學習絕無濫用可能」超出官方邊界。高風險模型還要考慮目前實作及官方限制。
在兩個你獲授權測試的網絡之間進行一次受控轉換。保持密鑰、peer 設定、遠端伺服器和 App 不變。記錄目前的 Endpoint 和最近一次握手,轉換接入路徑,產生合法的隧道流量,然後觀察 Endpoint 是否變為新的來源位址映射。
然後把閒置和活躍兩種情況分開測試。如果活躍流量能遷移,而閒置的 peer 之後收不到數據,問題可能在於 NAT 狀態的保留時間。如果新介面上根本沒有封包送出,便檢查作業系統的路由或 App 生命週期。如果 UDP 已送出卻沒有收到經驗證的回應,便檢查外層可達性、伺服器記錄、密鑰、時間或過濾。
不要憑一個 App 裏的載入圖示推斷協議行為。封包層面的 Endpoint 更新、正常的隧道交換和 App 不中斷,是三個範圍逐步擴大的觀察結論。
不會。穩定公開密鑰用來識別 peer,漫遊只更新聯絡它所用的目前外層 IP 及 UDP 連接埠。
一般 Endpoint 學習要求來自已設定 peer 的正確驗證封包,隨機 UDP 輸入不能通過身份檢查。
通常是移動客戶端,因為它仍保留可用伺服器 Endpoint。出站封包建立新 NAT 映射,並讓伺服器學習新來源。
不必。App 資料或握手流量都可觸發更新。只有閒置期間確實需要週期驗證流量時,保活才有用。
若雙方都不知道對方可達的新地址,封包便不能先到達並教授新 Endpoint。WireGuard 本身不提供通用會合服務。
不一定。穩定內層地址及快速隧道恢復會有幫助,但 TCP、App、作業系統及遠端服務各有逾時及轉換行為。
不能。Endpoint 學習只有在有效 UDP 封包能穿過新路徑時運作,不會繞過本地政策、登入門戶、錯誤路由或傳輸封鎖。
來源:
wg(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8wg-quick(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8Sources checked 2026 年 9 月 12 日。
延伸閱讀:
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。