Shadowrocket 小火箭分流設定:指定網站走代理的規則設定方法

使用 FINAL,DIRECT 作為預設直連,再以 DOMAIN-SUFFIX 列出需走代理的網站,搭配 Global Routing 的 Config 模式設定網站分流,並說明驗證方式。

本文重點

本文適合已在 Shadowrocket(小火箭)中設定好自有服務商連線,且希望只讓少數網站使用代理的使用者。操作重點是保留可還原的設定檔、建立網域允許清單、將 FINAL,DIRECT 放在規則末尾,再切換至 Global Routing → Config。完成後,分別檢查目標網站與清單外網站的新連線紀錄,確認命中的規則及實際策略,不要只憑網頁能否開啟來判斷分流是否正確。

一、先確認預設直連的範圍

「只讓指定網站走代理」代表預設直連:列出的網域命中代理規則,其餘連線則交由 FINAL,DIRECT 處理。這只依設定中的規則比對,不會按頁面內容或使用者所在區域自動分類。未列入清單的登入網域、圖片網域與 API 網域,也會依各自命中的規則處理。

本文假設使用者已有自己的服務商與訂閱。買斷用戶端 ≠ 購買線路方案;規則只會選擇連線路徑,不會產生可用的伺服器位址、憑證或線路。開始前,請確認 Home 中已有可用連線,並了解目前選取的連線會供哪個代理策略使用。

2 種結果
清單內網域命中代理,清單外預設 DIRECT
1 條兜底規則
FINAL,DIRECT 放在規則清單末尾
2 組檢查
分別驗證目標網域與清單外網域

二、Global Routing 應選擇 Config

Home → Global Routing 可決定目前連線如何使用設定。修改網域規則後若仍停留在 Proxy 或 Direct,常會導致分流結果與預期不符。此情境應選擇 Config,讓連線依目前生效設定中的規則處理。

Config

建議使用

依目前設定中的規則決定策略。將網域代理規則放在前面,並把 FINAL,DIRECT 放在末尾,才能設定本文所述的預設直連方式。

適用情境:只讓清單中的網站走代理。

Proxy

遭接管的連線會採用代理路由,而非依本文的網域清單逐條分流。可暫時用來比對代理路徑,但不能據此證明分流已生效。

適用情境:短時間確認目標是否可透過代理存取。

Direct

遭接管的連線會採用直連路由。即使 Config 中寫有網域代理規則,也不能因此預期這些規則會在此模式下完成分流。

適用情境:比對目前網路的直連可用性。

Scene

依已設定的情境條件決定路由方式。這不等同於依網站分流;若要使用,應另外確認情境定義及實際選擇結果。

適用情境:已有明確情境切換需求的設定。

Settings → On Demand 用於設定隨選連線條件,不負責指定某個網站使用哪種策略。為避免排查時同時變動多個因素,請先維持現有 On Demand 設定,在連線已開啟的狀態下驗證 Config 規則,再另外確認隨選連線是否符合日常需求。

三、設定最精簡的網域規則

以下使用保留的示例網域說明語法,並非可直接用來驗證代理服務的目標。請先將網域替換為實際需要走代理的網站,再寫入目前設定的 [Rule] 區段。若現有設定已包含該區段,只需修改其中的規則,不要重複新增多個同名區段。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN,login.example.net,PROXY
FINAL,DIRECT

PROXY 代表代理策略;使用前,請確認目前設定如何解析此策略,以及 Home 中選取的連線。若現有設定使用自訂策略組,請改用設定中確實存在、且選定代理出口的策略組名稱,不要任意填入名稱並期待系統自動建立。若策略組目前選取 DIRECT,網域規則命中該組後仍可能直連。

規則比對範圍檢查重點
DOMAIN-SUFFIX,example.com,PROXYexample.com 及其子網域包含 www.example.com,但不包含 otherexample.com
DOMAIN,login.example.net,PROXY僅限 login.example.net不涵蓋 example.net 或其他子網域
FINAL,DIRECT此前尚未命中的連線放在末尾,以維持預設直連

網域欄位不可填入 https://、路徑、查詢參數或連接埠。例如,網站網址中的 /account 不是 DOMAIN-SUFFIX 的比對內容;連線使用 TCP 443,也不會讓網域規則只比對 HTTPS。這類規則是依主機名稱選擇路徑,無法只代理同一網域中的特定網頁。

四、儲存設定並套用至連線

在 Config 中編輯的檔案必須與目前生效的檔案一致。建議先備份原設定,再使用用途明確的本機設定進行測試。若原設定由遠端內容維護,請先確認後續更新是否會覆蓋本機修改,避免本次驗證正確,下次更新後卻又恢復舊規則。

  1. 記錄原有設定

    進入 Config,確認目前生效的設定並備份原檔。記下原本的 Global Routing 選項,方便測試結束後還原。

  2. 編輯規則

    在 Config 中開啟準備使用的本機設定進行編輯,於 [Rule] 區段加入實際網域規則。確認前方沒有衝突項目,並將 FINAL,DIRECT 放在所有需要檢查的規則之後。

  3. 儲存並選用

    儲存檔案後返回 Config,確認選用的是剛編輯的設定,而非同名遠端檔案或其他備份。若發生解析錯誤,請先修正規則欄位及策略名稱。

  4. 設定路由

    返回 Home → Global Routing → Config,確認目前代理連線或策略組的實際出口,再開啟連線。若系統要求加入 VPN 設定,請依照系統提示完成授權。

  5. 重新建立連線

    儲存後重新送出目標請求;為避免沿用舊連線,可先停止再重新開啟連線,接著重新載入目標頁面。之後查看新產生的連線紀錄,確認命中的規則。

在 Home 更新 Subscribe,主要是重新整理既有服務商的連線資訊,不等於在 Config 中切換規則檔案。若伺服器位址更新,應同時確認代理策略仍能選取可用連線;若分流結果改變,則應優先確認生效設定及規則順序。這兩類問題應分開排查。

五、透過連線紀錄驗證分流

至少需要一個清單內網域和一個清單外網域才能驗證。請選擇自己確實能存取且用途明確的網站;文中的 example.com 僅用於說明語法。每次測試都應查看新產生的連線紀錄,確認網域、命中規則、最終策略,以及必要時的策略組出口。

測試對象預期命中規則通過判斷依據
清單內的主網域對應的 DOMAIN-SUFFIX 或 DOMAIN紀錄顯示代理策略,且選用了有效的代理出口
清單內的子網域對應的 DOMAIN-SUFFIX確認網域後綴確實涵蓋,而非誤由 FINAL 處理
清單外網域FINAL最終策略為 DIRECT
登入或靜態資源網域依該網域自己的規則決定依實際需求補上規則後重新驗證

網頁能開啟,只代表某條可用路徑完成了請求,無法證明該請求使用代理。反之,網頁無法開啟也可能是 DNS、伺服器無法連線、登入狀態或遠端限制所致,不一定是 DOMAIN-SUFFIX 設定錯誤。先確認是否命中預期規則,再檢查策略出口是否可用,最後查看頁面依賴的網域,有助於避免不必要的修改。

六、常見狀況與修正順序

排查時每次只修改一個變數,並保留修改前後的紀錄。建議依「路由模式 → 生效設定 → 規則順序 → 策略出口 → 網站依賴」的順序檢查。不要只為了修復單一登入請求,就直接將整體預設策略改成代理,否則原本的清單模式也會隨之改變。

規則已設定,為什麼所有網站都走代理?

先確認 Home → Global Routing 是否選擇 Config,再查看目前生效檔案的末尾是否確實為 FINAL,DIRECT。若兩者都正確,請檢查前方是否有涵蓋範圍更廣的代理規則或規則集,並以清單外網域的新連線確認實際命中的規則。

主網站能開啟,為什麼登入或圖片仍然載入失敗?

重新執行失敗的操作,查看新連線中的登入、API 或資源網域。若這些網域不在已列出的後綴範圍內,請依實際需求補上 DOMAIN 或 DOMAIN-SUFFIX。不要只因網域看起來相似,就擴大到不相關的整段後綴。

已命中代理規則,為什麼紀錄仍顯示直連?

檢查規則所引用的策略組及目前選取項目。策略組可能指向 DIRECT,也可能是你查看的紀錄來自修改前保留的連線。確認出口後重新建立連線,再確認規則、策略組及最終出口三者是否一致。

能否只讓某個 App 中的網站走代理?

本文規則是以目標網域為對象,不會依發出請求的 App 區分。同一網域若由其他 App 發出請求,也可能命中相同規則。若需求僅限某個 App 中的單一頁面,請先確認該頁面是否使用獨立網域;不能以 URL 路徑取代網域規則。

更新後分流失效,需要重新匯入訂閱嗎?

先進入 Config 確認生效檔案及 [Rule] 區段是否遭到替換,再檢查 Global Routing。只有在 Home 中的連線資訊確實過期或失效時,才需要更新 Subscribe;規則遭覆蓋與連線憑證變更是不同問題。

最終驗收應同時符合三項條件:目標網域命中指定的代理規則、清單外網域命中 FINAL,DIRECT,以及代理策略確實使用預期出口。日後新增網站時,只加入必要的網域範圍,並重複這套雙向檢查,才能維持預設直連的範圍,避免逐漸變成涵蓋範圍不明的混合設定。

前往 App Store