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


WireGuard AllowedIPs 把 IP 前綴連繫至密碼學 peer。對出站流量,WireGuard 以最具體的相符前綴選擇負責加密封包的 peer;對入站流量,解密封包的內層來源地址必須屬於傳送方 peer 獲准使用的前綴,才會被接受。
這組雙向含義就是 WireGuard「密碼學路由」的核心。它與作業系統路由表有關,卻不是同一回事。VPN 完整指南解釋完整路徑,本文則分開每次決定,避免把路由、peer 規則與防火牆當成同一設定。
關鍵要點
- 出站
AllowedIPs把內層目的地前綴映射至 peer。- 入站
AllowedIPs授權來自該 peer 的解密封包可使用哪些內層來源前綴。- 重疊條目採用最長前綴配對,更具體的前綴優先。
0.0.0.0/0及::/0分別配對全部 IPv4 和 IPv6 地址,但本身不保證系統路由已安裝。wg-quick可按AllowedIPs推導路由;底層 peer 表及作業系統路由仍屬不同層次。
wg(8) 清楚列出 AllowedIPs 的兩個角色:傳送時,清單標示哪些目的地址要路由至 peer;接收時,它標示該 peer 可使用哪些來源地址。[1]同一前綴表會從兩個相反方向參與判斷。
假設 peer A 設定 AllowedIPs = 10.0.1.0/24。當本機 WireGuard 介面取得一個內層目的地為 10.0.1.42 的封包,這項前綴可選擇 peer A 加密。若 peer A 的驗證封包解密後,內層來源為 10.0.1.42,它亦符合來源規則;若聲稱來自 10.0.2.42,則不會通過。
公開密鑰是關聯核心。WireGuard 白皮書把公開密鑰與隧道地址之間的映射稱為密碼學路由表。[2]成功解密證明封包由哪個已設定密鑰傳送,AllowedIPs 再限制該密鑰可代表哪些內層地址。
這不表示 peer 在整個網絡「擁有」這些地址,只表示目前 WireGuard 介面針對出站選擇及入站驗證,把前綴與該 peer 關聯。
若多個前綴同時配對目的地,WireGuard 選擇最具體的一個。前綴長度代表具體程度:/24 固定的前導位比 /16 多,/32 則代表一個 IPv4 地址。IPv6 使用同一原則,/128 代表單一地址。
若 peer A 有 10.0.0.0/8,peer B 有 10.0.1.0/24,前往 10.0.1.50 的封包同時符合兩項,但 /24 較長,所以選 peer B。前往 10.2.0.5 的封包只符合 /8,所以選 peer A。結果由前綴決定,不靠條目排列先後。
圖例:1 是交給 WireGuard 的內層目的地;2 是 AllowedIPs 查找;3 是較具體的 10.0.1.0/24 配對;4 是後備 0.0.0.0/0 配對。圖中表示 WireGuard 內部的 peer 選擇,而非作業系統較早執行的路由查找。
| 目的地址 | 可用前綴 | 最終配對 |
|---|---|---|
10.0.1.50 | 10.0.0.0/8、10.0.1.0/24 | 10.0.1.0/24 |
10.2.0.5 | 10.0.0.0/8、0.0.0.0/0 | 10.0.0.0/8 |
198.51.100.20 | 10.0.0.0/8、0.0.0.0/0 | 0.0.0.0/0 |
2001:db8::20 | 只有 IPv4 條目 | 沒有 IPv6 配對 |
不要把不同 peers 的相同前綴當成負載平衡方法。WireGuard peer 設定需要明確關聯;若要動態分配流量,應採用不同前綴,或在 WireGuard 以外設立路由層。
全隧道 peer 常為 IPv4 使用 0.0.0.0/0,為 IPv6 使用 ::/0。兩者是預設前綴:除非另有更具體 peer 關聯,否則相應地址族內任何地址都可配對。它們只表示 peer 選擇,並不承諾 DNS、本地網絡例外、政策路由或洩漏防護已設定妥當。
分流會列出較窄目的地,例如公司私有子網或一部主機。只有既由系統交給 WireGuard 介面、又符合這些前綴的流量,才會加密至該 peer。AllowedIPs 不填寫 App 名稱;按應用程式排除需要作業系統或客戶端在此欄位以外實施政策。
雙棧系統要分別考慮兩個地址族。IPv4 預設前綴不會配對 IPv6。若目標是兩者都受保護,便要有完整 peer 關聯及系統路由;若決定讓 IPv6 留在隧道外,這應是明確分流政策,不是意外遺漏。
VPN 協議比較可把這些路由機制放到其他協議設計旁比較。不過,欄位本身一直只是網絡前綴清單,不是「所有 App」或「只有瀏覽器」等用戶層聲明。
WireGuard 選擇 peer 前,作業系統通常先決定哪個介面取得封包。例如系統路由可把 10.0.1.0/24 指向 wg0。封包到達 wg0 後,WireGuard 的 AllowedIPs 查找才選擇密碼學 peer。若系統路由指向其他位置,即使 peer 表完全相符,WireGuard 也不會看到封包。
wg-quick(8) 會從所有 peers 的 AllowedIPs 推導路由並加入系統,亦會特別處理預設路由。[3]這項便利令兩個層次看似一體,但它只是 helper 行為,不能證明每種 WireGuard 工具會安裝相同路由。wg、NetworkManager、流動客戶端或自訂指令稿可用不同方式管理外圍路由。
分層後可看到四種常見狀態:
AllowedIPs 都相符,封包可到達選中 peer。Endpoint 指南解釋最後這個外層目的地。把 Endpoint 當成路由,或未理解內層政策便把公網伺服器 IP 加進 AllowedIPs,可能造成循環或意外截取流量。
WireGuard 驗證並解密一個封包後,會檢查內層來源地址是否屬於傳送 peer 的 AllowedIPs。這可防止一個已設定 peer 冒用分配給另一 peer 的內層地址。若遙距用戶只獲准 10.0.0.7/32,便不能透過該關聯注入聲稱來自 10.0.0.8 的解密封包。
這項檢查很重要,但範圍有限。它不判斷 TCP 連接埠、App 身份、用戶、時間、連線狀態、域名或服務是否應接收封包。這些政策仍要由主機或網絡防火牆執行;它亦不會自動啟用介面之間的 IP 轉送。
它也不是 DNS 設定。解析器可能回傳前綴內或外的地址,但 AllowedIPs 不會選擇解析器,也不能保護由系統傳至另一介面的 DNS 查詢。路由及 DNS 行為要分別驗證。
很多人修改 AllowedIPs 只為一個決定:所有流量都走隧道,還是本地目標保持直連。如果目標只是這個,AethoVPN 把它變成一個開關,而不是前綴清單。開啟全局模式時,所有 App 都經加密隧道傳送,效果與上文的全隧道例子相同;關閉後,連往你所在地區網站的請求會繞過中轉。切換開關,再用 IP 或路由檢查確認實際路徑。開始 3 日免費試用,比較兩種狀態。需要按 App 或按前綴劃分的規則,仍要靠你自行維護的 WireGuard peer。
從一個內層目的地開始逐層追蹤。先查看勝出的作業系統路由,確認它指向預期介面,再從各 peers 找出最長 AllowedIPs 配對。確定 peer 後,才檢查 Endpoint、最近握手、計數器及回程路徑。
處理入站故障時,檢查解密封包要使用的來源前綴,以及接收介面上該 peer 的關聯。不要為每個 peer 都加 0.0.0.0/0 來「修復」現象。過寬條目會搶走出站目的地,亦擴大該 peer 可聲稱的來源地址範圍。
使用你有權控制的測試前綴,並記錄兩個地址族。ping 成功只證明一個狹窄雙向個案,不能證明所有路由、App、DNS 及防火牆政策正確。若只有一個目的地失敗,先比較它與正常目的地的最長前綴,再改動密鑰或保活計時器。
請求到達正確 peer 只是交換的一半。遠端系統仍須有返回內層來源地址的路由,其自身 AllowedIPs 亦須選擇並授權預期 peer;不對稱設定可能送達請求,卻令回覆從另一介面遺失。
應分別檢查出站封包目的地、解密入站封包來源地址及回覆目的地。過寬前綴可能因捕捉過多地址而掩蓋回程錯誤;診斷後應恢復最小必要前綴,並重試相鄰網絡。
AllowedIPs 把內層 IP 前綴映射至 WireGuard 公開密鑰 peer。wg-quick 可從清單安裝路由,但 helper 行為仍屬獨立層次。不完全是。它按內層目的地選擇出站 peer,並准許驗證入站封包使用指定來源前綴。用戶及服務存取仍需額外控制。
0.0.0.0/0 在 AllowedIPs 代表甚麼?它配對所有 IPv4 地址,可讓某個 peer 成為 IPv4 預設選擇,但作業系統仍要有正確路由,IPv6 亦要另外處理。
::/0 包括 IPv4 嗎?不包括。它是 IPv6 預設前綴。雙棧全隧道一般要同時考慮 0.0.0.0/0 和 ::/0。
可以,不同前綴長度可形成明確的最長前綴決定。對一個出站目的地,更具體的配對優先。
它會對驗證入站 WireGuard 封包作來源前綴授權,但不是管理連接埠、App、用戶或連線狀態的通用防火牆。
不會。AllowedIPs 處理內層前綴及 peer 選擇;Endpoint 是聯絡 peer 所用的目前外層地址及 UDP 連接埠。
wg-quick 把前綴推導成作業系統路由,以簡化設定。這是 helper 的文件行為,WireGuard peer 表在概念上仍然獨立。
來源:
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 日。
延伸閱讀:
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。