On Demand 會依網路條件建立或處理 VPN 連線,不會決定每項要求的出口策略。本文適合已在 Shadowrocket(小火箭)設定好自有服務,且手動連線正常的使用者;依序設定並測試 Wi-Fi、行動網路與網域條件,即可分辨自動連線、規則分流及手動中斷的不同結果。
On Demand 與規則分流的差異
On Demand 是系統按需連線機制的設定入口,位於 Settings → On Demand。它描述的是「何時需要 VPN 連線」,而非「某個網站必須走哪條線路」。開關、條件清單與預設行為請以目前 App 顯示為準;初次設定建議只啟用一種網路條件,確認有效後再加入例外。
規則分流是在隧道建立後進行,由 Home 中的 Global Routing 和目前的 Config 決定。選擇 Config 時,要求會依所選設定檔處理;Proxy、Direct 與 Scene 是其他路由模式,並非 On Demand 的觸發條件。自動連線不代表所有要求都會經過代理;選擇 Direct 也不代表系統 VPN 已中斷。
網路切換、網域解析或後續網路存取,都可能促使系統重新評估條件,實際情況取決於已儲存的規則與系統狀態。不要把 On Demand 當成定時連線檢查工具:建立隧道、連上遠端服務,以及開啟目標網頁,是三個需要分別確認的環節。
結論:先確認隧道,再檢查路由
自動連線後網頁仍無法正常使用時,先確認系統 VPN 是否已連線,再檢查 Home → Global Routing 與目前的 Config;不要同時修改 On Demand 和分流規則,否則無法判斷是哪項修改造成結果。
設定前:建立手動連線基準
手動連線基準是指關閉自動觸發後,仍可重複取得的連線結果。建議先維持現有協定參數不變,在 Home 使用已設定好的服務連線一次;本文以使用者已有自己的服務商與訂閱為前提,不涉及服務來源。
- 前往 Settings → On Demand,記下原有設定,暫時關閉按需連線,避免疑難排解期間系統再次嘗試連線。
- 返回 Home,選取準備使用的服務。若透過 Subscribe 匯入,請先確認更新結果與實際選取的項目;清單已更新不代表系統已自動選好可用項目。
- 檢查 Home → Global Routing。若要依設定檔分流,請選擇 Config,並前往 Config 確認目前使用的檔案。
- 開啟 Home 的連線開關;首次出現系統 VPN 設定授權提示時,請依系統流程確認。完成授權不代表已連上遠端服務。
- 分別開啟一個原本可直接存取的頁面,以及一個需要現有代理策略的目標,記錄連線狀態、錯誤訊息與目前的網路類型。
- 中斷連線後再連線一次。若手動連線本身不穩定,請先檢查位址、連接埠、認證與 DNS,再設定自動觸發。
Wi-Fi:使用 SSID 區分網路條件
SSID 是 Wi-Fi 網路名稱,不是路由器管理位址,也不是存取點的硬體位址。設定 SSID 條件時,請從裝置目前的 Wi-Fi 資訊核對完整名稱,保留空格、大小寫與符號;不要自行假設比對時會忽略這些差異。
Wi-Fi 條件的建議設定取決於使用目的。例如,若不希望在家用網路自動建立隧道,而想離家後再按需連線,可將家用 SSID 設為例外;若所有網路都需要連線,則不必加入這類例外。「家用」只是使用者賦予的用途,並非系統可辨識的安全等級。
- 在裝置的 Wi-Fi 設定中記下目前的網路名稱,例如
Home-5G。這只是範例,請填入自己的 SSID。 - 前往 Settings → On Demand,查看目前介面提供的 Wi-Fi 與 SSID 條件;先閱讀清單說明,確認條件是比對包含項目還是排除項目。
- 依目標選擇相應動作。若不希望特定 SSID 自動連線,請使用該介面支援的排除或中斷行為;若介面只提供忽略選項,別把「忽略」當成「立即中斷」。
- 儲存並啟用 On Demand,在該 SSID 下發出新的要求,再切換至另一個已知網路重複測試。
- 若 App 無法取得目前的 SSID,請檢查系統是否提示相關權限,以及目前系統的存取限制。無法辨識的名稱不能作為已成功符合條件的證據。
| 測試網路 | 設定目標範例 | 觀察結果 |
|---|---|---|
Home-5G | 不主動建立新隧道 | 中斷後發出要求,檢查是否重新連線 |
| 另一個已知 SSID | 符合條件時自動連線 | 檢查系統 VPN 狀態與目標存取結果 |
| 需要網頁認證的 Wi-Fi | 先完成網路登入 | 確認可開啟認證頁後,再測試按需連線 |
公共 Wi-Fi 可能需要先透過網頁認證;此時連上網路不代表已能存取網際網路。若連線行為影響認證頁,可暫時關閉 On Demand 並中斷 VPN,完成網路認證後再恢復原設定。同一個 SSID 也可能出現在不同地點,不能只憑名稱判斷網路身分或作出安全保證。
行動網路:單獨測試切換後的連線
行動網路條件是裝置使用行動數據時的按需連線行為,應與 Wi-Fi 條件分開記錄。預設值請以目前 App 顯示為準;若希望離開 Wi-Fi 後仍能按需連線,建議先確認行動網路本身可用,再啟用相應條件。不要直接將 Wi-Fi 下的成功結果視為行動網路測試結果。
- 前往 Settings → On Demand,檢查目前介面提供的行動網路條件,並儲存目標行為。
- 關閉 Wi-Fi,確認裝置確實正在使用行動網路,且系統允許 Shadowrocket 使用行動數據。
- 發出新的要求,記錄從網路切換到 VPN 狀態變更的過程;不要只憑單次網頁載入時間判斷服務品質。
- 重新連上 Wi-Fi,檢查 SSID 條件是否如預期生效;再切回行動網路,重新測試一次。
- 若只有行動網路連線失敗,請保留 On Demand 設定,改用手動連線測試同一項服務,以區分觸發失敗與遠端連線失敗。
切換網路會改變本機位址、路由與可達性,既有 TCP 連線可能中斷,App 需要重新建立連線。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 的傳輸方式與參數各不相同;On Demand 不會修正這些協定的位址、連接埠或認證錯誤,也無法保證每個既有工作階段在切換後持續連線。
網域條件:先分清觸發網域與分流規則
網域觸發是系統按需規則中的連線評估條件,不等同於 Config 中的網域分流。Apple 系統的網域按需機制可結合網域解析條件,決定是否嘗試建立連線,並非看到任何網頁位址就一定會啟動隧道。Shadowrocket 目前介面是否提供相應編輯項目、支援哪些比對方式與動作,請以實際顯示為準;不要猜測介面未顯示的功能,再自行加入設定鍵。
網域欄位應填入主機名稱,而不是完整 URL。例如,目標頁面位於 https://portal.example.com/account,網域條件要填的主機名稱是 portal.example.com。不要加上 https://、路徑 /account 或連接埠 :443;萬用字元與子網域涵蓋範圍,則須依欄位說明確認。
- 精確主機名稱:
portal.example.com表示這個主機。是否涵蓋其他子網域,不能只憑名稱推斷。 - 網域範圍:
example.com是否涵蓋api.example.com,取決於該條件的比對語意;若沒有說明,請分別新增並測試。 - 快取影響:既有 DNS 快取或重複使用的連線,可能導致新一輪存取未產生預期的解析事件。請搭配新的要求與連線紀錄判斷,不要只連續重新整理同一頁面就下結論。
- App 行為差異:若 App 自行解析網域、使用加密 DNS 或直接存取 IP,不要假設它一定會觸發系統的網域按需條件。
Config 中的規則用來決定如何從隧道內連出。以下是設定規則區的語法範例,不是 Settings → On Demand 的輸入內容;其中 PROXY 必須能在目前的設定中解析為有效策略。這段規則本身不會註冊系統層級的網域觸發條件。
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX 用於比對網域後綴,FINAL 負責在前面的規則都未符合時套用最終策略;此例會將其他要求交給 DIRECT。若只需要「存取特定網域時走代理」,通常應先使用 Config 分流,並讓隧道按需連線,而不是為此額外疊加網域觸發條件。修改前請備份現有規則,避免用範例覆蓋整份設定。
手動開關:中斷連線不等於停用自動觸發
Home 的連線開關控制目前的連線;On Demand 則控制之後符合條件時的系統行為。啟用按需連線後,手動中斷可能只改變目前狀態;下次網路變更或出現符合條件的要求時,仍可能再次觸發連線。實際時序由系統與已儲存的條件決定,不應因為重新連線就直接判定開關失效。
剛在 Home 關閉,怎麼又連上了?
先前往 Settings → On Demand 關閉按需連線,再返回 Home 中斷連線。接著發出要求進行測試;若仍自動連線,請再到系統 VPN 設定確認是否有其他啟用按需連線的設定。
離開 Shadowrocket 後,還會自動連線嗎?
不要把離開 App 畫面當成停用系統 VPN 設定。若要暫停自動觸發,請明確關閉 Settings → On Demand,並檢查系統 VPN 狀態,而非只返回主畫面。
切換到家中 Wi-Fi 後,為什麼原本的連線還在?
先檢查 SSID 項目是否比對正確,再確認相應動作是忽略還是中斷。忽略條件不一定會取消既有連線;可先手動中斷,再測試在該網路下是否會建立新連線。
VPN 顯示已連線,為什麼目標網站還是打不開?
返回 Home 核對 Global Routing 與選取的服務;若使用 Config,請再檢查目前檔案中的規則與 DNS。先在相同網路下手動連線重測,確認問題是否與自動觸發無關。
驗收與復原:依固定順序找出問題環節
驗收紀錄可用來區分「沒有觸發」與「連線後無法使用」。建議依下表逐項測試,每完成一列再調整下一項;不要同時更新 Subscribe、切換協定、修改 DNS 和變更 SSID 條件,否則無法保留可比較的基準。
| 狀況 | 優先檢查 | 下一步 |
|---|---|---|
| 切換網路後沒有自動連線 | On Demand 開關、網路條件、SSID 辨識 | 儲存設定後重新切換網路,並發出新的要求 |
| 系統嘗試連線後失敗 | 相同服務能否手動連線 | 關閉按需觸發,檢查服務參數與網路可達性 |
| 只有網域條件沒有反應 | 比對語意、解析條件、快取與 App 的解析方式 | 先測試網路條件,再單獨重測網域條件 |
| VPN 已連線,但要求失敗 | Global Routing、Config、DNS 與遠端服務 | 查看可用的連線紀錄,區分解析失敗與連出失敗 |
| 暫時停止所有自動連線 | App 與系統中的按需連線開關 | 先停用 On Demand,再中斷目前的 VPN |
復原時應恢復至最精簡的可用狀態:關閉 Settings → On Demand,保留原有服務與 Config,並在 Home 手動連線。確認恢復正常後,先新增一項 Wi-Fi 條件,再測試行動網路,最後才處理確有需要的網域條件。分享疑難排解紀錄時,請隱藏訂閱憑證、服務密碼與個人網路名稱,只保留必要的狀態與錯誤描述。
結論:完成三項獨立測試再驗收
分別完成已知 Wi-Fi、行動網路與手動暫停三項測試,記錄「是否觸發、是否連通、是否依規則送出」。只有三項結果都符合目標,才建議長期啟用 On Demand。