On Demand 管理系統 VPN 連線何時建立或中斷,並不決定個別請求使用哪種出站策略。本文適合已能手動連線,並希望依 Wi-Fi、行動網路或網域條件自動連線的使用者。請前往 Settings → On Demand 設定並逐項驗證,再確認 Home → Global Routing 與 Config 中的分流規則。
先釐清 On Demand、連線狀態與分流策略
Shadowrocket(小火箭)的按需連線由 Apple 平台的系統 VPN 機制執行。網路環境改變,或出現符合網域評估條件的請求時,系統可依已儲存的設定決定是否建立連線。開啟 On Demand 不代表隧道此刻已連線,也不代表所有請求都會透過代理連線。
這幾個層面需要分開檢查:On Demand 決定連線時機;Home 的連線開關與系統 VPN 狀態反映目前連線情況;Home → Global Routing 決定流量處理方式。選擇 Config 時,則由目前設定中的規則決定個別請求採用哪種策略。不要只看到 VPN 標記,就認定實際請求已符合預期。
其中 Proxy、Direct 是整體處理方式,Config 使用目前設定,Scene 則依已設定的情境處理。這些選項與 On Demand 並非同一組開關。例如,系統可能已按需建立隧道,但 Global Routing 仍設為 Direct;此時「自動連線成功」與「目標請求透過代理連線」是兩件不同的事。
設定前先完成一次手動連線
本文假設使用者已有自己的服務商、連線資訊或訂閱。On Demand 不會提供伺服器位址、驗證資訊或訂閱內容。先確認同一組設定可正常手動連線,再新增自動觸發條件,才能區分連線故障與條件比對問題。
- 在 Home 檢查現有連線項目,確認位址、連接埠與協定參數均來自自己的服務資訊。連接埠請逐項照實填寫,不要因為啟用 On Demand 就一律改成
443。 - 手動開啟連線開關。若系統要求新增 VPN 設定,請閱讀提示並完成授權;這項授權與設定中的分流規則不同。
- 連線至自己有權使用的目標服務,確認目前設定可正常運作。若需要規則分流,請確認 Home → Global Routing 設為 Config,並檢查 Config 中目前選取的檔案。
- 前往 Settings → On Demand,先記下原有條件,再逐項修改。儲存後,前往系統「設定」搜尋「VPN」,進入 Shadowrocket 對應的 VPN 設定,確認按需連線已啟用。
排查時保留一份原始設定紀錄即可,不必反覆刪除 VPN 設定。刪除設定可能一併移除系統端的授權與按需狀態,導致下次連線時再次出現權限提示,也會使前後測試的條件不同。
依 Wi-Fi 名稱與行動網路設定連線條件
先將預期寫成明確條件:在哪個 Wi-Fi 名稱下要中斷、其他 Wi-Fi 下是否連線,以及行動網路下是否連線。Wi-Fi 名稱指 SSID,不是路由器管理位址,也不是目前裝置取得的區域網路 IP。請依實際名稱核對大小寫、空格與後綴。
指定 Wi-Fi 條件範例
- 項目
- Settings → On Demand
- 網路類型
- Wi-Fi
- SSID 範例
Home-WiFi- 動作
- Disconnect
只有在你希望於此網路中斷隧道時才使用;Home-WiFi 是範例名稱,請改為裝置實際連線的 SSID。
行動網路條件範例
- 項目
- Settings → On Demand
- 網路類型
- 行動網路
- 動作
- Connect
- 驗證方式
- 關閉 Wi-Fi 後送出新請求
行動網路條件與指定 SSID 條件請分別確認;行動網路不需要填寫 Wi-Fi 名稱。
在實際介面提供的條件與動作中,Connect 表示符合條件時建立連線,Disconnect 表示符合條件時中斷連線。不要把「指定 Wi-Fi 下中斷」解讀成「所有 Wi-Fi 都中斷」。若同時設定廣泛比對的 Wi-Fi 條件與指定 SSID 條件,請確認兩者的優先順序,避免較寬泛的條件先涵蓋特定條件。
- 相同名稱與不同名稱:同一台路由器的兩個頻段若使用不同 SSID,請分別確認;只填其中一個名稱,不能據此認定另一個也會比對成功。
- 權限與名稱:若條件頁面無法取得目前的 Wi-Fi 名稱,請先依系統提示檢查相關權限。名稱空白時,不要繼續以空值進行比對測試。
- 需驗證的網路:使用網頁驗證的 Wi-Fi,請先完成網路登入驗證,再測試隧道與目標服務;尚未完成網路登入,不代表伺服器參數有誤。
- 條件重疊:先保留一項特定網路條件,以及一項明確處理其他網路的方式;確認運作正常後,再新增其他 SSID。
網域觸發不等於 DOMAIN-SUFFIX 分流
網路條件關注「裝置連上了哪種網路」,網域條件關注「系統正在處理哪些網域相關請求」。系統會依網域評估條件執行按需判斷,並與 DNS 解析及已設定的評估條件有關;不能簡化成在瀏覽器輸入文字就一定會連線。應用程式是否重新發起解析、是否沿用快取或既有連線,都會影響測試結果。
在 Settings → On Demand 設定網域條件時,請填寫主機名稱,而非完整網址。例如,測試網域可填 portal.example.com,不要填 https://portal.example.com:443/account。後者包含通訊協定、連接埠與路徑,不能當成網域欄位的內容。範例網域僅用於說明格式,並非可用的服務位址。
| 設定位置 | 處理的問題 | 填寫內容 |
|---|---|---|
| Settings → On Demand | 符合網域評估條件時,是否需要建立系統 VPN 連線 | 依網域欄位要求填寫主機名稱,並確認對應的評估動作 |
| Config 中的規則 | 連線建立後,該請求採用哪種策略 | DOMAIN-SUFFIX,example.com,PROXY |
| Config 中的最終規則 | 前面的規則都未符合時,採用哪種策略 | FINAL,DIRECT |
系統的網域評估可能包含「必要時連線」的邏輯,例如與解析失敗或指定解析條件相關;這不等於「所有符合的網域都會立即連線」。請以目前條件頁面實際提供的選項為準。若介面沒有提供某個 DNS 評估欄位,請勿將其他設定格式中的欄位直接填入網域清單。
結論:以新請求驗證網域條件
保留一項自己可控制的網域條件,結束既有連線後重新送出請求,並觀察系統 VPN 狀態;確認觸發連線後,再檢查該請求符合哪項分流策略。請勿同時修改這兩個層面的設定。
三種常見組合與驗證順序
設定組合前,先明確訂出每種網路下的預期,再考慮網域例外。以下列出的是設定思路,不代表某類網路天生安全或一定要中斷連線。是否連線,取決於你的使用需求,以及目前服務是否支援該網路環境。
| 使用情境 | 條件設定方向 | 驗證步驟 |
|---|---|---|
| 指定 Wi-Fi 不連線,外出時連線 | 指定 SSID 使用 Disconnect;其他 Wi-Fi 與行動網路則依需求使用 Connect | 先連上指定 SSID,再切換至其他 Wi-Fi,最後關閉 Wi-Fi 測試行動網路 |
| 僅在行動網路下自動連線 | 行動網路使用 Connect;Wi-Fi 則明確設定為不自動建立連線 | 分別在 Wi-Fi 與行動網路下送出新請求,並確認系統 VPN 狀態 |
| 僅在需要特定網域時評估連線 | 使用網域評估條件,避免其他範圍過廣的 Connect 條件提前建立連線 | 先確認隧道尚未連線,再造訪自己的測試網域,並檢查解析與連線狀態 |
- 每輪測試只修改一項條件,記錄目前網路、實際 SSID、動作與系統 VPN 狀態。
- 切換網路後,等系統完成連線,再送出新的目標請求;不要用仍在播放的舊連線判斷新條件。
- 先確認隧道是否建立,再確認目標請求是否成功;分別記錄兩項結果。
- 若結果不符預期,先還原上一組可正常運作的條件,再檢查是否有條件重疊,或系統端的按需狀態尚未啟用。
在多個條件間頻繁來回修改,容易混淆網路切換、網域解析快取、路由處理方式與服務可用性。固定測試順序有助於減少混淆,但不能因一次測試成功,就推論所有應用程式的背景請求都會在相同時機觸發。
開關反覆切換或未觸發時,依狀況排查
為什麼手動關閉後又自行連線?
先查看 Settings → On Demand 是否仍有符合目前網路的 Connect 條件,再到系統「設定」搜尋「VPN」,確認對應設定的按需連線狀態。若要暫停自動連線,請先關閉按需機制,再關閉 Home 的連線開關;只中斷目前連線,後續請求仍可能再次觸發連線。
切換到行動網路後,為什麼沒有自動連線?
先確認裝置確實正在使用行動數據,而非仍連著 Wi-Fi;接著檢查行動網路條件的動作與系統端的按需狀態,再送出新請求。若仍未連線,請暫時停用 On Demand,並手動連線至相同項目,以區分條件未符合與服務本身無法使用。
指定 Wi-Fi 設定了 Disconnect,為什麼仍然連線?
核對目前 SSID 的完整名稱,確認是否連上名稱相似的另一個頻段或訪客網路,再檢查是否有範圍更廣的連線條件。儲存後重新連上該 Wi-Fi,並觀察系統 VPN 狀態;不要只依據條件編輯頁的開關判斷。
造訪網域沒有觸發連線,是規則寫錯了嗎?
先檢查 Settings → On Demand 的網域欄位是否誤填完整網址,再確認測試請求確實重新進行網域解析,並核對網域評估動作。Config 中的 DOMAIN-SUFFIX 只能用於流量分流,不能取代系統按需連線條件。
已自動連線,為什麼存取結果仍不如預期?
返回 Home → Global Routing 確認目前的處理方式;若使用 Config,請檢查目前設定中 DOMAIN-SUFFIX、IP-CIDR、GEOIP 與 FINAL 的順序。即使已成功觸發連線,目標請求仍可能符合 DIRECT 或其他策略;此時應繼續檢查分流設定,而非重複新增 On Demand 條件。
若曾刪除系統 VPN 設定,請先返回 Shadowrocket 手動連線並完成必要的系統授權,再確認 On Demand 是否已重新儲存。若正在測試的系統 VPN 設定並非 Shadowrocket 對應項目,請先選取正確設定,避免將另一份設定的狀態誤認為本次測試結果。