Shadowrocket On Demand 設定教學:Wi-Fi、行動網路與網域觸發條件

On Demand 會依據目前的網路和網域條件,決定何時嘗試建立或中斷 VPN 連線。請先分別測試各項條件,再組合使用;它不會取代 Home 中的連線選擇,也不會決定請求最後套用哪條規則。

本文重點

適合已在 Shadowrocket(小火箭)匯入自己的可用設定檔,並希望切換 Wi-Fi 與行動網路時減少手動操作的讀者。下文說明 Settings → On Demand 的設定順序、Wi-Fi 名稱與網域的填寫範圍,以及自動連線結果不如預期時的逐項檢查方式。

先分清按需連線與規則分流

On Demand 負責「何時連線」:裝置進入特定網路環境,或出現符合條件的網域請求時,系統會依照已儲存的 VPN 設定檔嘗試連線或中斷連線。Home 中選取的設定檔、節點及 Global Routing,則決定連線建立後的流量走向。混淆這兩個層次,容易誤以為「開關已自動開啟,網頁卻沒有依預期分流」。

確認目前使用的網路核對觸發條件執行連線動作檢查分流結果

開始前,請先在 Home 手動連線一次,確認系統已授予 VPN 權限,且自己的設定檔可正常使用。接著前往 Settings → On Demand 檢查按需連線設定。首次啟用或修改條件後,請交叉確認系統 VPN 狀態與 Shadowrocket 的 Home 畫面;不要只憑 App 畫面上的開關,就認定所有請求都經過同一出口。

依 Wi-Fi 名稱設定連線與中斷連線

Wi-Fi 條件比對的是裝置目前連線的無線網路名稱,也就是 SSID;不是路由器的備註名稱,也不是網頁網址。設定前,請先在裝置的 Wi-Fi 設定中確認實際名稱;若有多個同名網路,判斷會較困難。如果住家和工作場所使用相同 SSID,單靠名稱就無法明確區分這兩個地點。

  1. 先在裝置的 Wi-Fi 設定中記下要測試的 SSID,例如 Home-WiFi;並確認裝置確實已連上該網路。
  2. 前往 Shadowrocket 的 Settings → On Demand,啟用按需連線,並在頁面提供的 Wi-Fi 條件中輸入或選取該名稱。依實際需求,分別確認符合與不符合條件時要執行的 Connect、Disconnect 等動作;實際選項請以 App 內頁面為準。
  3. 先只保留這組 Wi-Fi 條件。中斷該 Wi-Fi 連線後再重新連上,觀察系統 VPN 狀態與 Home 的連線狀態;接著換用名稱不同的 Wi-Fi,反向測試一次。

例如,若要在連上 Home-WiFi 時中斷連線,離開後再依其他條件連線,就必須分別檢查連上與離開時的結果。SSID 的大小寫、空格及末尾字元都要仔細核對;名稱只要有一個字元抄錯,通常就無法符合條件。即使裝置靠近路由器,若實際仍在使用行動網路,也不能將結果歸因於 Wi-Fi 條件。

Wi-Fi 核對表

設定路徑
Settings → On Demand
比對對象
目前連線的 SSID
名稱範例
Home-WiFi
測試方式
中斷後重新連上該網路

先用唯一的 SSID 測試,再加入其他網路名稱。

狀態核對表

Wi-Fi 狀態
確認裝置已連上目標網路
VPN 狀態
查看系統與 Home 的顯示狀態
反向測試
切換到名稱不同的網路
異常線索
SSID 重複或名稱輸入錯誤

網路變化是測試的起點,狀態變化才是核對結果。

如何單獨測試行動網路條件

裝置離開 Wi-Fi、實際改用 Cellular 時,可由行動網路條件觸發相應動作。測試前,請先確認裝置有可用的行動數據連線;只關閉 Wi-Fi、但行動數據不可用,無法驗證 On Demand 的行動網路條件是否正常。iPad 是否支援行動網路,取決於具體機型。

  1. 先在 Home 保留同一個已確認可用的設定檔,前往 Settings → On Demand,只設定要測試的 Cellular 條件。
  2. 在裝置設定中關閉 Wi-Fi,確認狀態列顯示正在使用行動網路,再觀察系統 VPN 狀態是否依所選動作變化。
  3. 重新開啟 Wi-Fi,連上已知 SSID,並記錄第二次狀態變化。若兩次結果不同,請分別記下網路類型、連線狀態與測試時間,再加入其他條件。

「使用行動網路時連線」不代表「所有行動網路請求都使用 PROXY」。連線建立後,若 Global Routing 選擇 Direct,請求仍可能直接連線;若選擇 Config,請求則會繼續依照設定檔中的規則比對。Proxy、Direct、Config、Scene 是 Global Routing 的不同模式,應與 On Demand 的連線動作分開檢查。排查問題時,請先固定一種 Global Routing 模式,避免一次變更多個變數。

判斷重點:先確認網路已切換

行動網路測試未出現預期動作時,請先確認裝置已離開 Wi-Fi,且行動數據可用,再檢查 On Demand。不要先修改節點、規則或訂閱,這些項目無法證明行動網路觸發條件是否符合。

網域條件何時觸發

網域條件會在出現指定名稱相關請求時嘗試連線,並非每次在瀏覽器網址列輸入文字都一定會觸發。測試時應使用容易辨識的網域,並觀察實際發生的名稱解析或連線行為。若已有連線、解析結果已快取,或 App 直接存取 IP 位址,單次瀏覽頁面可能不足以驗證網域觸發。

使用 example.com 作為測試網域,可說明填寫格式,但它只是範例,不代表有可供觸發測試的服務。正式核對時,請選擇自己有權存取、且能穩定產生新請求的網域,並依設定頁支援的格式填寫。網域條件與規則中的 DOMAIN-SUFFIX,example.com,PROXY 並不相同:前者用來判斷是否嘗試建立 VPN 連線;後者則是在 Config 模式下,為已進入規則處理的請求選擇策略。

例如,規則 FINAL,PROXY 是前面的規則都未符合時所套用的預設策略,不能讓 On Demand 自動辨識尚未設定的網域條件。反過來說,網域條件觸發連線後,也不保證該網域一定使用 PROXY:在 Config 模式下,實際策略仍取決於規則順序與比對結果。

多個條件同時啟用時,該如何排查

不要假設 Wi-Fi、Cellular 與網域條件之間有一套適用所有情境的固定優先順序。裝置目前實際使用的網路、條件是否符合、系統 VPN 狀態,以及是否真的發出網域請求,都會影響觀察結果。排查條件「衝突」時,較可靠的做法是逐一確認前提,再依序啟用各項條件,而不是調整規則清單的順序來猜測 On Demand 的動作。

確認網路類型確認條件符合核對 VPN 狀態檢查路由模式重新測試存取結果

先記錄裝置連上的是目標 SSID、其他 Wi-Fi,還是 Cellular;接著核對相應條件的名稱與動作。若連線狀態已如預期變化,再檢查 Home 中選取的設定檔與 Global Routing。只有在需要診斷特定網站時,才檢查網域觸發及 Config 中的規則。如此可將問題分成「未觸發連線」、「連線後未符合預期規則」及「設定檔本身無法使用」三類。

回到住家 Wi-Fi 後,為什麼沒有如預期中斷連線?

在裝置的 Wi-Fi 設定中,核對目前 SSID 是否與 On Demand 填寫的名稱相同,再檢查該條件選擇的是 Connect 還是 Disconnect。先停用其他條件,只測試離開及重新連上該 Wi-Fi 的結果。

關閉 Wi-Fi 後,為什麼沒有自動連線?

先確認裝置確實已切換至可用的 Cellular,而不是暫時沒有網路;接著在 Settings → On Demand 單獨檢查行動網路條件。若手動連線也失敗,請先排查自己已有的設定檔是否可用。

開啟指定網站後,為什麼 VPN 狀態沒有變化?

核對網域條件的填寫內容,並確認存取時不是直接使用 IP 位址。以明確的新請求重新測試,同時暫時移除可能同時生效的網路條件,避免將既有連線狀態誤認為新觸發結果。

VPN 已連線,為什麼流量看起來仍是直接連線?

前往 Home 查看 Global Routing 是否設為 Direct。若要依設定檔規則分流,請檢查 Config 模式與相應規則;On Demand 只負責觸發連線,不會替規則選擇 PROXY 或 DIRECT。

完成個別測試後,再逐一恢復條件,每次只變更一項,並分別記錄使用目標 Wi-Fi、其他 Wi-Fi 與 Cellular 時的結果。若某種組合無法穩定重現,保留必要的觸發條件,通常比疊加更多條件更容易檢查。修改後,仍應以系統實際顯示的 VPN 狀態與存取結果為準。

儲存設定前的檢查清單

Shadowrocket 是 App Store 上的一次性買斷 App;買斷 App 不等於購買線路方案。On Demand 操作的是裝置上的連線條件,仍須由使用者自行準備可用的設定檔。若尚未確認 App 來源,可先查看本站的正版核驗說明,再依使用教學完成基本連線。

App Store 正版核驗