本文適合已取得服務商提供的 WireGuard 設定,並需要在 Shadowrocket(小火箭)中核對參數的使用者。先分清本機身分與遠端 Peer,再確認位址、金鑰、AllowedIPs、DNS 和 MTU;最後每次只修改一項,逐步找出連線問題。文中的位址與連接埠僅用來說明欄位關係,並非可用的連線資料。
1. 先分清 Interface 與 Peer 的角色
WireGuard 設定通常以 [Interface] 描述本機的隧道介面,以 [Peer] 描述允許通訊的遠端。Shadowrocket 的新增頁面可能會將這些內容拆成個別欄位,因此不要只按照檔案中的排列順序填寫,更不可互換兩處的金鑰。
本機的 PrivateKey 用來識別本機,遠端必須登錄與之對應的本機公鑰。本機設定中的 Peer PublicKey 則用來驗證遠端身分。兩者通常都是 Base64 文字,光看長度或結尾符號無法判斷該填在哪個欄位。
參數歸屬:本機介面與遠端 Peer
Interface:本機身分
PrivateKey:本機私鑰,必須妥善保密。Address:伺服器分配給本機的隧道位址。MTU:隧道介面的封包大小上限。DNS:設定檔可能附帶的解析設定,不屬於 WireGuard 握手參數。
Peer:遠端身分與路徑
PublicKey:遠端公鑰,不是本機公鑰。PresharedKey:選填的預共享金鑰,雙方必須一致。Endpoint:遠端公開位址與 UDP 連接埠。AllowedIPs:與此 Peer 關聯的目的地與來源位址範圍。
先確認每個參數屬於哪一端,再對應填入欄位;修改本機私鑰後,也必須同步更新遠端登錄的本機公鑰。
2. 逐欄核對位址、金鑰與連接埠
Address 是隧道內部位址,不是遠端伺服器位址。例如 10.66.0.2/32 代表單一 IPv4 主機位址;其中 /32 是前綴長度,不可任意改成 /24。若頁面將位址與前綴拆成不同欄位,請分別填寫,不要直接照貼完整一行。
| 來源欄位 | 欄位用途 | 常見填錯情況與核對方式 |
|---|---|---|
PrivateKey | 本機 WireGuard 私鑰。 | 不要填成遠端 PublicKey;複製時請檢查換行、空格及是否有遺漏字元。 |
Address | 分配給本機的 IPv4 或 IPv6 隧道位址。 | 不要填入 Endpoint;保留原有前綴長度,並分別核對雙堆疊參數。 |
Peer PublicKey | 遠端 Peer 的公鑰。 | 不要以本機公鑰代替;必須與實際連線的遠端相符。 |
PresharedKey | 雙方共用的選填金鑰。 | 原始設定未提供時不要自行編造;一端有值、另一端沒有,會造成通訊失敗。 |
Endpoint | 遠端位址與 UDP 連接埠。 | 192.0.2.10:51820 中的位址與連接埠應分別填入對應欄位;此位址僅供說明。 |
PersistentKeepalive | 閒置時維持 NAT 對應的傳送間隔,單位為秒。 | 25 是常見範例,不是通用必填值,也不是連線逾時時間。 |
WireGuard 使用 UDP。連接埠 51820 是常見設定範例,不是協定指定的連接埠,也不代表填入該連接埠的任何位址都能使用。Endpoint 為 IPv6 時,設定檔通常寫作 [2001:db8::10]:51820;若介面將位址與連接埠分開,方括號與冒號的輸入方式請依欄位格式為準。
3. 在 Home 新增項目並進行可重複的測試
操作前先備份原始設定,並記錄目前使用的 Wi-Fi 或行動網路,以及原本的 Global Routing 選項。若設定來自既有訂閱,先確認訂閱內容確實包含 WireGuard 項目;更新可能會重新建立項目,手動修改前應記錄差異,以免後續被覆蓋時誤以為設定沒有儲存。
-
準備原始資料
確認資料包含本機 PrivateKey、隧道 Address、遠端 PublicKey 和 Endpoint。若資料只有公鑰或連接埠,請先向原始設定提供者確認;無法據此推算完整連線參數。
-
選擇協定
前往
Home → + → Type → WireGuard。依編輯頁面上的實際欄位填入遠端位址、連接埠、本機金鑰和隧道位址;不同介面的欄位可能會將位址與前綴拆開,請勿將整份設定檔貼入單一金鑰欄位。 -
核對遠端參數
填入 Peer PublicKey,並核對現有資料中的 PresharedKey、AllowedIPs 和保活間隔。若目前頁面沒有相應欄位,請勿改填到名稱相似的其他欄位;應先確認該匯入方式支援哪些參數。
-
儲存並連線
儲存後返回 Home,選取剛新增的項目,再開啟連線開關。首次連線時,請依系統提示允許 VPN 設定。系統顯示 VPN 狀態,只代表隧道介面已啟動,不能單獨證明遠端已成功回應。
-
記錄測試結果
在
Home → Global Routing → Proxy下進行短時間對照測試,確認所選項目能承載目標請求;記下測試目標、錯誤狀況和網路類型。完成後恢復原本的 Config 或其他日常設定,避免長期保留測試設定。
測試期間請檢查 Settings → On Demand 是否設有自動連線條件。On Demand 負責觸發系統連線,不負責決定網域要套用哪條規則;若切換網路後因此重新連線,請在紀錄中註明,避免將自動重新連線誤認為修改 WireGuard 參數的效果。
4. AllowedIPs 與 Global Routing 屬於不同層級的規則
WireGuard 的 AllowedIPs 會將 IP 網段與 Peer 關聯:傳送時依此選擇可承載目標位址的 Peer;接收時則限制該 Peer 可使用的內部來源位址。它不接受網域名稱,也不等同於 Shadowrocket 的 DOMAIN-SUFFIX、GEOIP、IP-CIDR 或 FINAL。
0.0.0.0/0代表所有 IPv4 位址,不包含 IPv6。::/0代表所有 IPv6 位址;填入此值不代表遠端已提供可用的 IPv6 出口。10.66.0.0/24僅涵蓋對應的私有網段,並非所有網際網路目的地。- 若匯入或編輯方式提供 AllowedIPs 欄位,請保留原有用途;不要為了「讓所有網頁都能開啟」而盲目擴大網段。
在 Shadowrocket 中,還要確認請求最後是否選到 WireGuard 項目。Config 會依目前設定中的規則與策略處理請求,不能假設未符合規則的流量一定會直連,最終結果取決於兜底設定。即使 AllowedIPs 涵蓋範圍很廣,符合 DIRECT 的請求也不會因此自動改走所選的 WireGuard 路徑。
Config:依設定判斷
建議依照目前設定中的規則與策略處理請求。檢查目標是否符合預期規則,以及對應策略是否確實選取 WireGuard 項目;也要確認 FINAL 的兜底方向。
適用情況:確認隧道可用後,恢復日常規則分流。
Proxy:代理路徑對照
短時間用來核對所選的代理路徑,減少規則選擇對排查的干擾。此設定無法修復錯誤金鑰、無法連通的 UDP Endpoint,或遠端缺少路由的問題。
適用情況:分辨「流量沒有選到該項目」與「該項目本身無法使用」。
Direct:直連基準
以直連作為網路基準,觀察相同目標在不經代理路徑時的狀況。Direct 下網頁正常,不代表 WireGuard 參數正確。
適用情況:確認本機網路是否原本就無法連線至測試目標。
5. DNS 與 MTU:連線後仍異常時的檢查項目
DNS 決定網域名稱如何解析
WireGuard 握手不依賴設定檔中的 DNS 欄位;但若 Endpoint 使用網域名稱,建立外層連線前仍須先解析。隧道建立後,網頁網域也需要解析。因此,「Endpoint 解析失敗」與「服務網域解析失敗」應分開記錄,不要一概歸因為金鑰錯誤。
設定檔中的 DNS 通常屬於用戶端設定工具的延伸功能,並非 WireGuard 協定本身交換的參數。匯入後,請前往 Config 檢查目前啟用設定中的 DNS 選項,確認 DNS 請求實際使用的路徑;不要假設原始檔案中的 DNS 一定會覆蓋 Shadowrocket 目前的設定。
- 若 DNS 位址是隧道內的私有位址,請先確認隧道路徑與遠端存取權限可用;在連線尚未建立前使用該位址,可能形成依賴問題。
- 若只有特定網域無法使用,請記錄是查詢逾時、沒有結果,還是解析到錯誤位址,再核對 DNS 設定與符合的規則。
- 不要只憑「直接連 IP 正常」就下結論。HTTPS 也涉及網域、憑證與 SNI,透過 IP 開啟的頁面可能與網域頁面並非同一項服務。
MTU 決定隧道內封包的大小上限
MTU 過大時,常見狀況是看似已連線、少量文字可以載入,但大型頁面、上傳或較大的資料傳輸停滯。這只是判斷線索,並非確診結果;遠端壅塞、UDP 封包遺失或伺服器限制也可能造成類似狀況。MTU 過小則可能增加封包數量與封裝負擔,並非越小越穩定。
- 先保留設定提供者給的 MTU,並記錄在相同網路、相同目標與相同操作下的狀況。
- 若原值為
1420,可將1380作為一次較小值的對照;這些數字僅供測試,不是適用於所有網路的最佳值。 - 儲存後中斷連線再重新連線,接著重複原本的測試。這次不要同時更換 DNS、Endpoint 或金鑰。
- 若狀況沒有改善,請恢復原值,接著檢查路徑封包遺失與遠端狀態;IPv6 隧道的 MTU 也不應任意調低至小於最小鏈路 MTU
1280。
6. 依狀況排查,不要用單次延遲測試取代驗證
延遲測試反映的是特定測試方式下的結果,無法保證服務資料已成功傳輸。排查時應依序檢查外層 UDP 是否可連通、Peer 身分是否相符、隧道位址與遠端路由、DNS,以及應用程式請求。若能查看遠端握手與收發計數,請配合明確發出的請求一併觀察,不要只看介面是否出現連線圖示。
VPN 圖示出現了,為什麼網頁還是打不開?
返回 Home,確認選取的是目標 WireGuard 項目,再短暫切換至 Global Routing → Proxy 進行對照。若仍無法使用,先核對 Endpoint、UDP 連接埠及雙方公鑰的對應關係;若只有介面啟動但遠端沒有回應,優先修改 DNS 或 MTU 通常無法解決問題。
切換到行動網路就無法連線,需要更換 PrivateKey 嗎?
先不要更換身分。使用原有參數,分別記錄 Wi-Fi 與行動網路的結果,並確認 Endpoint 在兩種網路下的解析與 UDP 連通性。若僅在閒置一段時間後失效,再向原始設定提供者確認是否需要 PersistentKeepalive;更換私鑰後,遠端必須重新登錄公鑰。
小型頁面能開啟,上傳檔案卻停住,該怎麼辦?
維持相同網路與測試目標,單獨調低 MTU,重新連線後再測一次。若結果沒有變化,請恢復原本的 MTU;接著檢查封包遺失、遠端出口與目標服務限制,不要把所有大型資料傳輸失敗都歸因於 MTU。
同一份設定可以同時用在 iPhone 和 iPad 嗎?
是否允許取決於遠端的分配方式。兩台裝置同時使用相同的私鑰與隧道位址,遠端觀察到的 Endpoint 可能會來回變動。若要同時使用,請向原始設定提供者確認獨立 Peer、獨立金鑰與位址的配置方式,不要只複製同一個項目。
更新訂閱後,手動修改的 MTU 又恢復原值了?
先比較更新前後的欄位紀錄,確認該項目是否由訂閱重新建立。由訂閱管理的參數應依既有訂閱的維護方式處理;若要單獨測試,請保留原項目,並記錄本機副本的用途,避免將副本與自動更新的項目混用。
7. 保存排查紀錄與使用注意事項
有效的排查紀錄應讓同一位使用者能在相同條件下重現問題,同時避免洩漏連線憑證。保留可用的原始參數,比連續嘗試多項無關修改更有幫助。排查完成後,請恢復日常的 Global Routing 選項,並確認 On Demand 是否仍符合預期。
- 記錄環境:iPhone 或 iPad、Wi-Fi 或行動網路、測試目標與實際失敗的操作。
- 記錄路徑:所選項目、Global Routing 設定,以及 Config 中符合的規則或策略。
- 記錄變更:僅記下「MTU 從 1420 改為 1380」等單項差異,不要公開 PrivateKey 或 PresharedKey。
- 記錄結果:區分無法解析、連線逾時、部分頁面異常及大量資料傳輸停滯,並註明恢復原值後的狀況。