On Demand 負責決定何時建立或中斷系統 VPN 連線;Config 中的規則則負責連線建立後如何分流。本文適合已備妥可用連線參數的 iPhone、iPad 使用者,依序說明 Settings → On Demand、SSID 條件、行動網路、網域評估與驗證步驟。先確認手動連線正常,再加入自動觸發條件,便能分別排查連線故障與條件設定錯誤。
On Demand 與 Config 的功能分工
Shadowrocket(小火箭)的 On Demand 使用系統的按需連線機制。它不是定時點按 Home 中的連線開關,也不會為每個請求重新選擇節點。網路環境變更或出現符合條件的請求時,系統會依已儲存的按需規則判斷連線動作;隧道建立後,流量仍由目前的 Global Routing 與設定規則處理。
因此,「已自動連線」和「目標請求透過 Proxy」是兩回事。若 Global Routing 使用 Config,請前往 Config 檢查目前選用的設定與比對規則;若使用 Direct,即使系統顯示 VPN 已連線,也不能據此判定請求是透過 Proxy 送出。相對地,Proxy 是全域代理模式,不應以該模式的測試結果取代 Config 下的分流驗證。
- Home:先選取已有且可用的節點,手動連線並測試目標請求。
- Settings → On Demand:設定自動連線條件,確認總開關、動作與條件範圍。
- Config:檢查連線建立後的分流策略,例如 DOMAIN-SUFFIX、IP-CIDR 與 FINAL。
啟用前:先確認有一組可手動驗證的連線
設定 On Demand 前,先確認在同一個網路下手動連線正常。本文假設使用者已有自己的服務商與訂閱;訂閱更新成功只代表已取得設定內容,不代表每個節點都能成功連線。節點位址、連接埠與協定參數都應與現有設定逐項核對,不要試圖以自動重連掩蓋參數錯誤。
- 在 Home 選取已確認可用的節點,暫時關閉 On Demand,並記下目前的 Global Routing 設定。
- 手動開啟連線,前往一個已知需要目前設定處理的目標,再查看連線記錄中的實際策略。
- 中斷連線後,前往 Settings → On Demand。先只新增一條適用範圍明確的網路規則,儲存後再啟用。
- 若系統要求新增或更新 VPN 設定,請依提示授權。接著前往系統設定中的 VPN 設定詳細資訊,確認對應項目的 Connect On Demand 狀態。
系統設定的路徑會隨系統介面而異,可在系統設定中搜尋 VPN,再開啟 Shadowrocket 對應設定的詳細資訊。不要只檢查 App 內的開關:系統儲存的 VPN 設定也會影響按需連線行為。系統要求與裝置相容性請以 App Store 頁面標示為準;僅支援 Wi-Fi 的 iPad 無法測試行動網路切換。
Wi-Fi SSID:先設定例外,再設定較廣泛的條件
SSID 是 Wi-Fi 網路名稱,不是路由器管理位址,也不是節點名稱。若要達成「中斷指定 Wi-Fi 時不連線,其他 Wi-Fi 則自動連線」,請先為指定 SSID 設定 Disconnect 條件,再加入範圍較廣的 Wi-Fi Connect 條件。系統會依序評估按需規則;若先放入較廣泛的條件,後續針對特定 SSID 的條件可能就不會生效。
指定 Wi-Fi 例外
- 設定路徑
- Settings → On Demand
- 介面條件
- Wi-Fi
- SSID 範例
- HomeNet-5G
- 動作
- Disconnect
- 順序
- 放在範圍較廣的 Wi-Fi 條件之前
HomeNet-5G 是網路名稱範例,請替換為裝置實際連線的 SSID。
其他網路條件
- 設定路徑
- Settings → On Demand
- 後續條件
- 其他 Wi-Fi
- 動作
- Connect
- 獨立條件
- Cellular
- 驗證方式
- 切換網路後送出新請求
這是條件規劃範例,不是可直接貼上的設定語法;請使用 App 內實際提供的編輯選項儲存。
填寫名稱時,請保留大小寫、空格與符號,不要預設名稱支援萬用字元。例如 HomeNet 與 HomeNet-5G 是不同名稱;多個存取點即使名稱相同,也可能同時符合同一條 SSID 條件。SSID 只能用來設定網路名稱條件,無法單獨證明網路可信。是否在某個 Wi-Fi 網路下中斷連線,應依該網路的實際使用需求決定。
重點:先確認單一 SSID 條件運作正常
先只保留指定 SSID 的規則,分別測試連入與離開一次;確認結果符合預期後,再加入其他 Wi-Fi 與 Cellular 條件。如此便能直接判斷是名稱比對錯誤,還是後續規則覆蓋了預期設定。
行動網路:分開測試網路切換與連線恢復
Cellular 條件適用於行動網路介面,並不等同於「未連線至指定 Wi-Fi」。若只設定特定 SSID 的 Disconnect,卻沒有涵蓋行動網路的條件,就不能只依據這條例外推斷離開該 Wi-Fi 後的行為。若要自動連線,請加入對應的 Cellular Connect 條件,並確認前面沒有範圍更廣的 Disconnect 條件先行攔截。
- 在目標 Wi-Fi 下確認 Disconnect 條件已生效,並記錄系統 VPN 狀態。
- 前往系統設定關閉 Wi-Fi,確認裝置確實已改用行動網路,而非只是暫時與目前的存取點中斷連線。
- 開啟新網頁或送出新的 App 請求,確認系統 VPN 是否已建立,再前往 Shadowrocket 查看連線與請求記錄。
- 重新開啟 Wi-Fi 並連上指定 SSID,確認新一輪網路評估結果符合 Disconnect 條件。
切換網路時,舊連線可能中斷,頁面也可能繼續顯示快取內容。判斷自動連線是否成功,應查看新請求與系統 VPN 狀態,而非只看頁面是否立即重新整理。若 VPN 已建立但仍無法連線,接下來應檢查節點在行動網路下是否可連線、DNS 是否正常,以及目前 Config 中目標所套用的規則,而不是繼續新增重複的 Connect 條件。
網域觸發:區分連線評估與 DOMAIN-SUFFIX
透過網域觸發連線的關鍵在於系統的連線評估,不是把網域寫進 Config 就能啟動隧道。系統 On Demand 的 Evaluate Connection 機制可依網域與解析條件判斷是否嘗試連線;Connect If Needed 的意思也不是「每次存取都無條件連線」。請以目前 On Demand 編輯器實際提供的網域評估選項為準,不要把 Config 中的 DOMAIN-SUFFIX 規則貼到網路條件裡。
| 項目 | 處理階段 | 檢查項目 |
|---|---|---|
| On Demand 網域評估 | 判斷是否需要建立連線 | 網域條件、解析結果與對應的連線動作 |
| DOMAIN-SUFFIX | 連線建立後的流量比對 | 網域後綴與策略名稱 |
| IP-CIDR | 連線建立後的位址比對 | 目標 IP 是否位於指定網段 |
| FINAL | 前面的規則皆未命中時 | 確認備援策略是否符合預期 |
例如,Config 中的 DOMAIN-SUFFIX,example.com,PROXY 表示網域後綴的分流條件,並非 On Demand 的自動啟動指令。此處的 example.com 僅用來說明規則結構,PROXY 也必須在目前的設定中有效。測試網域觸發時,請填寫網域,不要填入含路徑或查詢參數的完整網頁網址。
- 確認是否提早命中:若前面的網路條件已設定為 Connect,隧道可能早已建立,此時無法證明後續的網域評估確實曾觸發。
- 確認解析路徑:DNS 快取或 App 自行使用加密 DNS,可能導致測試未經過預期的系統解析評估流程。
- 確認連線生命週期:關閉目標網頁不代表 VPN 會立即中斷。網域評估不能簡單視為瀏覽器分頁的開關。
若目前的編輯器沒有提供所需的網域評估選項,請先使用可確認的 Wi-Fi、Cellular 條件,不要以名稱相同的 Config 規則冒充。驗證時一次只調整網域條件或網路條件中的一項,並保留原始設定記錄,避免同時變更兩種機制,卻把結果歸因於其中一條規則。
優先順序與常見設定錯誤:依照問題逐項檢查
On Demand 的規則順序與 Config 的規則順序是兩個獨立層次。前者控制連線動作,後者控制流量策略;將 FINAL 移到最後無法修正 SSID 條件,調整 SSID 順序也無法修正目標網域套用錯誤策略的問題。排查時,請先確認系統是否已建立隧道,再確認請求符合哪一條規則。
在 Home 關閉連線後,為什麼過一會兒又自動連上?
前往 Settings → On Demand,確認自動連線是否仍啟用。若要暫停自動連線,請先關閉 On Demand,並確認系統 VPN 設定中的 Connect On Demand 狀態,再手動中斷連線;只操作 Home 的開關無法取代停用按需條件。
已為指定 Wi-Fi 設定 Disconnect,為什麼仍然連線?
先在系統的 Wi-Fi 詳細資訊中確認實際 SSID,再檢查規則順序。將特定 SSID 條件放在範圍較廣的 Wi-Fi Connect 條件之前,儲存後重新連上該網路,送出新請求並檢查連線狀態。
行動網路下會自動連線,網頁卻打不開?
先暫時關閉 On Demand,在同一個行動網路下手動測試連線。若手動連線也失敗,請回到 Home 檢查所選節點,再確認協定參數、DNS 與 Global Routing;先排除基本連線問題,再重新啟用自動條件。
Config 已設定網域規則,為什麼存取時沒有自動連線?
DOMAIN-SUFFIX 只負責分流。請前往 Settings → On Demand 確認是否設有適用的連線條件;若使用網域評估,也要檢查前置網路規則、系統解析路徑與快取,不可用 Config 的比對條件取代系統連線評估。
完成設定後,至少保留一組可重複驗證的記錄:目前網路、SSID 或 Cellular、符合的按需條件、系統 VPN 狀態,以及新請求實際套用的策略。只記錄必要資訊,避免公開訂閱網址、認證資訊或完整連線參數。每次只調整一個項目,再重複相同的驗證步驟,比一次新增多條例外更容易找出問題。
- 指定 Wi-Fi:連入後確認 Disconnect,離開後檢查下一條符合條件的規則。
- 其他 Wi-Fi:確認 Connect 條件涵蓋目前網路,必要時先完成網頁認證。
- Cellular:確認介面已切換,並以新請求驗證連線與流量送出。
- 網域評估:排除範圍較廣的 Connect 條件影響,再檢查解析與觸發結果。