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

說明如何組合 On Demand 觸發條件,包括指定 Wi-Fi 名稱、行動網路與網域評估,以及條件衝突時的規則順序。

本文摘要

Shadowrocket(小火箭)的 On Demand 用來管理系統 VPN 連線的觸發條件,不會取代 Config 中的流量分流規則。適合已能手動連線,並希望依 Wi-Fi 名稱或行動網路自動連線的使用者。先設定網路條件,再分別測試網域評估,最後檢查規則順序;請勿將「已建立連線」視為「所有請求都經由 PROXY」。

分別檢查 On Demand 與 Global Routing

先釐清兩件事:On Demand 決定系統何時嘗試建立或中斷 VPN 連線;Global Routing 則決定連線運作時如何處理流量。開啟 On Demand 不會自動修正現有服務的位址、連接埠、驗證或 TLS 參數,也不會將 Config 中的 DIRECT 規則改為 PROXY。

Shadowrocket 的主要操作區域為 Home、Config 和 Settings。先在 Home 測試現有設定是否能手動連線,再前往 Settings → On Demand 設定自動觸發。本文以 iPhone、iPad 為主;系統需求請以 App Store 頁面標示為準。

網路條件變更 評估按需規則 系統處理連線 比對流量策略 驗證目標連線
2 個層面
分別檢查連線觸發與流量分流
4 種
Global Routing:Proxy / Direct / Config / Scene
2 個步驟
設定路徑:Settings → On Demand

排查時可先使用 Global Routing → Config,並保留一份已驗證可用的設定。Proxy 與 Direct 可供暫時比對,但它們不是自動連線條件;Scene 也不等同於 On Demand 的 Wi-Fi 名稱比對。每次只變更一類設定,才能判斷問題出在連線層或分流層。

設定前先建立手動連線基準

如果手動連線時就無法存取目標,請先處理基本連線問題。On Demand 只是自動化入口,並不是修復連線失敗的開關。本文假設使用者已有自己的服務供應商與訂閱,只說明裝置上的設定,不提供服務連線資訊。

  1. 在 Home 確認目前選取的連線設定。若最近更新過現有訂閱,請重新確認選取的項目,避免測試對象已經變更。
  2. 暫時關閉 On Demand,手動開啟連線,並記錄目前使用的 Wi-Fi 或行動網路、Global Routing 狀態,以及目標頁面是否能開啟。
  3. 在 Config 確認目前啟用的設定檔。測試期間不要同時編輯 DOMAIN-SUFFIX、GEOIP、IP-CIDR 或 FINAL。
  4. 完成系統要求的 VPN 設定授權;若裝置受組織管理,請先確認系統允許使用此 VPN 設定。
  5. 確認手動連線與存取都正常後,再前往 Settings → On Demand 新增或調整條件,並儲存設定。

依 Wi-Fi 名稱與行動網路設定條件

常見需求是「指定 Wi-Fi 時不自動連線,使用行動網路時自動連線」。設定時先新增範圍較精確的 Wi-Fi 例外,再加入適用範圍較廣的網路規則。Wi-Fi 名稱指 SSID,不是路由器管理位址,也不是瀏覽器顯示的網路驗證頁面標題。

以下兩張卡片是測試計畫,不是可匯入的設定文字。動作用來區分連線與中斷連線的意圖;可編輯欄位請以 Settings → On Demand 目前頁面為準。請勿直接把計畫中的名稱當成自己的實際 SSID。

指定 Wi-Fi 例外

路徑
Settings → On Demand
網路類型
Wi-Fi
SSID 範例
Home-WiFi,僅供示範
動作意圖
Disconnect
排列位置
通用 Wi-Fi 條件之前

先確認實際 SSID,再測試加入與離開該網路兩種情況。

行動網路連線

路徑
Settings → On Demand
網路類型
Cellular
SSID 條件
不新增 Wi-Fi 名稱限制
動作意圖
Connect
驗證方式
離開 Wi-Fi 後送出新請求

僅適用於具備可用行動網路連線的裝置,請先確認行動數據可正常使用。

  1. 先只保留一項待驗證條件;儲存後重新進入頁面,確認條件與動作仍在。
  2. 測試 Wi-Fi 時,請在系統 Wi-Fi 頁面查看目前實際連線的名稱,逐字確認空格、連字號與大小寫;名稱片段不會作為萬用字元。
  3. 測試行動網路時,請在系統設定中關閉 Wi-Fi,確認網路確實切換後,再送出新的網頁請求。
  4. 單一條件測試通過後,再加入第二項,最後補上其他 Wi-Fi 條件。若沒有明確需求,請勿一開始就新增涵蓋所有網路的寬泛規則。

同一台路由器的不同頻段可能使用不同 SSID,也可能共用同一個名稱。條件是依實際名稱比對,不會依裝置與路由器的距離判斷。若公共 Wi-Fi 需要網頁驗證,請先完成驗證再測試自動連線,以免將尚未連上網際網路誤判為 On Demand 失效。

網域觸發不等於 DOMAIN-SUFFIX 分流

On Demand 的網域評估與 Config 中的網域規則分屬不同階段。系統的 On Demand 網域評估用來判斷特定網域是否需要連線;DOMAIN-SUFFIX 則是在流量進入規則處理後選擇策略。只在 Config 新增網域規則,不會自動建立系統的按需連線條件。

若目前的 On Demand 編輯介面提供網域評估功能,請使用該入口允許的網域與連線評估選項。底層的 Evaluate Connection 與直接 Connect 不同:前者會依網域需求進一步評估,並非比對到某個網路就立即建立連線。網域請填主機名稱,例如 example.com,不要填入 https://example.com/path 這類完整 URL。

  • 先確認是否有網域評估入口。若目前頁面只提供網路條件,請勿將網域填入 SSID 欄位;可先透過網路條件連線,再由 Config 處理網域分流。
  • 排除前置規則攔截。若較前面的網路規則已符合條件並執行 Disconnect,後續的網域評估就不會再覆蓋該動作。
  • 使用新的解析與連線進行驗證。已開啟的網頁、快取結果或重複使用的連線,不一定會觸發新的評估;請關閉測試頁面後重新送出請求,並觀察系統連線狀態。
  • 確認 DNS 路徑。應用程式使用自己的加密 DNS、快取或直接使用 IP 位址,可能導致實際請求未經過預期的系統網域解析路徑;請勿假設所有應用程式都會產生相同的觸發結果。

以下僅示範 Config 分流語法,不是 On Demand 設定,也不應直接覆蓋現有設定。範例中的網域僅供說明;PROXY 對應的實際對外連線仍須由使用者的現有設定決定。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

條件衝突時,依規則順序判斷

On Demand 會依規則順序評估,符合適用規則後就執行對應動作;它不會累加所有符合結果,也不是永遠由 Connect 優先於 Disconnect。請將明確的例外排在涵蓋範圍較廣的條件之前。同一條規則中的不同條件也不代表符合任一項就一定成立:例如指定 Wi-Fi 介面並限制 SSID 時,介面與名稱都必須符合;同一名稱清單則可包含多個候選名稱。

規則順序 目前網路 判斷與調整方式
所有 Wi-Fi Connect 排在前,指定 SSID Disconnect 排在後 已連線至指定 SSID 前面的寬泛規則會先符合;請將指定 SSID 例外移到前面。
指定 SSID Disconnect 排在前,其他 Wi-Fi Connect 排在後 已連線至指定 SSID 先執行例外動作;其他 Wi-Fi 條件留待後續網路判斷。
Wi-Fi 例外排在前,Cellular Connect 排在後 已切換至行動網路 Wi-Fi 條件不符合,接著評估行動網路條件。
全網路 Connect 排在前,網域評估排在後 符合前面的全網路條件 先處理 Connect;不能因此判定後續的網域評估有效。

若沒有符合任何條件,請勿直接推論「一定會中斷」。既有連線、系統目前狀態與其他設定都可能影響觀察結果。若需明確設定預設行為,請在介面支援的範圍內新增清楚的末尾規則,並分別從已連線與未連線兩種起始狀態進行驗證。

也要區分 Disconnect、Ignore 與流量策略 DIRECT。Disconnect 是按需連線動作;Ignore 不等於強制中斷連線;DIRECT 則是分流策略。將三者視為同義詞,是「明明設定了直連,卻仍顯示 VPN」的常見誤解。

使用固定測試表驗證自動連線

不要只看 Home 的開關。請一併記錄系統 VPN 狀態、目前網路與目標請求結果。每次修改後先儲存,再觸發新的網路條件;單次成功只代表該情境通過,不能取代其他情境的測試。

  1. 指定 Wi-Fi:從 VPN 未連線的狀態加入例外 SSID,送出新請求並記錄是否仍維持未連線;再從已連線狀態重複測試。
  2. 其他 Wi-Fi:切換至另一個實際可用的 SSID,確認結果符合預設的通用 Wi-Fi 條件,而非沿用上一個網路的判斷。
  3. 行動網路:在系統設定中關閉 Wi-Fi,確認行動數據可用後再存取目標,記錄是否自動連線以及頁面是否能開啟。
  4. 網域評估:在沒有前置規則直接決定動作的情況下,分別造訪待測網域與對照網域,避免重複使用原頁面的連線。
  5. 重新測試:等系統重新評估網路後再測一次,例如重新加入 Wi-Fi。記錄實際結果,不要假設一定會在固定秒數內完成。

常見問題與恢復手動控制

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

先前往 Settings → On Demand 關閉自動觸發,再回到 Home 中斷連線。若只關閉 Home 開關,卻保留符合條件的 Connect 規則,系統之後仍可能重新嘗試連線。若依然自動連線,請前往系統 VPN 設定詳細資料,確認 Connect On Demand 狀態與目前使用的設定。

已將家中 Wi-Fi 設為 Disconnect,為什麼還是會連線?

先在系統 Wi-Fi 頁面逐字確認 SSID,再檢查該例外是否排在所有 Wi-Fi 或全網路 Connect 規則之前。不要只確認規則存在;請記錄實際順序,暫時停用其他寬泛條件後,重新加入該 Wi-Fi 測試。

切換至行動網路後顯示連線成功,網頁卻仍無法開啟?

暫時關閉 On Demand,在同一個行動網路上手動連線測試。若仍然失敗,問題就不應繼續歸因於觸發條件;請確認 Home 中選取的設定、現有服務參數與 Global Routing,再檢查 Config 的比對結果。

設定了 DOMAIN-SUFFIX,為什麼開啟網站時不會自動連線?

這個關鍵字只負責 Config 分流。請回到 Settings → On Demand,確認是否已設定支援的網域評估條件;若介面沒有此入口,就透過網路條件觸發連線,連線後再由 Config 分流,不要混用這兩類規則。

如何先恢復成完全手動控制?

記錄現有條件後關閉 On Demand,儲存並回到 Home 中斷連線,再檢查系統 VPN 設定詳細資料中的按需狀態。重新加入 Wi-Fi 並送出一次新請求,確認不會自動連線後再結束測試;不必先刪除現有訂閱或重建所有規則。

最後應整理出一份能說明原因的設定:哪個網路會觸發連線、哪個 SSID 是例外、網域是否參與系統評估,以及連線建立後由哪份 Config 負責分流。日後更新現有訂閱或變更對外連線設定時,請先驗證手動連線,再重新測試上述情境,避免將服務參數變更與自動連線條件混在一起排查。

App Store 正版查核