2026-09-09 · 規則分流 · 約 8 分鐘

Shadowrocket 指定網站走代理設定:以規則讓部分網域走 PROXY,其餘走 DIRECT

只想讓少數網站走代理?使用 DOMAIN-SUFFIX 列出目標網域,以 FINAL,DIRECT 作為預設策略,並在 Global Routing 選擇 Config;另附驗證方法。

本文重點

若要讓 Shadowrocket(小火箭)只代理指定網站,必須同時符合三個條件:目標網域的規則指向 PROXY、規則末尾使用 FINAL,DIRECT,並在 Home → Global Routing 選擇 Config。本文假設你已有自己的服務商與訂閱,且已匯入可用伺服器,將說明最精簡的規則、設定步驟與逐項驗證方法;不會只憑「連線開關已開啟」就判定分流正確。

一、先選擇 Config,再設定網域規則

Global Routing 決定連線採用哪一種路由方式。只代理少數網站,適合使用設定檔分流;請先在 Home → Global Routing 選擇 Config。若只編輯規則,卻維持 Proxy 或 Direct,就無法依本文的規則清單驗證結果。

Config

建議使用

依目前啟用設定檔中的規則選擇策略。目標網域可指向 PROXY,未命中前置規則的請求則由 FINAL,DIRECT 處理。

適用情境:只代理指定網站,其餘請求直連。

Proxy

採用代理路由,而非依本文列出的網域逐一決定是否直連。可暫時用來檢查伺服器是否可用,但不能據此證明網域規則正確。

適用情境:暫時檢查代理連線,再切回 Config 驗證分流。

Direct

採用直連路由,不會因為本文寫了某條 PROXY 規則,就自動改為依規則分流。

適用情境:檢查目前網路的直連狀況。

Scene

用於情境路由,結果取決於實際的情境設定。這不是本文用來驗證固定網域清單的入口;若已設定情境,需另外確認。

適用情境:已明確設定情境條件的使用方式。

結論:先固定路由方式

排除問題時,先將 Global Routing 固定為 Config,每次只修改一條網域規則。如此才能分辨是規則未命中,還是代理連線本身無法使用。

本文中的 PROXY 是規則所用的代理策略,不是要你把 Global Routing 改成 Proxy。前者決定命中某條規則後的連線去向;後者決定全域採用哪種路由方式,兩者作用層級不同。

二、最精簡規則:目標列前面,FINAL,DIRECT 列最後

以下是只示範規則區段的最精簡範例,使用保留的示例網域,不代表有可用服務。實際編輯時,請將網域換成需要代理的網站主機名稱;既有設定檔中的其他必要區段應予保留,勿用這幾行覆蓋整份設定檔。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN,api.example.net,PROXY
FINAL,DIRECT
2 條
範例中的目標網域規則皆指向 PROXY
1 條
FINAL,DIRECT,放在規則清單末尾
3 段
網域規則以英文逗號分隔:類型、比對值、策略

DOMAIN-SUFFIX,example.com,PROXY 會比對 example.com 及其子網域,例如 www.example.com。DOMAIN,api.example.net,PROXY 只會比對這個完整主機名稱,不包含 www.example.net,也不包含其下層子網域。

規則會由上而下比對,命中後依對應策略處理。FINAL,DIRECT 不帶網域參數,表示先前未命中的請求使用 DIRECT。若將它放在目標網域規則之前,後面的目標規則就無法發揮預期作用。

三、從 Config 編輯到 Home 啟用的操作順序

伺服器資料與路由設定是不同項目。Home 中已有可用伺服器,不代表 Config 中的網域規則已啟用;更新既有訂閱,也不等於自動建立本文所述的分流清單。開始前請先備份目前的設定檔,以便還原。

  1. 備份設定檔

    進入 Config,確認目前使用的設定檔,並先保留副本。若設定檔來自遠端更新,請另存一份可編輯的本機副本,避免手動修改內容在下次更新時被覆蓋。

  2. 編輯規則

    在 Config 開啟目標設定檔的編輯頁面,檢查 [Rule]。將需要代理的 DOMAIN 或 DOMAIN-SUFFIX 規則放在預設規則之前,並以 FINAL,DIRECT 作為最後一條。文字編輯或逐條編輯的入口,請以 App 目前顯示為準。

  3. 啟用設定檔

    儲存後回到 Config,確認剛才編輯的檔案已選用。不要只停留在編輯頁面,也不要只憑檔名判斷;若有多個名稱相近的檔案,請重新開啟所選檔案核對內容。

  4. 選擇模式

    返回 Home → Global Routing → Config,再回到 Home 選擇現有且可用的伺服器。本文的 PROXY 規則需要有實際可用的代理出口;若設定檔另有同名策略群組,也請一併確認該群組的選擇。

  5. 發出新請求

    開啟連線開關,重新發出目標網站與非目標網站的請求。必要時先中斷舊連線再測試;已建立的連線不適合用來判斷剛修改的規則是否生效。

若原設定檔包含額外策略群組或複雜規則集,請先了解其用途再調整。這次的重點不是增加更多規則,而是確保目標網域能先命中 PROXY,其餘請求最後由 DIRECT 處理。請勿同時更換伺服器、修改 DNS 和多條規則,否則出現差異時難以判斷原因。

四、網域怎麼填:不填路徑,也不填連接埠

DOMAIN 與 DOMAIN-SUFFIX 比對的是主機名稱,不是瀏覽器網址列中的完整網址。瀏覽使用 HTTPS 的網站時,常見目標連接埠為 443,但不應將 :443 加進網域欄位。請求路徑與查詢參數也不屬於此欄位。

寫法比對範圍或問題判斷方式
DOMAIN,example.com,PROXY只比對 example.com只需要這個完整主機名稱時使用
DOMAIN-SUFFIX,example.com,PROXY比對根網域及其子網域需要同時涵蓋 www、api 等子網域時使用
DOMAIN-SUFFIX,notexample.com,PROXY與 example.com 是不同網域網域後綴比對不是任意字串包含
https://example.com/path包含通訊協定與路徑,並非網域欄位只取出 example.com 填入規則
example.com:443附帶連接埠,不是此處的主機名稱格式移除連接埠後再填寫

瀏覽一個網頁時,通常會向多個主機名稱發出請求:主文件、圖片、登入驗證、影片或靜態資源可能使用不同網域。為根網域新增 DOMAIN-SUFFIX,只能涵蓋其子網域,無法涵蓋網站使用的所有第三方資源網域。因此,「首頁能開啟但圖片沒有顯示」不一定代表規則未生效,也可能是資源請求不在清單內。

若請求直接連線至 IP 位址,或比對時沒有可用的網域資訊,網域規則可能不會命中,最後會套用 FINAL。不要只因為目標網站使用某個 IP,就把整個網段加入 PROXY;共用位址可能也服務其他網站。

五、驗證方法:檢查目標、對照與資源請求

驗證分流要確認新請求的實際去向,不應只看頁面能否開啟或系統是否顯示連線標記。頁面能開啟只代表這次瀏覽成功;快取、可直連的網路,以及已建立的連線,都可能讓錯誤的分流設定看起來正常。

  1. 目標組:選擇實際加入規則的網域,並發出新請求。在 App 的請求記錄中核對主機名稱、命中的規則與策略;預期目標請求應對應 PROXY。
  2. 對照組:造訪一個未列入目標清單,而且目前網路可直接連線的網站。預期在未命中其他前置規則時,會由 FINAL,DIRECT 處理。
  3. 資源組:若目標頁面未能完整載入,請查找失敗請求的實際主機名稱。它可能與網址列中的網域不同;確認確實需要代理後,再單獨加入規則。
  4. 重新測試:每次修改一條規則後,都要重新發出目標與對照請求。不要將先前建立的長連線當成本次修改的驗證結果。

若目標請求已命中 PROXY,卻仍然逾時,請先檢查 Home 中選用的伺服器是否可用,以及既有服務資料中的伺服器位址、連接埠與認證資訊是否正確。若記錄顯示 DIRECT,再回頭檢查規則順序、實際請求網域及啟用中的設定檔。如此可避免把連線故障誤認為規則語法問題。

六、常見問題:為什麼還是全部走代理或全部直連?

加上 FINAL,DIRECT 後,為什麼其他網站仍走代理?

先檢查 Home → Global Routing 是否選為 Config,再確認 [Rule] 中 FINAL 之前是否有比對範圍更廣的 PROXY 規則或規則集。規則命中後即停止比對;最後的 DIRECT 不會推翻先前已做出的比對結果。

指定網站也走 DIRECT,是網域填錯了嗎?

先確認 Config 目前選用的檔案,再確認目標規則是否位於 FINAL 之前。接著查看實際請求的主機名稱:網站可能已轉址至其他網域。DOMAIN 只比對完全相符的主機名稱;若要同時比對根網域和子網域,請改用 DOMAIN-SUFFIX。

首頁可以開啟,但登入或圖片一直失敗?

重新觸發登入或圖片請求,並從記錄中找出失敗的主機名稱。先確認目前採用 DIRECT 還是 PROXY;只有確定網域漏列時,才補上對應網域。不要只為了一個資源請求,就將規則擴大到整個公開後綴。

更新訂閱後,手動撰寫的規則會改變嗎?

伺服器訂閱與設定檔更新要分開判斷。只更新伺服器清單,不代表本機 [Rule] 會被改寫;若更新的是包含規則的遠端設定檔,手動編輯內容則可能被取代。請在 Config 重新開啟目前使用的檔案核對,並保留獨立的本機副本。

需要開啟 On Demand 才能只代理幾個網站嗎?

不需要。Settings → On Demand 用於管理隨選連線,不負責列出哪些網域走 PROXY。請先在連線已建立的狀態下使用 Config 驗證規則,再依個人連線需求另行設定 On Demand,避免同時變動兩個因素。

最後請保留一份通過目標與對照測試的設定檔。之後新增網站時,只加入明確需要的網域,並保留末尾的 FINAL,DIRECT;刪除目標時,也要重新測試該網域是否已改為直連。維護規則清單時應以實際請求為依據,而不是網站顯示名稱。

App Store 正版核對