WireGuard 中的 AllowedIPs 是甚麼意思?

WireGuard 中的 AllowedIPs 是甚麼意思?

Ryan Foster
2026年9月12日· 更新於 2026年9月13日· 7 分鐘讀完

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 表及作業系統路由仍屬不同層次。

WireGuard AllowedIPs 的雙向含義

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 關聯。

最長前綴如何選擇 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.5010.0.0.0/8、10.0.1.0/2410.0.1.0/24
10.2.0.510.0.0.0/8、0.0.0.0/010.0.0.0/8
198.51.100.2010.0.0.0/8、0.0.0.0/00.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」或「只有瀏覽器」等用戶層聲明。

AllowedIPs 與系統路由表的分別

WireGuard 選擇 peer 前,作業系統通常先決定哪個介面取得封包。例如系統路由可把 10.0.1.0/24 指向 wg0。封包到達 wg0 後,WireGuard 的 AllowedIPs 查找才選擇密碼學 peer。若系統路由指向其他位置,即使 peer 表完全相符,WireGuard 也不會看到封包。

wg-quick(8) 會從所有 peers 的 AllowedIPs 推導路由並加入系統,亦會特別處理預設路由。[3]這項便利令兩個層次看似一體,但它只是 helper 行為,不能證明每種 WireGuard 工具會安裝相同路由。wg、NetworkManager、流動客戶端或自訂指令稿可用不同方式管理外圍路由。

分層後可看到四種常見狀態:

  1. 系統路由及 AllowedIPs 都相符,封包可到達選中 peer。
  2. 系統路由缺失,封包在 WireGuard 判斷前已前往其他介面。
  3. 系統路由進入 WireGuard,但沒有 peer 前綴配對,不能選 peer。
  4. 兩次查找均正確,但 peer Endpoint 不可達,選擇及加密成功而外層交付失敗。

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。

如何排查 AllowedIPs 錯誤?

從一個內層目的地開始逐層追蹤。先查看勝出的作業系統路由,確認它指向預期介面,再從各 peers 找出最長 AllowedIPs 配對。確定 peer 後,才檢查 Endpoint、最近握手、計數器及回程路徑。

處理入站故障時,檢查解密封包要使用的來源前綴,以及接收介面上該 peer 的關聯。不要為每個 peer 都加 0.0.0.0/0 來「修復」現象。過寬條目會搶走出站目的地,亦擴大該 peer 可聲稱的來源地址範圍。

使用你有權控制的測試前綴,並記錄兩個地址族。ping 成功只證明一個狹窄雙向個案,不能證明所有路由、App、DNS 及防火牆政策正確。若只有一個目的地失敗,先比較它與正常目的地的最長前綴,再改動密鑰或保活計時器。

為何回程路徑也必須相符?

請求到達正確 peer 只是交換的一半。遠端系統仍須有返回內層來源地址的路由,其自身 AllowedIPs 亦須選擇並授權預期 peer;不對稱設定可能送達請求,卻令回覆從另一介面遺失。

應分別檢查出站封包目的地、解密入站封包來源地址及回覆目的地。過寬前綴可能因捕捉過多地址而掩蓋回程錯誤;診斷後應恢復最小必要前綴,並重試相鄰網絡。

總結

  • AllowedIPs 把內層 IP 前綴映射至 WireGuard 公開密鑰 peer。
  • 出站查找按最長相符目的前綴選擇 peer。
  • 入站查找授權解密封包可使用哪些來源地址。
  • 系統路由先決定封包會否進入 WireGuard 介面。
  • wg-quick 可從清單安裝路由,但 helper 行為仍屬獨立層次。

常見問題

AllowedIPs 是指准許哪些 IP 使用 VPN 嗎?

不完全是。它按內層目的地選擇出站 peer,並准許驗證入站封包使用指定來源前綴。用戶及服務存取仍需額外控制。

0.0.0.0/0 在 AllowedIPs 代表甚麼?

它配對所有 IPv4 地址,可讓某個 peer 成為 IPv4 預設選擇,但作業系統仍要有正確路由,IPv6 亦要另外處理。

::/0 包括 IPv4 嗎?

不包括。它是 IPv6 預設前綴。雙棧全隧道一般要同時考慮 0.0.0.0/0 和 ::/0。

AllowedIPs 可以包含重疊前綴嗎?

可以,不同前綴長度可形成明確的最長前綴決定。對一個出站目的地,更具體的配對優先。

AllowedIPs 是防火牆嗎?

它會對驗證入站 WireGuard 封包作來源前綴授權,但不是管理連接埠、App、用戶或連線狀態的通用防火牆。

修改 AllowedIPs 會改變 Endpoint 嗎?

不會。AllowedIPs 處理內層前綴及 peer 選擇;Endpoint 是聯絡 peer 所用的目前外層地址及 UDP 連接埠。

為甚麼設定 AllowedIPs 後 wg-quick 會加入路由?

wg-quick 把前綴推導成作業系統路由,以簡化設定。這是 helper 的文件行為,WireGuard peer 表在概念上仍然獨立。

來源:

  1. WireGuard Tools, wg(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
  2. WireGuard, “WireGuard: Next Generation Kernel Network Tunnel”: https://www.wireguard.com/papers/wireguard.pdf
  3. WireGuard Tools, wg-quick(8): https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8

Sources checked 2026 年 9 月 12 日。


延伸閱讀:

開啟 3 天免費試用

註冊即可免費體驗全部高級功能。

*只限新用戶;每位用戶只可獲得一次試用。

WireGuard 中的 AllowedIPs 是甚麼意思? | AethoVPN