On Demand 管理 VPN 通道何時建立,不會取代通道建立後的流量分流規則。本文假設你已有自己的服務商與訂閱,且能正常手動連線,依指定 Wi-Fi、行動網路和網域需求三種情境,說明設定方式、驗證順序與停用方法;適合想減少手動切換,又需要明確連線界線的 iPhone/iPad 使用者。
先分清連線與分流
Shadowrocket(小火箭)的 Home 開關用來啟動或停止連線;Settings → On Demand 管理依條件連線的行為;Home → Global Routing 則決定連線後如何處理流量。這三處設定屬於不同層次,不能把「顯示 VPN 狀態」直接當成「每個要求都經過代理」。
On Demand 仰賴 Apple 系統的 VPN 按需機制。網路變更或出現符合條件的網路需求時,系統會檢查已儲存的條件。它不是持續檢查網頁內容的計時器,也不會因頁面出現某段文字就啟動連線。離開 Shadowrocket 的前景畫面,也不代表已交由系統執行的按需設定會關閉。
建立最精簡的測試設定
首次設定時只啟用一項條件,確認運作正常後再加入例外。不同的 App 介面語言與系統環境,條件編輯入口的名稱或可用欄位可能不同;以下從 Settings → On Demand 開始,依實際畫面提供的網路、SSID、網域與連線動作欄位操作,不要把範例條件當成可直接匯入的設定檔。
-
確認手動連線
前往 Home,選取已有的伺服器,開啟連線開關並完成系統 VPN 設定授權。執行 Connectivity Test,再開啟已知可正常載入的網頁,分別記錄測試結果與實際瀏覽結果。
-
檢查流量分流模式
在 Home → Global Routing 查看目前選項。日常依規則使用時選擇 Config,並前往 Config 確認正在使用的設定檔,避免自動連線後仍處於 Direct,誤以為觸發失敗。
-
設定單一條件
前往 Settings → On Demand,先只設定一項網路條件。例如,針對目前 Wi-Fi 的正確 SSID 設定連線動作;儲存條件並啟用 On Demand。不要同時加入多項彼此重疊的條件。
-
重新建立測試情境
先離開目標網路,再重新加入,接著發起新的網頁要求。觀察系統 VPN 狀態與 Home 狀態,不要只看 On Demand 開關是否已開啟。
-
逐項新增例外
確認單一條件正常後,再加入家用 Wi-Fi、行動網路或網域需求。每新增一項,都重複切換網路與瀏覽測試;若失敗,移除最後新增的條件,保留已驗證的設定。
若畫面沒有提供獨立的網域評估欄位,就不應把網域填入 SSID 欄位,也不要以為在 Rule 中加入網域規則就完成了按需觸發。前者的比對對象錯誤;後者只會改變已進入通道的流量路徑。
設定 Wi-Fi 與行動網路條件
Wi-Fi 條件通常以 SSID,也就是無線網路名稱為依據。SSID 不是路由器管理位址,也不是裝置名稱。建議查閱系統目前連線的網路資訊後再填寫,並保留空格、大小寫與標點;例如 Home-WiFi 和 Home-WiFi-5G 應視為兩個不同網路,不能因為它們來自同一台路由器,就認定一定會符合條件。
兩種網路條件的設定原則
指定 Wi-Fi
- 先確認正確的 SSID,再選擇符合需求的連線或中斷動作。
- 若希望在家用 Wi-Fi 下保持中斷,請將它設為明確例外,並確認沒有被範圍較廣的 Wi-Fi 條件優先涵蓋。
- 遇到需要網頁認證的訪客網路,請先完成網路認證,再測試按需連線。
行動網路
- 裝置必須具備並啟用行動數據連線;僅支援 Wi-Fi 的 iPad 不適用此條件。
- 請以實際使用的網路介面為準。連上手機熱點時,本機通常仍會被視為使用 Wi-Fi。
- 測試時先關閉 Wi-Fi,確認行動數據可正常使用,再發出新的瀏覽要求。
先明確寫下各種網路環境下要「連線」還是「中斷」,再設定條件;網路名稱本身無法證明網路值得信任。
若多項按需條件會依比對順序執行,應讓明確的例外排在範圍較廣的條件之前。例如先設定家用 SSID 的中斷需求,再設定其他 Wi-Fi 的連線需求。請依實際介面提供的排序方式確認,不要假設最新新增的條件一定有較高優先順序。預設條件範圍過廣,是「明明已替家用網路設定例外,卻仍然連線」時常見的排查方向。
- 網路變更:從 Wi-Fi 切換到行動網路後,舊連線可能會短暫保留或重新建立;請以切換後發出的新要求進行驗證。
- 系統權限:若無法辨識 SSID,請確認系統對相關網路資訊的存取限制及畫面提示,不要以空字串代替網路名稱。
- 自動中斷:只設定連線條件,不代表離開該網路後一定會中斷;也要檢查其他條件與預設行為。
網域觸發不等於網域分流
網域相關的按需機制通常由系統評估網域解析需求,而不是逐一讀取瀏覽器網址列。若畫面提供這類條件,請填寫網域,例如 example.com,不要填入 https://example.com/path。比對範圍與子網域行為應以欄位說明為準,不能直接套用 Rule 中 DOMAIN-SUFFIX 的語意。
在 Apple 的按需機制中,網域評估可在符合解析條件時要求建立連線,並非每次存取網域都必定無條件建立通道。因此,「存取目標網域卻沒有立即連線」時,應一併檢查評估動作、目前的 DNS 結果與快取,不能只確認網域拼字。瀏覽器已有連線、App 使用自己的加密 DNS,或直接使用 IP 位址,都可能導致系統未收到預期的網域解析需求。
| 位置 | 處理的問題 | 驗證方式 |
|---|---|---|
| Settings → On Demand | 是否依網路或網域需求建立 VPN | 中斷連線後產生新的需求,觀察是否連線 |
| Config 中的 Rule | 通道內的要求符合哪條規則,以及採用哪種策略 | 連線後查看要求記錄與命中策略 |
| Home → Global Routing | 目前採用哪種流量處理模式 | 確認 Config、Proxy、Direct 或 Scene |
以下是「指定網域走代理,其餘直連」的 Rule 範例,不是 On Demand 條件。它必須放在目前使用的設定檔之 Rule 區段,並在 Config 模式下驗證;代理策略也必須能使用你已有且可正常連線的伺服器。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX 會比對指定網域及其子網域,FINAL 則作為最後的兜底規則;規則依序由上往下比對。GEOIP 與 IP-CIDR 是依目標 IP 的地理位置或網段進行比對,也不會自行啟動尚未建立的 VPN。按需連線成功後,這些規則才會負責後續的流量分流。
連線後檢查 Global Routing
自動連線只是第一步。測試時應固定 Global Routing 模式,否則同一個網域可能因模式不同而走不同路徑,掩蓋真正的按需連線問題。以下比較的是 Shadowrocket 本身的設定,不涉及服務商差異。
Config
建議依目前的設定檔處理流量。網域規則、IP 規則與 FINAL 的順序會影響實際連線路徑,適合在自動連線後維持明確的流量分流界線。
適用情境:已有設定檔,並希望依規則處理日常要求
Proxy
對進入通道並由此模式處理的流量採用代理路徑,可用來排除規則設定的影響;但無法取代 On Demand,也不能保證所有系統流量都會經過代理。
適用情境:短時間排查代理路徑是否可用,完成後恢復原有模式
Direct
對所處理的流量採用直接連線路徑。VPN 顯示已連線,而要求採用直連並不矛盾,因此不能只靠狀態圖示判斷是否經過代理伺服器。
適用情境:與直連結果比較,判斷問題出在目標網站或代理路徑
Scene
依已設定的場景決定對應的處理方式。測試前先檢查場景內容;場景選擇與系統是否按需建立通道,屬於不同的設定層次。
適用情境:已明確設定場景條件,並需要依場景切換處理方式
手動關閉與排查順序
啟用 On Demand 後,手動關閉 Home 開關不一定代表永久停用自動連線。之後網路變更或符合條件的存取,都可能再次觸發系統評估;實際時機也會受到系統處理手動中斷方式的影響。若要明確停止按需連線,請先前往 Settings → On Demand 停用,再回到 Home 中斷連線。
為什麼關閉後又自動連線?
先確認 Settings → On Demand 是否仍然啟用,再檢查是否有範圍較廣的連線條件涵蓋目前網路。若要暫時停用,先關閉 On Demand,再關閉 Home 開關;接著重新切換一次網路,確認沒有再次自動建立連線。
切換到行動網路後還是沒有反應?
先確認 Wi-Fi 已確實中斷,且行動數據可以正常瀏覽網頁,再核對條件比對的網路類型。重新發出瀏覽要求後觀察 Home;若手動連線也失敗,請先處理基本連線問題,不要繼續疊加按需條件。
網域填對了,為什麼沒有觸發?
檢查這項條件是否被較早的網路條件涵蓋,並確認網域評估動作。關閉已開啟的頁面後重新測試;使用私密瀏覽視窗也不保證會清除系統 DNS 快取。若 App 使用自己的 DNS 路徑,請改用能產生系統解析需求的方式交叉驗證。
已自動連線,網頁還是打不開?
在 Home 執行 Connectivity Test,並確認 Global Routing 與目前的 Config。延遲測試只反映指定測試目標的結果,不代表目標網域解析、TLS 連線建立與頁面資源載入都正常;請繼續查看要求記錄,區分解析失敗與連線失敗。
更新訂閱後需要重新設定 On Demand 嗎?
訂閱更新與按需條件屬於不同設定,通常不必只因清單更新就重新建立條件。但應確認原先選取的伺服器仍然存在、驗證資訊有效,再手動連線一次。更新伺服器清單不能取代檢查目前的 Config 與按需條件。
透過網路切換記錄完成驗收
驗收至少要涵蓋一次連上目標 Wi-Fi、一次離開目標 Wi-Fi、一次使用行動數據瀏覽,以及停用 On Demand 後手動中斷一次。每次只變更一個變數,記錄「所在網路、觸發要求、連線狀態、實際瀏覽結果」四項資訊。這樣才能分辨未觸發、已觸發但連線失敗,以及連線成功但分流錯誤這三種問題。
- 目標 Wi-Fi:重新連上正確的 SSID,發出新的要求,確認結果符合該條件設定的連線或中斷動作。
- 例外網路:切換到設定為中斷的 Wi-Fi,確認沒有被其他範圍較廣的條件涵蓋。
- 行動網路瀏覽:關閉 Wi-Fi 後確認行動數據可用,再次開啟測試網域並觀察狀態。
- 停止自動連線:停用 Settings → On Demand,再關閉 Home 開關,重複切換網路以確認停用結果。
按需連線會經歷通道建立與網路切換,不要期待每次切換都完全沒有等待,也不要只因啟用自動連線就認定耗電較低。保留必要條件、移除重複條件,並在修改後完成上述驗收,比不斷新增兜底規則更容易找出問題。