適合已在 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,單靠名稱就無法明確區分這兩個地點。
- 先在裝置的 Wi-Fi 設定中記下要測試的 SSID,例如
Home-WiFi;並確認裝置確實已連上該網路。 - 前往 Shadowrocket 的 Settings → On Demand,啟用按需連線,並在頁面提供的 Wi-Fi 條件中輸入或選取該名稱。依實際需求,分別確認符合與不符合條件時要執行的 Connect、Disconnect 等動作;實際選項請以 App 內頁面為準。
- 先只保留這組 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 是否支援行動網路,取決於具體機型。
- 先在 Home 保留同一個已確認可用的設定檔,前往 Settings → On Demand,只設定要測試的 Cellular 條件。
- 在裝置設定中關閉 Wi-Fi,確認狀態列顯示正在使用行動網路,再觀察系統 VPN 狀態是否依所選動作變化。
- 重新開啟 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 模式下,為已進入規則處理的請求選擇策略。
- 只測試網域時,請先暫時移除容易同時符合的 Wi-Fi、Cellular 條件,記錄 VPN 初始狀態,再發出一次新的網域請求。
- 存取時未觸發,請確認輸入的是網域而非 IP 位址,並核對條件中填寫的主機名稱、後綴及 App 內提供的比對選項。
- 若連線已建立,但存取結果不如預期,請改為檢查 Home 中的設定檔與 Global Routing;不要把規則比對問題誤認為網域觸發失敗。
例如,規則 FINAL,PROXY 是前面的規則都未符合時所套用的預設策略,不能讓 On Demand 自動辨識尚未設定的網域條件。反過來說,網域條件觸發連線後,也不保證該網域一定使用 PROXY:在 Config 模式下,實際策略仍取決於規則順序與比對結果。
多個條件同時啟用時,該如何排查
不要假設 Wi-Fi、Cellular 與網域條件之間有一套適用所有情境的固定優先順序。裝置目前實際使用的網路、條件是否符合、系統 VPN 狀態,以及是否真的發出網域請求,都會影響觀察結果。排查條件「衝突」時,較可靠的做法是逐一確認前提,再依序啟用各項條件,而不是調整規則清單的順序來猜測 On Demand 的動作。
先記錄裝置連上的是目標 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 狀態與存取結果為準。
儲存設定前的檢查清單
- 已在 Home 手動確認設定檔可用;On Demand 無法修復失效的連線設定檔。
- Wi-Fi 條件使用實際 SSID,且測試時裝置確實已連上該網路。
- 在行動數據可用且 Wi-Fi 已中斷時,單獨測試 Cellular 條件。
- 以新的網域請求測試網域條件,不要用規則關鍵字取代觸發條件。
- 分別檢查連線狀態與分流結果;需要依規則處理時,再確認 Global Routing 是否處於 Config 模式。
Shadowrocket 是 App Store 上的一次性買斷 App;買斷 App 不等於購買線路方案。On Demand 操作的是裝置上的連線條件,仍須由使用者自行準備可用的設定檔。若尚未確認 App 來源,可先查看本站的正版核驗說明,再依使用教學完成基本連線。