2026-08-04 · 協定解析 · 約 10 分鐘

Shadowrocket WireGuard 設定教學:Private Key、Peer Public Key 與 Allowed IPs 填寫方式

了解在 Shadowrocket 設定 WireGuard 時,Private Key、Public Key、Endpoint、Allowed IPs 與 MTU 的用途,以及如何對照服務商提供的設定檔。

本文重點

在 Shadowrocket(小火箭)設定 WireGuard 時,先分清本機的 Interface 與遠端的 Peer:本機 Private Key、隧道位址來自 Interface;遠端 Public Key、Endpoint、Allowed IPs 則來自 Peer。本文以使用者已有服務商及設定資料為前提,說明欄位對應、設定步驟,以及連線失敗時的檢查順序。文中位址僅供說明格式,不能用於實際連線。

一、先分清 Interface 與 Peer 的身分

WireGuard 透過金鑰配對識別通訊雙方,而非使用帳號密碼登入。服務商提供的設定檔通常包含 [Interface] 與 [Peer] 兩個區段;此處的「本機」指使用這份用戶端設定的裝置,「遠端」則是要連線的伺服器。抄寫時務必留意方向,別看到 Public Key 就把本機公鑰填進遠端公鑰欄位。

依設定區段辨別本機與遠端

Interface:本機身分
  • PrivateKey:本機私鑰,請妥善保密。
  • Address:指派給本機的隧道位址,可包含 CIDR 前綴長度。
  • MTU:隧道介面的最大傳輸單位,設定檔可能未指定。
  • DNS:設定檔提供的 DNS 解析伺服器資訊,不是遠端連線位址。
Peer:遠端身分
  • PublicKey:遠端公鑰,用來識別對端。
  • Endpoint:遠端網域名稱或 IP 位址及 UDP 連接埠。
  • AllowedIPs:屬於此 Peer 的目的位址範圍。
  • PresharedKey:選填的預先共用金鑰,雙方必須一致。

欄位歸屬應以提供給本機的用戶端設定檔為準,勿直接照抄伺服器端設定。

例如,用戶端設定中的 Address = 10.66.0.2/32 代表本機在隧道內使用的 IPv4 位址;Endpoint = 192.0.2.10:51820 才是建立通訊時要連線的遠端位址。兩者若互換,就無法取得正確的遠端入口或隧道來源位址。

二、Private Key 與 Public Key 分別要填哪個

Shadowrocket 的 WireGuard 編輯欄位中,Private Key 對應用戶端 [Interface] 下的 PrivateKey;Peer 的 Public Key 則對應用戶端 [Peer] 下的 PublicKey。介面上的名稱可能帶空格,設定檔中的關鍵字通常不帶空格,兩者含義相同。

本機金鑰檢查

來源
用戶端設定中的 [Interface]
Private Key
完整複製 PrivateKey 的值
本機 Public Key
由本機私鑰推導,供遠端登記
保密注意事項
勿將私鑰放進截圖、聊天記錄或公開文件

自行更換私鑰會改變本機身分,並須同步更新遠端登記的用戶端公鑰。

遠端金鑰檢查

來源
用戶端設定中的 [Peer]
Public Key
完整複製該 Peer 的 PublicKey
Preshared Key
僅在資料明確提供時填寫
對應關係
遠端公鑰必須與目前 Endpoint 所屬的服務相符

公鑰與預先共用金鑰是不同欄位,不能互相替代。

WireGuard 金鑰有區分大小寫,常見的文字格式是長度 44 個字元的 Base64 字串,結尾可能帶有 =。複製時請勿連同 PrivateKey = 這類欄位名稱一起複製,也不要漏掉最後的字元。格式長度正確只能表示外觀可能無誤,無法證明金鑰與伺服器登記的內容一致。

三、Endpoint、隧道位址與 MTU 的對應方式

Endpoint 包含遠端位址與 UDP 連接埠。若編輯頁將位址和連接埠分開,就分別填入對應欄位;不要把完整的「位址:連接埠」字串填進只接受位址的輸入欄。51820 是常見的示例連接埠,並非所有 WireGuard 服務都固定使用此值,實際填寫請依據自己的資料。

設定欄位 格式範例 填寫與核對重點
Endpoint 192.0.2.10:51820 拆開填寫時,位址為 192.0.2.10,連接埠為 51820;傳輸協定使用 UDP。
IPv6 Endpoint [2001:db8::10]:51820 完整 Endpoint 中的方括號用來區分位址與連接埠;獨立位址欄則依該欄接受的格式填寫。
Address 10.66.0.2/32 這是本機隧道位址;若介面將位址與前綴長度分開,請分別填入。
AllowedIPs 10.66.0.0/24 表示該 Peer 對應的位址範圍,不是本機位址,也不是網域名稱清單。
MTU 1420 單位為位元組;此數值僅供說明,並非適用於所有網路的固定答案。
PersistentKeepalive 25 單位為秒,用來定期傳送保活封包;若編輯頁有相應欄位,再依資料填寫。

MTU 會影響隧道中單一封包的大小。數值過大時,部分網路路徑可能出現小型請求正常、大型回應停滯等狀況;不過,這些現象也可能是 DNS、遠端服務或封包遺失所致。請先保留服務商指定的值;若未指定,則保留 App 預設值,不要一遇到問題就先降低 MTU。

四、Allowed IPs 與 Shadowrocket 分流規則屬於不同設定層

AllowedIPs 同時用於選擇 WireGuard Peer,以及驗證接收位址。對於要送入隧道的流量,它會根據目的位址決定使用哪個 Peer;對於已接收並解密的流量,則會檢查來源位址是否在該 Peer 允許的範圍內。它只描述 IP 網路,不接受 example.com 這類網域名稱。

0.0.0.0/0 涵蓋所有 IPv4 位址,::/0 涵蓋所有 IPv6 位址,但這不代表 Shadowrocket 一定會將所有 App 流量交由這台伺服器處理。Global Routing 的模式與 Config 規則會先影響流量走向;流量實際交給 WireGuard 後,仍須確認該 Peer 的 Allowed IPs 涵蓋目的位址。

Config:依規則使用

建議

依目前 Config 中的規則選擇策略。恢復日常設定前,請確認目標流量的規則確實指向預期的伺服器或策略群組,並檢查 FINAL 的預設處理規則。

適用情境:已有規則,且需要明確區分直連與代理流量。

Proxy:暫時排除規則影響

在適用的代理路由範圍內統一使用代理,可用來減少 Config 分流對測試的干擾;但無法修正錯誤金鑰,也無法擴大遠端實際可連線的網段。

適用情境:確認伺服器參數後,暫時排查是否因規則未命中而改走直連。

Direct:直連路徑

流量使用直連路徑。此時能開啟公網網頁,並不能證明 WireGuard 伺服器設定成功,也無法據此判斷遠端私有網段是否可連線。

適用情境:確認本機網路是否能連線至相同的公網測試目標。

若服務商只允許存取 10.66.0.0/24,請勿為了測試公網網頁而自行將 Allowed IPs 改為涵蓋雙堆疊的完整位址範圍。即使 App 接受這項變更,遠端也可能未提供公網轉送、IPv6 路由或相應的存取權限。請使用資料中明確允許存取的目標來驗證連線。

五、在 Home 新增並驗證 WireGuard

新增前請保留原始資料,並記下目前的 Global Routing 設定。Home 中的伺服器項目、Config 中的規則檔,以及 Settings 中的 App 設定是不同項目:新增伺服器並不代表已切換至某份規則檔。以下採用手動輸入方式,編輯頁實際提供的欄位請以 App 顯示為準。

  1. 核對資料

    確認用戶端設定包含 Interface 私鑰與位址,以及 Peer 公鑰、Endpoint 和 Allowed IPs;若有提供 Preshared Key 或 MTU,也一併記下,避免只複製設定檔的一部分。

  2. 選擇類型

    前往 Home → 右上角「+」→ Type → WireGuard。先確認 Type,避免將 WireGuard 公鑰填入其他協定的 Password 欄位。

  3. 填寫欄位

    依本機與遠端分組填寫。將 Endpoint 的位址和連接埠分別填入編輯頁的相關欄位,再核對 Private Key、Peer Public Key、隧道位址及可用的其他欄位。

  4. 儲存並選取

    儲存後返回 Home,點選剛新增的伺服器,並確認左側出現選取標記。若目前規則使用策略群組,也要確認群組實際選取的伺服器,不能只看 Home 中的預設選項。

  5. 測試連線

    開啟 Home 的連線開關,首次使用時依系統提示允許加入 VPN 設定。使用 Connectivity Test 檢查測試目標的連線結果,再存取服務商明確允許的目標位址。

  6. 還原設定

    若為了排查而暫時切換 Global Routing,驗證完成後請還原原本設定。前往 Settings → On Demand 檢查隨需連線設定;排查期間避免它觸發自動連線或中斷,以免影響手動測試。

六、常見問題:依身分、路徑與目標逐項排查

私鑰和公鑰都填了,為什麼還是連線逾時?

先確認 Public Key 來自用戶端檔案中的 Peer,而非本機公鑰;接著檢查 Endpoint 位址、UDP 連接埠及 Preshared Key。WireGuard 不會像帳號登入一樣保證回傳「密碼錯誤」訊息;逾時也可能是 UDP 路徑不通,不能只憑這個現象判定金鑰錯誤。

為什麼換了 Wi-Fi 就無法使用?

維持相同伺服器、目標及 Global Routing,分別測試 Wi-Fi 與行動網路,避免同時變更多個條件。若只有其中一種網路失敗,優先檢查該網路的 UDP 可達性、Endpoint 網域解析及路徑 MTU,再確認 Settings → On Demand 是否針對該網路設定了不同動作。

IP 位址可以連線,網域名稱卻打不開,該怎麼查?

先確認兩次存取指向同一個服務,再檢查目前 Config 中的 DNS 設定與網域規則。直接使用 IP 位址與使用網域名稱可能符合不同規則,也可能因 TLS 憑證名稱不同而產生不同結果;不要因此直接更換 Peer 公鑰或遠端連接埠。

同一份設定可以同時用在 iPhone 和 iPad 上嗎?

是否允許多部裝置使用,取決於既有服務的設定。兩部裝置同時使用相同私鑰與隧道位址,可能導致遠端辨識到的通訊端點反覆變動,出現一部恢復連線、另一部中斷的情況。若需同時在線,請向既有服務商確認是否能分別指派獨立身分與隧道位址。

Allowed IPs 已填入所有位址,為什麼有些網站仍走直連?

返回 Home 檢查 Global Routing,再前往 Config 核對目前啟用檔案中的 DOMAIN-SUFFIX、IP-CIDR、FINAL 等規則及其策略。Allowed IPs 不會取代 App 層級的流量分流;如果目標已被規則送往 DIRECT,就不會經過這條 WireGuard 路徑。

七、儲存前的最後檢查與敏感資料處理

完成一次可重複的驗證後,請保留原始設定與最終使用值的對照紀錄。手動修改、重新匯入或更新既有訂閱後,都應再次核對實際項目;不要假設本機編輯的值在後續更新中一定會保留。若服務位址或金鑰有所變更,請以服務商最新提供的資料為準。

Shadowrocket 是 Apple 平台的付費用戶端,主要供 iPhone 與 iPad 使用,唯一取得管道為 App Store,開發者為 Shadow Launch Technology Limited。用戶端為一次買斷;用戶端買斷 ≠ 線路方案。系統需求與購買適用性請以 App Store 頁面標示為準。本文僅說明如何填寫及驗證既有設定,不會改變服務商授予的網路存取範圍。

App Store 正版確認