Shadowrocket WireGuard 設定教學:Private Key、Endpoint、MTU 等參數詳解

依照 Add Server 中 WireGuard 欄位順序,說明金鑰、位址、端點、MTU 與 DNS 的用途,以及填寫錯誤時的常見狀況。

本文導覽

本文適合已有服務商提供的 WireGuard 設定,需要手動核對參數的使用者。先區分本機與遠端身分,再依序檢查位址、端點、金鑰、MTU 和 DNS,最後按照固定測試順序,分辨交握失敗、解析失敗與規則選路問題。文中的位址僅用於說明欄位,並非可連線的服務設定。

一、從 Home 新增 WireGuard 項目

Shadowrocket(小火箭)的 WireGuard 項目需要一組彼此對應的參數。只有遠端位址和連接埠並不足以連線:遠端也必須登錄與本機 Private Key 對應的公鑰,並為這部裝置配置隧道位址。本文以使用者已取得自己的合法設定為前提,不討論服務來源的選擇。

在 Home 右上角點選「+」進入 Add Server,先將 Type 設為 WireGuard,再核對此類型顯示的欄位。表單中的伺服器位址、連接埠與金鑰可能分欄顯示;下文會先說明端點,再介紹金鑰、隧道位址及進階參數。實際欄位順序與選用項目是否顯示,請以目前介面為準;不要將其他協定的 Password 或 UUID 填入 WireGuard 金鑰欄。

  1. 準備設定

    從自己的設定記錄中找出 Interface 與 Peer 兩個區段,並保留原始副本。PrivateKey 屬於本機,Peer 中的 PublicKey 屬於遠端,兩者不可互換。

  2. 選擇類型

    開啟 Home →「+」→ Add Server → Type → WireGuard。先確認類型,再填寫位址和金鑰,避免沿用上一種協定的欄位意義。

  3. 逐項填寫

    依照自己的設定填寫伺服器位址、連接埠、Private Key、遠端 Public Key 和隧道位址;MTU、DNS 及選用金鑰也應優先沿用原設定。

  4. 儲存並測試

    儲存後返回 Home,選取該項目,再開啟連線開關。首次使用時,請依系統提示允許新增 VPN 設定,並使用 Connectivity Test 檢查連線狀況。

二、Endpoint:區分遠端位址與連接埠

Endpoint 是 WireGuard 對端在公網上可連線的位置,由主機名稱或 IP 位址加上 UDP 連接埠組成。原始設定可能將兩者合寫為 vpn.example.com:51820;如果 Add Server 分別顯示 Address 與 Port,請將主機部分填入位址欄,將 51820 填入連接埠欄,不要把整段內容重複貼到兩個欄位。

原始文字範例主機部分連接埠部分
vpn.example.com:51820vpn.example.com51820
192.0.2.10:51820192.0.2.1051820
[2001:db8::10]:518202001:db8::1051820

上表使用文件範例網域與位址,無法用於實際連線。IPv6 的方括號用於在合寫格式中區分位址與連接埠;分欄填寫時,請依照該位址欄位的輸入要求操作。不要在主機欄前加上 https://,也不要附加網頁路徑。

51820 是常見的範例連接埠,並非所有 WireGuard 服務都必須使用。請以自己的設定為準。WireGuard 使用 UDP;某個位址上的 TCP 連接埠可以連線,不代表相同數字的 UDP 連接埠也能使用。若網域無法解析、連接埠填錯,或目前網路限制 UDP,常見情況是持續沒有可用回應,但僅憑這個現象還無法判斷是哪個欄位出錯。

三、Private Key、Public Key 與選用金鑰

Private Key 是本機的私鑰,由此決定本機公鑰;遠端必須事先接受這把公鑰。遠端設定中的 Public Key 通常是對端的公鑰,用來識別伺服器;不要再把自己從 Private Key 推導出的公鑰填入。這兩種金鑰都可能是較長的 Base64 文字,因此不能只靠外觀判斷其用途。

32 位元組
WireGuard 私鑰與公鑰各自的原始長度
44 個字元
32 位元組金鑰經標準 Base64 編碼後的常見長度,包含填充字元
UDP
WireGuard 對端通訊使用的傳輸協定

結論:先確認金鑰所屬,再考慮重新建立

分別將本機 Private Key 與遠端 Public Key 對照原始設定;不要為了排除問題就直接產生新私鑰。更換私鑰後,遠端登錄的用戶端公鑰也必須同步更新,否則即使端點原本正確,仍無法完成驗證。

長度正確只代表文字格式可能符合要求,無法證明金鑰與遠端相符。公鑰填錯、私鑰不匹配或 Pre-shared Key 不一致,都可能導致無法建立有效通訊。請逐項比對原始記錄,不要將所有連線失敗都歸因於連接埠。

四、隧道位址:Address 不等於 Endpoint

看似都與「位址」有關的欄位,可能有截然不同的用途:Endpoint 的位址用於找到公網上的對端;Interface 中的 Address 則是本機在隧道內使用的位址。若原始設定中出現 10.66.0.2/32,它代表用戶端的內部位址與前綴長度,不應填入公網伺服器的主機欄。

設定概念文字範例填寫判斷方式
Endpointvpn.example.com:51820遠端連線入口,主機與連接埠依介面欄位分開填寫。
Interface Address10.66.0.2/32本機隧道位址,保留已配置的位址及必要前綴。
IPv6 Addressfd00:66::2/128只有自己的設定配置了 IPv6 時才填寫。
AllowedIPs0.0.0.0/0, ::/0WireGuard 的位址範圍設定,不是 DNS,也不是金鑰。

不要依照上述範例自行選擇隧道位址。同一遠端上的用戶端位址通常必須避免衝突;沿用另一部裝置的完整身分與位址,可能導致通訊時斷時續。若要同時使用多部裝置,請使用服務端為各裝置配置的獨立設定。

AllowedIPs 不能直接等同於 Shadowrocket 的全域選路模式。在 WireGuard 中,它用於處理對端位址範圍;至於 Shadowrocket 是否將某個 App 連線交由該伺服器處理,還取決於 Global Routing 和 Config 中的規則。若原始設定包含此項,但目前編輯頁面沒有同名欄位,請勿將它貼到 Address 或 DNS 欄;應先核對目前支援的匯入方式與設定說明。

五、MTU 與 DNS:連線後仍異常時的檢查方式

MTU 會限制隧道介面處理的封包大小。數值過大時,外層封裝可能超出路徑可承載的大小;若路徑上的分片或錯誤回報處理不完整,可能出現小型請求成功、大型請求停滯的情況。這只是排查線索,不能只憑網頁載入緩慢就下定論。

DNS 用於將網域名稱解析為位址,無法修復金鑰或連接埠錯誤。原始 WireGuard 設定中的 DNS 通常是隧道使用的解析伺服器;Shadowrocket 實際的解析行為也會受到 Config 中 DNS 設定與相關選路影響,因此不能認為只要在伺服器項目中填入 DNS 位址,所有網域查詢就一定會走相同路徑。

內部 DNS 位址也必須能透過相應的網路路徑連線。若出現「用位址測試有回應、用網域名稱請求卻失敗」,可優先檢查解析結果與 DNS 是否可連線;但也要留意網站可能需要正確的網域名稱與 TLS 資訊,不要用瀏覽器直接存取某個 IP 的結果,取代完整的網域名稱測試。

六、Global Routing:區分協定問題與規則問題

儲存 WireGuard 項目後,還要在 Home 中選取該伺服器。開啟連線開關代表系統已啟用相應的 VPN 設定,不代表遠端已成功回應。測試前請先確認流量確實會交由該項目處理,否則可能誤以為測試成功,但實際上走的是 Direct。

Config

建議

依照目前設定檔中的規則處理連線。確認目標符合的策略是否實際指向待測的 WireGuard 項目;符合 DIRECT 的請求無法用來證明該項目可正常使用。

適用情況:參數驗證完成後,依照現有規則進行日常分流。

Proxy

以代理方式處理接管的連線,可暫時減少規則分流對測試的干擾。仍須確認所選伺服器,且不應將此模式理解為能繞過系統的所有流量限制。

適用情況:短時間排查 Config 規則是否影響測試路徑。

Direct

以直連方式處理連線。適合檢查目前的基礎網路,但直連成功不能證明 WireGuard 的金鑰、連接埠或隧道位址正確。

適用情況:建立基礎網路的比較基準,確認未經代理時的狀況。

若平常使用 Scene,也應先確認目前場景實際採用的伺服器與規則,再判讀測試結果。排查完成後請恢復原有模式。檢查 Settings → On Demand 時,請特別確認按需連線條件是否會在測試期間變更連線狀態;On Demand 不會取代 WireGuard 的身分驗證,也無法修正錯誤參數。

在 Config 中,DOMAIN-SUFFIX 可比對網域後綴,IP-CIDR 用於比對位址範圍,GEOIP 依 IP 地理位置比對,FINAL 則處理先前未符合規則的連線。規則會依序影響選路;因此應根據實際符合的策略進行檢查,而不是只看 Home 頂端的開關來判斷協定狀態。

七、依照現象逐項檢查,不要一次修改所有欄位

先在穩定的網路中儲存基準狀態,再使用 Connectivity Test 和實際服務請求交叉驗證。單次延遲數值不代表所有目標都能連線,測試失敗也不能直接判定是金鑰錯誤。下表用於安排檢查順序,不能只憑單一現象斷定唯一原因。

觀察到的現象優先檢查項目下一步操作
開啟後請求持續逾時Endpoint、UDP 連線狀況、雙方金鑰對照原始設定逐項確認;也可分別透過 Wi-Fi 與行動網路重新測試。
網域名稱請求失敗DNS 結果、解析路徑、DNS 連線狀況區分 Endpoint 網域解析與目標網域解析,並核對目前的 Config。
小型請求成功,大型請求停滯路徑 MTU、封包遺失、遠端負載保持目標與網路不變,只調整 MTU 進行對照測試,記錄結果後恢復原值,或保留有效值。
只有部分目標異常規則符合結果、IPv4 與 IPv6 路徑確認是否使用同一部伺服器,不要立刻重新建立金鑰。
切換網路後才出現異常新網路的 UDP、網域解析與連線狀態重新建立連線並再次測試,比較兩個網路的差異。

若項目來自使用者現有的訂閱,手動編輯的內容也可能在訂閱更新後遭到覆蓋。修改前請保留原有參數,並使用清楚的備註區分測試項目與訂閱管理項目。若要向自己的服務提供者回報,提供測試網路、錯誤現象及已核對的欄位名稱即可;請勿在公開記錄中放入真實的 Private Key、Pre-shared Key 或完整訂閱連結。

最後依序確認:遠端入口可連線、金鑰所屬正確、隧道位址相符、解析路徑可用,以及目標流量確實符合該伺服器。驗證這些基本項目後,再討論微調 MTU,才能避免用進階參數掩蓋基本設定錯誤。

App Store 正版查驗