On Demand 負責決定系統何時建立或中斷 VPN 連線;Rule 則負責連線建立後如何分流請求。本文適用於已有可用設定的 iPhone、iPad 使用者,依序說明 Settings → On Demand 的檢查位置、Wi-Fi 與行動網路條件的排序、網域觸發的限制,以及關閉自動連線後的恢復步驟。設定前先確認手動連線正常,設定後每次只變更一項網路條件。
一、先分清 On Demand、Global Routing 與 Rule
On Demand 不是代理分流規則,而是由系統執行的按需連線策略。先在 Home 確認現有連線設定可手動使用,再前往 Settings → On Demand 檢查自動連線設定;若手動連線本身失敗,增加自動觸發條件也無法修復伺服器位址、驗證資訊或網路連線問題。
Global Routing 決定連線中的路由模式。Proxy、Direct、Config 分別用於代理、直連與依設定分流;Scene 用來依情境整理相關選項,不能直接視為某一種固定出口。排查本文提到的自動連線問題時,先固定使用 Config,並確認 Config 中目前選取的檔案,避免同時切換情境與按需條件。
VPN 已連線,不代表每個請求都會經過代理。Config 中的 DIRECT 規則可讓符合條件的請求直接連線,而 On Demand 仍維持連線。反過來說,FINAL,PROXY 也不能在通道尚未建立時取代 On Demand 發起連線。排查時應分別記錄系統連線狀態,以及請求套用的策略。
二、啟用前先確認手動連線正常
自動連線應從可重複驗證的手動測試開始。先記錄目前的設定名稱、Global Routing 選項及 On Demand 原有狀態,再進行修改。介面實際選項請以目前安裝版本為準,不要假設系統支援的所有按需策略都一定會出現在目前頁面。
- 在 Home 選取已有的連線設定,手動啟用連線,造訪已知可用的目標,確認請求能正常完成。
- 前往 Config 確認目前的設定檔;若要測試分流,請將 Global Routing 固定在 Config,並避免同時更換規則檔案。
- 前往 Settings → On Demand,檢查總開關與現有條件;首次設定只新增一項測試條件,不要一次加入多個例外。
- 依系統提示允許儲存或更新 VPN 設定,接著前往系統 Settings → General → VPN & Device Management,確認目前的 VPN 設定及 Connect On Demand 狀態。系統頁面的實際路徑可能隨系統版本變動。
- 返回 Home 檢查連線狀態,再實際切換一次網路;只離開設定頁面不代表已驗證觸發結果。
三、依 Wi-Fi 名稱與行動網路安排條件
網路條件建議按照「具體例外優先,一般條件在後」排序。系統會依序判斷按需規則,較早符合的規則可能讓後續條件不再執行。例如,若希望在家中 Wi-Fi 不自動連線、在其他網路自動連線,應先設定指定 Wi-Fi 的例外,再設定範圍較廣的網路條件。
Wi-Fi 名稱應填寫實際 SSID,而非路由器型號或裝置備註名稱。先到系統 Settings → Wi-Fi 查看目前名稱,再回到 Settings → On Demand 確認相應條件。若兩個無線基地台使用相同 SSID,通常無法只靠名稱區分;名稱條件也無法證明該網路值得信任。
指定 Wi-Fi 的例外設定
- 檢查位置
- Settings → On Demand
- 比對對象
- Wi-Fi 的實際 SSID,例如 Home-WiFi
- 目標動作
- Disconnect;僅在介面提供此動作時設定
- 排序位置
- 排在涵蓋所有 Wi-Fi 的一般條件之前
Home-WiFi 僅為名稱範例;儲存時請填入裝置目前使用的實際 SSID。
行動網路的連線設定
- 檢查位置
- Settings → On Demand
- 比對對象
- Cellular 網路條件,請以頁面實際提供的選項為準
- 目標動作
- Connect;僅在介面提供此動作時設定
- 驗證方式
- 關閉 Wi-Fi,確認行動數據可用後送出新請求
測試前請確認裝置支援行動數據;僅支援 Wi-Fi 的 iPad 不適用此測試。
驗證時要分清楚「網路尚未可用」和「按需規則未符合」。從 Wi-Fi 切換到行動網路後,先確認系統確實已連上數據網路,再查看 VPN 狀態並造訪目標網站。若公共 Wi-Fi 需要先完成網頁認證,請先處理網路認證;反覆修改 On Demand 無法取代這個步驟。
- 測試指定 Wi-Fi:連上該 SSID,記錄 VPN 是否如預期中斷或維持連線,再送出一個新請求。
- 測試其他 Wi-Fi:切換至不同 SSID,確認是否誤符合範圍過廣的 Wi-Fi 條件。
- 測試行動網路:關閉 Wi-Fi 並確認行動數據可用,檢查連線動作;切回 Wi-Fi 後,再驗證一次例外設定。
- 若目前頁面只提供簡化開關,沒有逐條編輯條件的功能,請勿自行假設有同名欄位;只設定介面實際提供的功能。
四、網域觸發不等於 DOMAIN-SUFFIX 分流
網域觸發關注的是「造訪某個網域時是否需要建立連線」;DOMAIN-SUFFIX 關注的則是「進入規則處理的請求應採用哪種策略」。在 Config 的 Rule 中加入網域,不會自動建立系統層級的按需連線條件,因此無法只靠新增後綴規則,確保裝置在中斷連線時自動連線。
系統按需機制中的網域評估,可透過 EvaluateConnection 及相關連線規則描述,並可能根據 DNS 解析或連線可達性判斷是否建立連線。它並非所有網域請求都會觸發的簡單開關。只有目前 Shadowrocket 頁面確實提供網域評估設定時,才透過該入口設定;不要將系統策略名稱直接當作 App 中固定存在的選單。
| 設定或關鍵字 | 處理對象 | 檢查重點 |
|---|---|---|
| On Demand 網域條件 | 連線建立前的按需判斷 | 頁面是否提供、評估動作、DNS 與連線可達性條件 |
DOMAIN-SUFFIX | 符合網域後綴的請求 | 網域是否正確、規則是否被前面的項目覆蓋 |
GEOIP | 目標 IP 的地理分類 | IP 分類與目前設定中的規則順序 |
IP-CIDR | 指定的 IPv4 位址範圍 | 網路位址、遮罩與目標策略 |
FINAL | 前面規則都未符合的請求 | 預設策略是否符合預期 |
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
這段程式碼僅供查看分流順序,並非完整設定,也不是 On Demand 設定檔。example.com 及其子網域會先符合第一條規則;後續請求再依位址範圍和 GEOIP 判斷,未符合的請求則交由 FINAL 處理。PROXY 必須對應現有且可用的代理策略,不能只貼上範例就當作已完成連線設定。
- 先使用一般網路確認測試網域是否能解析,並記錄目前的連線狀態。
- 若頁面提供網域按需條件,儲存後讓裝置回到未連線狀態,再對測試網域送出新請求。
- 分別觀察 VPN 是否建立、請求是否成功,以及連線後符合哪一條 Rule,不要把三種結果合併判斷。
- 若 DNS 快取、現有長連線或瀏覽器快取影響結果,請改用新的測試請求;不要只因已開啟的頁面仍能顯示,就判定觸發失敗。
五、依序排查自動重新連線與規則衝突
發生異常時,先判斷問題所在層級,再修改設定。若沒有自動建立連線,優先檢查按需開關與條件;若已建立連線但目標無法使用,則檢查現有連線設定、DNS 與分流。不要一次更新訂閱、切換協定、調整 Global Routing 又重寫按需條件,否則難以判斷是哪項變更影響結果。
為什麼在 Home 關閉後又自動連線?
先前往 Settings → On Demand 暫停自動連線,再手動中斷連線。只操作 Home 的連線開關,可能無法取消仍有效的按需條件;下次網路事件或請求仍可能觸發系統連線。接著到系統 VPN 設定中確認 Connect On Demand 狀態。
為什麼回到家中 Wi-Fi 後仍維持連線?
先確認實際 SSID,再檢查指定 Wi-Fi 的例外是否排在一般 Wi-Fi 條件之前。也要分清 Disconnect 與 Ignore:前者表示希望中斷連線,後者不代表一定會強制中斷現有連線。可選動作請以頁面實際顯示為準。
為什麼切換到行動網路後沒有立即連線?
先關閉 Wi-Fi,確認行動數據可用,再送出新請求並查看系統 VPN 狀態。確認行動網路條件已啟用,且沒有更早符合的條件;若手動連線也失敗,請回到 Home 檢查現有設定,不要繼續疊加自動規則。
VPN 已連線,為什麼目標仍走 DIRECT?
到 Home 確認 Global Routing,再到 Config 檢查目前 Rule 的符合順序。Direct 模式或較早符合的 DIRECT 規則,都可能造成這種情況;修改 On Demand 不會自動將已決定的分流策略改成 PROXY。
連線協定與觸發條件也應分開驗證。現有設定使用 Shadowsocks、VMess、VLESS、Trojan、Hysteria2 或 WireGuard 時,協定欄位決定如何建立連線,On Demand 仍負責決定何時要求建立連線。若自動觸發成功但握手失敗,應檢查該設定所需的位址、連接埠及驗證欄位,而非據此認定 Wi-Fi 名稱比對失敗。
六、關閉 On Demand 後如何恢復手動使用
關閉自動觸發不代表會立即中斷連線,也不等於切換為 Direct。先在 Settings → On Demand 關閉相關自動條件並儲存,再確認系統 VPN 設定;若要停止目前連線,請回到 Home 手動中斷。之後由使用者手動啟用連線,並分別檢查 Global Routing 與 Config 中的規則。
- 記下原有條件順序與目前設定名稱,以便日後還原;不必急著刪除可用的連線項目。
- 關閉 On Demand,並確認目前 VPN 設定中的 Connect On Demand,避免仍有自動條件生效。
- 在 Home 手動中斷連線,分別切換一次 Wi-Fi 並送出一次新的網路請求,確認是否仍會自動建立連線。
- 若仍自動重新連線,請檢查裝置上的其他 VPN 設定或裝置管理策略是否正在控制連線;不要只靠反覆切換 Home 開關處理。
- 若要恢復使用,請手動連線並確認 Global Routing;重新啟用 On Demand 時,從單一條件開始逐項恢復。