小火箭規則分流怎麼設?教你指定網域直連或走代理

想讓常用網站直接連線,其他網域再交給代理,卻找不到小火箭規則要在哪裡設定?本文帶你確認路由模式、查看現有規則、加入網域比對條件並檢查規則順序,最後用實際連線測試是否生效。也整理規則沒命中、設定互相覆蓋等常見狀況,讓第一次設定 Shadowrocket 分流的新手能跟著完成。

本文重點

Shadowrocket(小火箭)要依網域決定直連或代理,先將 Home → Global Routing 設為 Config,再確認目前使用的設定檔,並把網域規則加入該設定檔。本文以你已有自己的服務與訂閱為前提,說明 DOMAIN、DOMAIN-SUFFIX 的選擇方式、規則順序、編輯流程和驗證方法;範例中的網域僅用於說明語法,不是可用的服務或連線資訊。

一、先選 Config:規則分流才會依設定檔執行

Shadowrocket 的網域規則不是單獨的連線開關,而是設定檔中的路由條件。開始編輯前,先到 Home 查看 Global Routing,確認目前選的是 Config。若選成 Proxy 或 Direct,連線就會依目前的全域模式處理,不能用該次結果判斷某一條網域規則是否生效。

接著前往 Config,確認目前啟用的設定檔。若列表中有多份設定,應以正在使用的那份為準;只編輯一份未啟用的設定,不會改變目前流量的路由。規則設定與伺服器訂閱也不是同一件事:訂閱提供伺服器資料,規則則決定特定連線使用哪個策略。訂閱請向你自己的服務商取得,購買 Shadowrocket 不會附帶線路服務。

Global Routing流量處理方式能否驗證網域規則
Config依目前設定檔中的規則和策略處理可以;驗證前須確認設定檔及規則內容
Proxy以代理路徑處理一般流量不適合確認某條規則是否選擇 DIRECT
Direct使用直連路徑不適合確認某條規則是否選擇代理
Scene依已設定的場景條件處理須先確認目前場景及其對應設定

本文以下以 Config 為前提。若你在測試時切換過全域模式,請先記下原先設定,再切回 Config 重測。這樣可以避免把「全域模式覆蓋了規則」誤認為網域條目寫錯,也能分開判斷伺服器連線與規則匹配兩類問題。

二、按匹配範圍選 DOMAIN 或 DOMAIN-SUFFIX

網域規則比對的是連線可取得的主機名稱,不是完整網址。若要匹配單一主機,可使用 DOMAIN;若要匹配主網域及其子網域,使用 DOMAIN-SUFFIX。規則末尾的策略決定匹配後採用直連或代理:DIRECT 表示直連,PROXY 表示走代理策略。設定策略後,還要確認相應的代理伺服器或策略組可用。

DOMAIN,api.example.com,PROXY
DOMAIN-SUFFIX,example.net,DIRECT
FINAL,PROXY

第一行只針對 api.example.com 這個完整主機名稱,讓它使用代理策略;第二行匹配 example.net 及其子網域,使用直連。第三行的 FINAL 是兜底規則:未被前兩行匹配的連線依 PROXY 處理。example.com、example.net 是文件用途的範例網域,請替換成自己要設定的目標網域。

單一主機使用代理

規則類型
DOMAIN
匹配內容
api.example.com
策略
PROXY

只匹配完整主機名稱;其他子網域不會因這一條自動納入。

主網域及子網域直連

規則類型
DOMAIN-SUFFIX
匹配內容
example.net
策略
DIRECT

後綴匹配會涵蓋主網域及其子網域,不等於任意包含相同字串的網域。

網域欄位只填主機名稱,不要加入 https://、連接埠、斜線路徑或查詢參數。例如網址是 https://api.example.com/v1/items,規則中的匹配內容應是 api.example.com,而不是整段網址。若只想處理某個網域的所有子網域,使用 DOMAIN-SUFFIX 通常比用含義較廣的 DOMAIN-KEYWORD 更容易控制匹配範圍。

三、在設定檔中新增規則並檢查順序

Shadowrocket 的介面細節可能隨版本或設定檔類型而不同;請在 Config 中開啟目前使用的設定檔,尋找規則編輯區或相應的規則管理入口。新增規則時,先選對規則類型,再填網域和策略。若設定檔由服務商提供,請先確認該設定檔是否允許本機編輯,以及更新設定檔時本機修改會如何處理;不要把完整訂閱內容或含有存取憑據的連結公開分享。

  1. 確認設定檔

    前往 Config,辨認目前使用中的設定檔。若畫面顯示多份設定,先確認編輯目標確實是日常使用的那份,避免修改另一份檔案後看不到效果。

  2. 開啟規則區

    進入選定設定檔的編輯介面,找到規則管理或規則內容。若只有唯讀檢視,請先確認該設定檔是否支援本機修改,不要直接假設任何設定檔都可編輯。

  3. 新增網域條目

    依目標選擇 DOMAIN 或 DOMAIN-SUFFIX,填入主機名稱與 PROXY 或 DIRECT。手動編輯文字規則時,欄位以英文逗號分隔,並保留規則類型、網域及策略的正確順序。

  4. 排列與儲存

    將較精確的例外規則放在可能匹配它的寬泛規則之前,檢查策略名稱無誤後儲存。若設定檔有 FINAL,讓它留在所有一般規則之後作為兜底。

  5. 切回 Config 測試

    返回 Home,確認 Global Routing 為 Config,再測試目標網域。每次只改一項規則並重新測試,能更清楚分辨是哪個變更影響結果。

規則通常依序比對,命中後就採用該條策略,不會繼續尋找下方看似更精確的條目。因此,假設要讓 api.example.com 走代理、其餘 example.com 子網域直連,應將單一主機規則放在後綴規則前面:

DOMAIN,api.example.com,PROXY
DOMAIN-SUFFIX,example.com,DIRECT
FINAL,PROXY

若把第二行移到第一行前面,api.example.com 會先命中 DOMAIN-SUFFIX,因此使用 DIRECT;排在後面的精確規則就不會生效。規則沒有語法錯誤,不代表匹配結果符合預期,順序本身也是設定的一部分。

四、用單一目標驗證直連與代理結果

儲存後先檢查三個條件:Home → Global Routing 為 Config;Config 中正在使用的設定檔就是剛才修改的檔案;規則策略名稱與設定檔中可用的策略一致。若策略指向代理群組,還要確認群組中已有有效選項。Home 中選取的預設伺服器不一定代表所有規則都使用該伺服器,實際出口取決於命中的策略及策略組設定。

結論:先確認命中哪條規則,再調整出口

看到網頁能開啟,只能證明當時的路徑可用,不能單獨證明目標命中了預期規則。先確認 Global Routing、設定檔、匹配範圍與順序,再檢查該規則指向的策略,排查結果會更明確。

測試時也要考慮網域解析與服務本身的行為。某些 App 會連接多個主機,首頁、登入、影音或圖片可能使用不同網域;只替首頁網域建立規則,未必能涵蓋所有請求。請根據實際需要逐一確認目標主機,不要為了讓單一服務正常就無限制擴大規則範圍。

五、常見錯誤:規則看似正確,結果卻相反

最常見的問題是把完整網址貼進網域欄位、混淆 DOMAIN 與 DOMAIN-SUFFIX,或把寬泛規則放在精確規則前面。手動輸入時也要檢查英文逗號、網域拼字和策略名稱;全形標點、尾端空格或自訂策略名稱不一致,都可能讓規則無法依預期工作。

只填 api,能匹配 api.example.com 嗎?

不能把不完整名稱當成 DOMAIN 的完整主機條件。若要匹配單一主機,填入完整名稱 api.example.com;若要涵蓋某個網域及其子網域,使用對應的 DOMAIN-SUFFIX。

規則已新增,為什麼仍走錯路徑?

先回到 Home → Global Routing 確認選了 Config,再確認編輯的是目前啟用的設定檔。接著檢查是否有更上方的規則先命中,以及策略名稱是否與設定檔內的選項一致。

PROXY 一定會使用 Home 選取的伺服器嗎?

不一定。若規則指向策略組,實際出口取決於該組目前的選擇;請查看設定檔中的策略配置,不要只依 Home 的預設選取狀態推斷。

服務有多個網域,要全部加入嗎?

先確認實際連線的主機名稱,再按需要加入規則。首頁、登入、API 等功能可能使用不同網域;不要只因名稱相似就使用過寬的關鍵字匹配,也不要把不確定的網域一概設為代理或直連。

若仍無法確認結果,先保留現有設定並記錄測試網域、Global Routing 模式、設定檔名稱及命中的規則位置,再逐項排查。分享診斷資料前,請遮蔽訂閱連結、帳戶資訊與其他存取憑據。規則範例只說明設定語法;需要的訂閱和伺服器資料,請向你自己的服務商取得。

從 App Store 正版取得核對開發者與應用程式 ID