適合已有自己的連線服務,且能在 Shadowrocket 手動連線的使用者。先釐清 On Demand 與流量規則的差異,再設定 Wi-Fi SSID 和行動網路條件,最後確認網域評估的限制。文中的居家與通勤方案是條件設定範例,並非可直接匯入的設定檔;完成後請分別測試網路切換、網域存取及手動停止三種情境。
開始前:確認 App 來源與手動連線
Shadowrocket(小火箭)是 Apple 平台的付費用戶端,唯一取得管道是 App Store,採一次性買斷。核對正版時,請一併確認官方圖示、開發者 Shadow Launch Technology Limited,以及 App ID 932747118。iPhone、iPad 的系統需求及其他 Apple 裝置的相容範圍,請以 App Store 頁面標示為準。購買用戶端與使用者已有的連線服務是兩回事。
On Demand 負責自動化,不會補上缺少的伺服器位址、驗證資訊或訂閱內容。開始前,請先在 Home 選取已有的連線,手動啟用並存取預定使用的目標;確認這一步正常,後續測試才有意義。若使用自己已有的訂閱,請先完成匯入與更新,再確認目前選取的項目仍可使用。
- 在 Config 保留目前設定的副本,記下正在使用的設定名稱,避免將自動連線故障和規則修改混為一談。
- 在 Home 檢查 Global Routing;若要依設定檔分流,請使用 Config,並確認已選取所需的連線。
- 手動啟用連線,依系統提示允許 VPN 設定,再測試一個需要經過 Proxy 的目標,以及一個預期直接連線的目標。
- 記下目前 Wi-Fi 的完整 SSID,並確認行動數據可用,再前往 Settings → On Demand。
On Demand 與 Global Routing 分別控制什麼
On Demand 透過系統 VPN 的按需規則,決定何時建立或停止通道;Global Routing 則決定通道運作時如何處理流量。兩者不是同一個開關。尤其要分清 Disconnect 與 Direct:前者是按需規則中的連線動作,後者是流量路由選擇。切換至 Direct 不能取代關閉自動連線。
| 設定項目 | 控制範圍 | 檢查重點 |
|---|---|---|
| On Demand | 依網路條件決定通道連線行為 | 條件是否符合、動作是否正確 |
| Global Routing → Proxy | 以 Proxy 模式處理流量 | 不要用它驗證 Config 中的分流結果 |
| Global Routing → Direct | 以直接連線模式處理流量 | 通道已建立不代表流量經過 Proxy |
| Global Routing → Config | 依目前設定中的規則選擇策略 | 檢查規則順序與最後命中的策略 |
| Global Routing → Scene | 依已設定的情境安排路由 | 檢查情境條件,避免與按需條件混淆 |
初次排查時,先固定使用 Global Routing → Config,不要同時加入 Scene 的額外條件。看到系統 VPN 狀態後,仍須查看實際請求命中的策略;狀態圖示只能表示通道狀態,無法證明特定網域一定經過 Proxy。
依 Wi-Fi SSID 設定:分別處理指定網路與其他網路
SSID 是 Wi-Fi 網路名稱,不是路由器管理位址,也不是閘道 IP。請在系統 Settings → Wi-Fi 查看目前連線的名稱,並照原樣輸入,確認大小寫、空格與標點符號。名稱相似不代表相同;路由器改名後,舊條件也不會自動更新為新名稱。
前往 Shadowrocket 的 Settings → On Demand,編輯 Wi-Fi 對應條件。若要在「回到家中指定網路時停止通道」,請將該 SSID 的動作設為 Disconnect;其他 Wi-Fi 是否連線,則需另外明確設定。編輯頁面提供的欄位以目前安裝的 App 介面為準,請勿將以下條件紀錄當作 Config 檔語法貼上。
- 先記下測試用 SSID,例如
Home-Study,並確認裝置確實已連上該網路。 - 將該 SSID 設為 Disconnect。若有多項條件,請先檢查指定 SSID 條件,再檢查涵蓋其他 Wi-Fi 的通用條件,避免通用條件先被套用。
- 明確選擇其他 Wi-Fi 所需的動作;不要將未設定的項目視為會自動沿用行動網路的行為。
- 儲存並啟用 On Demand,依系統提示確認 VPN 設定,再切換至另一個 Wi-Fi,然後切回測試用 SSID。
行動網路與兩種條件範例
行動網路條件對應 Cellular,不應填入電信業者名稱,也不要在此使用 Wi-Fi SSID。若希望離開 Wi-Fi 後自動建立連線,可將 Cellular 的動作設為 Connect。雙 SIM 裝置、訊號較弱的區域,以及 Wi-Fi 與行動網路反覆切換時,請觀察實際網路是否穩定;不要將每次重新連線都歸因於已有連線失效。
居家:連上指定 Wi-Fi 時停止連線
- 設定位置
- Settings → On Demand
- 指定 SSID
- Home-Study:Disconnect
- 其他 Wi-Fi
- Connect
- Cellular
- Connect
- 流量路由
- Global Routing → Config
適用於在家中可直接存取所需目標的情況;Home-Study 是示範網路名稱,請替換成自己的正確 SSID。
通勤:切換網路後維持連線
- 設定位置
- Settings → On Demand
- Wi-Fi
- Connect
- Cellular
- Connect
- SSID 例外條件
- 首次測試時不新增
- 流量路由
- Global Routing → Config
先確認兩種網路都能建立通道,再新增確實需要的例外;切換網路仍可能中斷既有工作階段。
第二種方案不保證既有視訊通話、檔案傳輸或長連線在切換網路時不中斷。網路位址、路由與通道都可能重新建立。驗收時,請先測試新開啟的網頁是否恢復,再另外確認原有 App 是否需要重新發出請求。
判斷方式:先切換單一變數,再新增例外
先只啟用 Cellular 的 Connect,測試一次離開 Wi-Fi 後的連線行為;確認正常後,再新增指定 SSID 的 Disconnect。若發生異常,就能還原最後新增的項目,不必同時重新檢查所有條件。
網域觸發:勿與 DOMAIN-SUFFIX 混為一談
網域條件與 SSID 條件的判斷方式不同。系統按需連線中的網域評估通常涉及 EvaluateConnection,以及 ConnectIfNeeded、NeverConnect 等子動作;這些功能與名稱解析需求有關,並非每次查看網頁網址就立即開啟或關閉通道。若目前 Settings → On Demand 介面沒有提供相應的網域評估欄位,就不能用 Config 中的網域規則取代。
ConnectIfNeeded 並非「只要存取此網域就一定連線」:系統會根據網域比對結果與解析條件,判斷是否需要建立 VPN。如果目標網域在目前網路已能正常解析,可能不會觸發。NeverConnect 也不是「存取此網域就中斷現有通道」,而是不為符合條件的解析需求發起連線。若要停止通道,請使用適當的網路 Disconnect 條件或手動操作。
- 測試網域評估前,請先關閉已建立的連線,並確認沒有其他 Wi-Fi 或 Cellular 的 Connect 條件搶先建立通道。
- 使用自己管理且符合測試解析條件的網域。
example.com僅用於說明語法,不保證會觸發按需連線。 - 瀏覽器快取、App 快取及既有連線都可能略過新的解析需求;重新整理一次沒有觸發,不能直接證明規則失效。
- 網域評估欄位的比對寫法請以欄位說明為準,不要預設它接受
DOMAIN-SUFFIX設定行或萬用字元。
流量分流範例:通道運作後才選擇策略
以下是 Config 中 [Rule] 的語法範例,並非 On Demand 設定。編輯時請合併至目前設定檔的相應區段,並保留其他必要內容;PROXY 使用的連線也必須已可正常使用。規則會由上而下比對,最先符合的項目決定策略。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX 用於比對網域後綴,IP-CIDR 範例涵蓋對應的私有位址網段,GEOIP 依據 IP 位址歸屬判斷,FINAL 則負責兜底。這些規則都不負責建立通道。也不要將連接埠 443 當成網域觸發開關:HTTPS 常用連接埠與按需連線條件屬於不同層級的設定。
依序驗收:切換網路、存取目標、檢查停止行為
每次只修改一項條件,並記錄「目前網路、預期動作、實際通道狀態、目標是否可存取」四項資訊。測試結果應以自己的裝置為準,不要用固定延遲或等待秒數判斷所有網路。系統排程、網路登入與解析快取都會影響觀察結果。
| 測試操作 | 預期結果 | 異常時檢查項目 |
|---|---|---|
| 連上 Home-Study | 居家範例觸發 Disconnect | SSID 拼寫、條件順序、儲存狀態 |
| 關閉 Wi-Fi,改用 Cellular | 觸發 Connect 後建立通道 | 行動數據、系統按需開關、已有連線參數 |
| 連上其他 Wi-Fi | 依其他 Wi-Fi 條件執行 | 網頁登入、網路可用性、通用條件 |
| 存取網域評估目標 | 只有符合評估條件時才發起連線 | 解析條件、快取、通道是否已存在 |
| 關閉 On Demand 後手動停止 | 不再由這組按需規則重新建立連線 | 系統 VPN 設定中的按需連線狀態 |
若要暫時完全停止自動連線,請先在 Settings → On Demand 關閉按需功能,再停止目前的連線,並確認系統 Settings → General → VPN & Device Management 中對應 VPN 設定的 Connect On Demand 狀態。系統選單名稱可能因介面版本而異。若只在 Home 關閉一次連線,卻保留仍符合條件的自動連線設定,通道可能隨後再次建立。
常見問題:自動重連、網域未觸發與規則未生效
為什麼才關閉連線,馬上又自動連上?
先前往 Settings → On Demand,檢查目前的 Wi-Fi 或 Cellular 是否仍符合 Connect 條件。若要保持停止狀態,請先停用 On Demand,再關閉 Home 的連線,並確認系統 VPN 設定中的 Connect On Demand。
填了家中 Wi-Fi 名稱,回家後為什麼沒有中斷連線?
前往系統 Settings → Wi-Fi 核對完整 SSID,檢查空格與標點符號,再確認指定 SSID 的動作已設為 Disconnect。也請檢查是否有優先順序更前面的通用 Wi-Fi 條件先被套用;修改後儲存,再重新切換網路測試。
已新增 DOMAIN-SUFFIX,存取網域時為什麼沒有自動連線?
這個關鍵字用於 Config 的流量分流,無法觸發系統建立通道。請先手動連線確認分流正常,再檢查 Settings → On Demand 是否提供並啟用所需的網域評估條件,同時排除快取及其他 Connect 條件的影響。
顯示已連線,但目標仍無法開啟,應該修改 On Demand 嗎?
通道已建立時,請先檢查 Home 中選取的連線、Global Routing → Config,以及實際命中的策略。若手動連線也失敗,應先處理連線參數或本機網路問題;不要不斷新增按需條件來掩蓋基本故障。