Shadowrocket On Demand 設定教學:依 Wi-Fi、行動網路與網域自動連線

了解 On Demand 的觸發方式,逐步設定依 Wi-Fi 名稱、行動網路與網域自動連線或中斷,並掌握規則順序。

本文速覽

Shadowrocket(小火箭)的 On Demand(按需連線)決定系統何時啟動或中斷 VPN 連線,不會取代連線後的流量分流規則。本文適合已有可用連線與設定的使用者,先設定指定 Wi-Fi 與行動網路的動作,再說明網域條件為何不代表「開啟某個網頁就一定會連線」,最後透過逐項測試排查規則順序與自動重新連線問題。

一、先區分 On Demand 與連線後的流量分流

設定前先掌握重點:要依網路環境自動連線,請檢查 Settings → On Demand;已連線但特定網站的連線路徑不如預期,則檢查 Home → Global Routing 與 Config 中目前啟用的設定。兩者所處階段不同;在設定中加入網域分流規則,不代表已建立系統的按需連線觸發條件。

網路條件變更 系統評估條件 執行連線動作 建立隧道 比對流量規則

On Demand 仰賴 Apple 系統的 VPN 按需機制。系統會根據目前網路與已儲存的條件,評估是否連線;成功連線後,Shadowrocket 才會依所選路由方式處理流量。網路切換、名稱解析需求等事件可能納入評估,但這不是持續掃描前景網頁內容的功能,也不是依 App 開啟或關閉時間運作的開關。

例如,設定中的 DOMAIN-SUFFIX,example.com,DIRECT 表示網域後綴符合時採用直連;FINAL,DIRECT 則是前面的規則都未符合時的最終去向。這些規則不會自行啟動系統 VPN。GEOIP(依 IP 地理位置比對)與 IP-CIDR(依 IP 網段比對)也屬於流量處理層,不能取代 Wi-Fi 或行動網路條件。

二、設定前確認入口、連線與復原方式

先確認手動連線成功,再設定自動化。本文主要以 iPhone 與 iPad 說明操作;系統需求請以 App Store 頁面標示為準。不同系統版本與 App 介面可能提供不同欄位,實際可儲存的條件以 Settings → On Demand 目前頁面為準,別把系統動作名稱當成每個介面都一定會顯示的按鈕。

2 個層級
設定入口:Settings → On Demand
2 種
本例網路條件:Wi-Fi 與 Cellular
3 項
測試記錄:目前網路、連線狀態、請求結果
  1. 在 Home(首頁)選取現有且可用的連線,手動開啟連線開關。首次出現新增 VPN 設定檔的系統提示時,確認 App 資訊後依系統指示完成設定。
  2. 開啟平時可正常瀏覽的頁面,確認網路本身運作正常。如果手動連線也失敗,請先檢查連線參數、網路可達性或設定。
  3. 記下目前 Global Routing 的路由模式,以及 Config 中啟用的設定,避免測試時順手切換後忘了還原。
  4. 前往 Settings → On Demand,先記下現有條件及排列順序。這次只調整要測試的項目,不要同時更新訂閱或更換連線。
  5. 記下系統 設定 → 一般 → VPN 與裝置管理 → VPN 中對應的 VPN 設定檔位置。若系統顯示「按需連線」相關選項,也請一併確認其狀態。

重點:先建立可手動連線的基準

先在同一個網路環境手動連線成功,再單獨調整 On Demand 條件。發生異常時,才能清楚判斷是沒有觸發,還是觸發後連線未成功。

三、依 Wi-Fi 名稱設定連線或中斷

Wi-Fi 名稱條件通常對應 SSID(無線網路名稱)。它比對的是網路名稱,不是路由器品牌,也不是網站網域。以下使用虛構名稱 Home-WiFi 示範「指定 Wi-Fi 中斷、行動網路連線」的設定目標;是否要讓特定網路中斷,應依實際使用需求決定,不能只因網路名稱含有「家用」就認定它值得信任。

  1. 在系統 Wi-Fi 設定中確認目前連線的完整名稱,保留名稱中的空格、符號與大小寫,不要用「家裡的網路」等自訂備註取代實際 SSID。
  2. 前往 Settings → On Demand,編輯 Wi-Fi 條件,將要比對的網路名稱設為實際 SSID。本例的 Home-WiFi 僅供說明。
  3. 若希望在該網路下中斷此 VPN 連線,請將符合條件後的動作設為 Disconnect(中斷);若要在該網路下連線,則選擇 Connect(連線)。依目前介面提供的方式儲存。
  4. 檢查是否另有涵蓋所有 Wi-Fi 的通用條件。特定 SSID 的例外條件應排在可能涵蓋它的通用條件之前。
  5. 先離開該 Wi-Fi,再重新連線並觀察 VPN 狀態;不要只在原網路儲存設定後,立即依一次網頁載入結果判斷是否成功。

指定 Wi-Fi 的設定目標

設定入口
Settings → On Demand
網路類型
Wi-Fi
SSID
Home-WiFi(虛構範例)
動作
Disconnect:在此網路下中斷

這是設定目標的說明,不是可直接匯入的設定文字;實際名稱應替換為目前網路的 SSID。

行動網路的設定目標

設定入口
Settings → On Demand
網路類型
Cellular:行動網路
SSID
不適用;SSID 是 Wi-Fi 條件
動作
Connect:在此網路下連線

僅在支援且已啟用行動數據的裝置上測試;能否成功連線仍取決於現有連線是否正常。

Disconnect 表示中斷此 VPN,不是關閉裝置的 Wi-Fi,也不是封鎖所有網路流量。若只是希望家中某個網域直連,通常應維持 VPN 連線,並在 Config 中設定分流,而不是將整個家用 Wi-Fi 設為中斷。這兩種做法影響的範圍不同。

四、行動網路自動連線與規則順序

在支援行動數據的裝置上,可將 Cellular(行動網路)條件設為 Connect。離開指定 Wi-Fi 後,系統切換至行動數據,再評估相應條件。切換期間仍須經過網路可用性、VPN 建立及後續請求等流程,不能假設按需連線能讓所有現有連線無縫持續。

評估順序條件動作確認重點
優先處理例外Wi-Fi,SSID 為 Home-WiFiDisconnect名稱須與實際連線的網路相符
網路類型CellularConnect裝置目前確實使用行動數據
最後的一般條件其他需要連線的網路Connect僅在介面支援且確有需要時新增

系統會依序評估按需規則,第一個符合條件的適用規則會決定相應動作。若最前面的通用連線條件已涵蓋所有 Wi-Fi,後面的指定 SSID 中斷條件可能就不會生效。Shadowrocket 介面可能依網路類型整理條件;檢查時除了確認頁面中的順序,也要留意條件涵蓋範圍,不能只看某個開關是否已開啟。

不具備行動網路功能的 iPad 無法測試行動網路切換。若 Wi-Fi 連接到另一台裝置的個人熱點,本機使用的仍是 Wi-Fi 介面;應依本機偵測到的網路類型判斷,而不是依熱點提供者的上網方式判斷。

五、網域按需觸發不等於 DOMAIN-SUFFIX 分流

「造訪網域時連線」需要另外理解。Apple 的按需機制中,EvaluateConnection(評估連線)可結合網域與名稱解析相關條件,決定是否建立 VPN。這與連線後比對 DOMAIN-SUFFIX 的機制不同,也不能簡單理解成監聽瀏覽器網址列。

系統的網域評估中,ConnectIfNeeded(需要時連線)通常與 DNS 解析失敗、所需 DNS 伺服器無法使用等條件有關;NeverConnect(不因符合網域而啟動連線)也不是網站封鎖規則。這些是系統機制名稱,只有目前 Shadowrocket 介面提供相應條件時,才能依頁面支援的選項設定,不能直接當成設定檔關鍵字貼上。

  1. 先釐清需求:是「隧道未連線時,造訪內部網域需要建立連線」,還是「隧道已連線時,特定網站需要使用指定路由」。後者應在 Config 中處理。
  2. 在 Settings → On Demand 中確認是否提供網域相關條件及可選動作。若目前介面只提供網路類型條件,就依實際功能設定,不要自行編造欄位。
  3. 若介面支援網域條件,請使用自己有權存取,且確實需要該網路環境才能解析的網域進行測試。internal.example.com 僅用於說明格式,不能用來驗證實際連線狀況。
  4. 依欄位用途填寫主機名稱或網域,不要填入完整 URL。https://internal.example.com:443/path 中的通訊協定、連接埠與路徑都不屬於網域本身。
  5. 先記錄未連線時的 DNS 解析結果,再啟用條件進行測試;如果一般網路已能解析該網域,不應預期「需要時連線」一定會觸發。
不要以重新整理次數判斷網域條件是否生效

DNS 快取、瀏覽器既有連線,以及 App 自行使用的加密 DNS,都可能影響系統是否偵測到新的解析需求。只重新整理已開啟的頁面,可能不會產生預期的評估事件。應同時觀察 VPN 狀態與實際解析結果,不要只因頁面成功開啟就認定是 On Demand 觸發所致。

若需求只是「example.com 直連,其他請求依現有設定處理」,請在啟用中的設定裡加入相應網域規則,並選擇 Global Routing → Config。網域分流只決定流量去向;中斷整個 VPN 則會影響其他 App 的請求,兩者不能互相取代。

六、透過三種情境確認設定是否生效

每次只調整一個變數:使用同一個現有連線、同一份啟用中的設定,以及相同的測試頁面。下方列出驗證時應記錄的現象,不代表固定耗時或實測效能保證。系統評估與隧道建立都需要時間,請等狀態穩定後再判斷。

測試情境操作方式應確認的現象發生異常時優先檢查
連接指定 Wi-Fi重新連接已設為例外的 SSIDVPN 是否依 Disconnect 設定中斷SSID 與通用條件的涵蓋範圍
切換至行動數據關閉 Wi-Fi,確認行動數據可用VPN 是否開始連線並成功建立連線Cellular 條件、現有連線是否可用
造訪需要內部 DNS 解析的網域在適用的網域條件下發出新的解析請求是否觸發評估,以及連線後能否解析DNS 快取、解析路徑與網域條件

若狀態顯示已連線,但頁面仍無法載入,問題已進入連線後的處理階段。此時請檢查 Global Routing、啟用中的 Config、DNS 與目標網路是否可達,不要反覆修改 Wi-Fi 名稱條件。若完全沒有連線動作,則先檢查按需開關、目前介面類型與規則優先順序。

七、自動重新連線、名稱比對與電量常見問題

手動關閉連線後,為什麼又自動連上?

先前往 Settings → On Demand,確認是否仍有符合目前網路的 Connect 條件,再到系統 VPN 設定中檢查按需狀態。若要暫停自動化,請先關閉按需功能再中斷連線,不要只反覆切換 Home 的連線開關。

設定回到家連上 Wi-Fi 後中斷,為什麼仍保持連線?

在系統 Wi-Fi 頁面重新確認完整 SSID,檢查裝置是否實際連上名稱不同的另一個頻段網路。接著確認涵蓋所有 Wi-Fi 的通用 Connect 條件是否先符合;不要只因路由器相同,就認定 SSID 條件也相同。

開啟指定網域沒有觸發,是網域規則寫錯了嗎?

先確認設定的是 On Demand 網域條件,而不是 Config 中的 DOMAIN-SUFFIX。再檢查該網域是否已快取、一般網路是否能解析,以及請求是否經過系統可評估的解析路徑;「頁面已開啟」本身無法證明曾觸發新的連線。

按需連線一定比維持連線省電嗎?

不能只看開關判斷。請先在系統 設定 → 電池 中比較相同使用時段的活動情況;若頻繁切換網路造成隧道反覆建立,應減少不必要的條件切換。依實際連線需求設定,避免為了測試而不斷中斷再重新連線。

排查順序保持一致:先確認網路可用,再確認系統是否觸發連線,最後檢查連線後的路由與 DNS。依這三個階段記錄狀況,比同時修改 On Demand、訂閱與設定更容易找出原因。其他基本操作可參考本站教學。

透過 App Store 取得正版先確認 App 資訊 →