在 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。
- 若要測試 MTU,請先記下原值,每次只修改這個欄位,重新連線後再重複存取相同的測試目標。
- 若目前值為 1420,可先將 1380 作為小幅調整的測試值;若沒有改善,請還原原值,不要持續降低。
- 不要將設定檔中的 DNS 位址填入 Endpoint,也不要假設新增伺服器時會自動套用檔案中的所有 DNS 設定。
四、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 顯示為準。
-
核對資料
確認用戶端設定包含 Interface 私鑰與位址,以及 Peer 公鑰、Endpoint 和 Allowed IPs;若有提供 Preshared Key 或 MTU,也一併記下,避免只複製設定檔的一部分。
-
選擇類型
前往 Home → 右上角「+」→ Type → WireGuard。先確認 Type,避免將 WireGuard 公鑰填入其他協定的 Password 欄位。
-
填寫欄位
依本機與遠端分組填寫。將 Endpoint 的位址和連接埠分別填入編輯頁的相關欄位,再核對 Private Key、Peer Public Key、隧道位址及可用的其他欄位。
-
儲存並選取
儲存後返回 Home,點選剛新增的伺服器,並確認左側出現選取標記。若目前規則使用策略群組,也要確認群組實際選取的伺服器,不能只看 Home 中的預設選項。
-
測試連線
開啟 Home 的連線開關,首次使用時依系統提示允許加入 VPN 設定。使用 Connectivity Test 檢查測試目標的連線結果,再存取服務商明確允許的目標位址。
-
還原設定
若為了排查而暫時切換 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 路徑。
七、儲存前的最後檢查與敏感資料處理
完成一次可重複的驗證後,請保留原始設定與最終使用值的對照紀錄。手動修改、重新匯入或更新既有訂閱後,都應再次核對實際項目;不要假設本機編輯的值在後續更新中一定會保留。若服務位址或金鑰有所變更,請以服務商最新提供的資料為準。
- 身分一致:本機 Private Key 必須與遠端登記的用戶端公鑰成對,Peer Public Key 則須對應目前的遠端服務。
- 位址明確:Endpoint 是遠端入口,Address 是本機隧道位址,Allowed IPs 是 Peer 對應的 IP 網路範圍。
- 路徑可核對:記錄測試使用的網路、Global Routing、選取的伺服器與目標位址,每次只變更一項條件。
- 保留復原方式:變更 MTU、規則或連線模式前先記下原值;若驗證未通過,請還原設定,別一次疊加多項測試變更。
- 敏感資料去識別化:尋求協助時,請移除 Private Key、Preshared Key 與既有訂閱連結中的憑證資料;分享設定檔前也要做相同檢查。
Shadowrocket 是 Apple 平台的付費用戶端,主要供 iPhone 與 iPad 使用,唯一取得管道為 App Store,開發者為 Shadow Launch Technology Limited。用戶端為一次買斷;用戶端買斷 ≠ 線路方案。系統需求與購買適用性請以 App Store 頁面標示為準。本文僅說明如何填寫及驗證既有設定,不會改變服務商授予的網路存取範圍。