2026-09-09 · 進階設定 · 約 10 分鐘

Shadowrocket 指定網站代理設定:DOMAIN-SUFFIX 與 FINAL,DIRECT 規則

想讓特定網域走 PROXY,其餘流量一律 DIRECT?本文說明 DOMAIN-SUFFIX、DOMAIN-KEYWORD 的寫法、規則順序與 FINAL 預設規則,並提供可直接修改的範例。

本文重點

在 Shadowrocket(小火箭)中設定「僅讓指定網站走代理」,請將 Global Routing 設為 Config,並在目前生效設定的 [Rule] 中先加入目標網域的 PROXY 規則,最後以 FINAL,DIRECT 結尾。本文適合已匯入自己的服務商資料且能正常連線的使用者,重點說明規則適用範圍、儲存與啟用方式、請求驗證及誤判排查。

一、先確認 Config 模式與代理出口

先檢查目前的運作模式,再編輯規則。Home → Global Routing 會決定流量的處理方式;只修改 Config 檔案,但 Home 仍設為 Proxy 或 Direct,無法達到本文所述的網域分流效果。伺服器資料與規則設定也是兩回事:伺服器能連線,不代表目前使用的設定已包含正確網域規則。

介面選項作用本文的處理方式
Proxy以代理模式處理流量,不依本文所述的網域白名單分流。切換為 Config 後再測試規則。
Direct以直連模式處理流量。無法用此模式驗證 PROXY 規則。
Config依目前選取的設定檔處理流量。本文使用此選項。
Scene依場景設定決定運作方式。排查時先使用 Config,減少切換場景造成的變因。

本文範例中的 PROXY 是代理策略,不是伺服器位址,也不是要填入伺服器 Address 的文字。使用預設代理策略時,請先在 Home 確認選取的伺服器可正常使用;若現有設定使用自訂策略群組,也要檢查該群組目前選取的項目。DIRECT 表示目標連線直接連線,不經過代理伺服器。

二、DOMAIN-SUFFIX 與 FINAL,DIRECT 的基本寫法

若要讓 example.com 及其子網域走代理,其餘目標直連,可將以下片段作為規則區段的起點。此網域僅為說明範例,請替換成自己的目標網域;片段只包含 [Rule],並非完整設定檔。

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

DOMAIN-SUFFIX 會依網域後綴邊界比對。上述規則涵蓋 example.com、www.example.com 和 api.example.com,不會因文字相似而涵蓋 notexample.com。規則參數請填網域本身,不要加上 https://、連接埠、路徑或查詢參數。

Shadowrocket 會依規則順序比對,由第一條命中的規則決定該連線使用的策略。若將 FINAL,DIRECT 放在目標網域規則前面,就會提前套用預設規則,後續規則也無法生效。編輯現有設定時,也要檢查前面是否已有涵蓋範圍廣泛的規則;不能只在檔案末尾加上幾行就視為完成。

三、多個網站與 DOMAIN-KEYWORD 的適用範圍

多個不同網站通常逐行列出,較容易維護。同一個頁面可能同時存取登入網域、靜態資源網域和 API 網域,這些網域不一定屬於相同的後綴。請依實際請求補上必要規則,不要只因頁面顯示不完整,就將所有連線都改走代理。

[Rule]
DOMAIN,login.example.com,PROXY
DOMAIN-SUFFIX,example.org,PROXY
DOMAIN-SUFFIX,example.net,PROXY
FINAL,DIRECT
寫法比對範圍適用情況
DOMAIN,login.example.com,PROXY完整網域等於 login.example.com。只處理特定主機時使用。
DOMAIN-SUFFIX,example.com,PROXYexample.com 及其子網域。處理相同網域體系時使用。
DOMAIN-KEYWORD,example,PROXY網域中包含 example 字串。比對範圍較廣,須檢查是否誤判。

DOMAIN-KEYWORD 不會檢查網站歸屬,也不要求關鍵字位於特定網域層級。例如 DOMAIN-KEYWORD,example,PROXY 可能同時涵蓋 example.com 和 notexample.net。它比對的是網域,不是網頁標題、頁面內容或 URL 路徑;無法用來設定「同一網域只有特定頁面走代理」。

結論:先列出網域,再擴大比對範圍

只處理少數網站時,優先使用 DOMAIN 或 DOMAIN-SUFFIX。只有確認多個目標網域確實需要符合相同關鍵字條件時,才使用 DOMAIN-KEYWORD,並以含有相同關鍵字的非目標網域測試比對範圍。

四、儲存、啟用與驗證的五個步驟

修改規則後,請同時確認檔案已儲存、設定檔已選取、運作模式正確,而且已產生新的請求。舊連線可能仍沿用原有工作階段;只查看瀏覽器中已開啟的頁面,無法判斷新規則是否生效。

  1. 檢查出口

    在 Home 點選自己已有的伺服器,使用 Connectivity Test 檢查是否可連線。測試結果只反映相應測試目標的連線狀況,不能取代指定網站的規則驗證。

  2. 編輯規則

    前往 Config,開啟準備使用的設定選單並選擇 Edit Config,檢查 [Rule]。請在現有規則區段中調整內容,不要再加入第二個 [Rule];目標網域規則須放在 FINAL,DIRECT 前面。

  3. 選取設定檔

    儲存後返回 Config 清單,選取剛修改的檔案。接著前往 Home → Global Routing,選擇 Config,避免仍使用其他設定檔或運作模式。

  4. 建立新請求

    重新連線後造訪目標網站,再造訪一個未列入清單的網站。必要時先關閉舊頁面再重新開啟,降低瀏覽器快取和持續連線對判斷的影響。

  5. 檢查記錄

    在 App 內的請求記錄中,檢查這次連線的目標網域、命中的規則及實際使用的策略。預期結果是目標請求命中網域規則並使用 PROXY,非目標請求則套用 FINAL 並使用 DIRECT。

驗證時一次只修改一項。例如目標網站首頁能開啟,但圖片未顯示,應先查看圖片請求的網域與策略,再決定是否新增該資源網域。不要同時更換伺服器、DNS 和整份規則,否則難以判斷是哪項變更影響結果。

五、如何處理既有的 GEOIP、IP-CIDR 與 DNS 設定

要讓「其餘流量一律 DIRECT」成立,前提是其他流量沒有先命中代理規則。既有設定中的 GEOIP、IP-CIDR 或遠端規則集也可能參與比對;最後一行即使寫了 FINAL,DIRECT,也不代表前面的代理規則會被略過。

192.0.2.0/24 是文件中的示範網段,不應直接複製為實際目標。對使用動態位址、共用主機或 CDN 的網站,優先維護網域規則;將某次解析取得的 IP 固定寫入規則,可能在位址變更後失效,也可能影響使用相同位址的其他網域。

六、依現象區分規則問題與連線錯誤

先確認請求是否如預期命中規則,再檢查命中後的連線能否完成。以下是連線診斷時可能遇到的英文錯誤,實際呈現方式以 App 內記錄為準;錯誤本身無法證明某條網域規則寫錯。

Connection refused

原因:目標端或中間設備明確拒絕連線,常見情況是該位址的連接埠沒有服務接受連線。解決方式:若記錄顯示使用 PROXY,請核對 Home 中所選伺服器的 Address、Port 是否與現有資料一致;若使用 DIRECT,請檢查網站目標與連接埠,不要先修改 FINAL。

Connection timed out

原因:連線未能在等待期限內完成;單憑逾時無法判斷問題出在出口、目標端或網路路徑。解決方式:先確認這次請求命中的策略,再使用 Connectivity Test 檢查選取的伺服器,並分別測試目標網域和一個非目標網域。

若沒有連線錯誤,但所有網站都走代理,請優先檢查 Home → Global Routing 是否仍設為 Proxy,以及 [Rule] 前段是否還有涵蓋範圍廣泛的 PROXY 規則。若只有一個網站未依預期分流,請先核對實際請求使用的網域,不要只根據瀏覽器網址列判斷。

七、指定網站分流常見問題

我只想讓一個子網域走代理,該怎麼寫?

使用 DOMAIN,api.example.com,PROXY,並將規則放在 FINAL,DIRECT 前面。若要讓 api.example.com 及其下層網域都走代理,再改用 DOMAIN-SUFFIX,api.example.com,PROXY;不要直接指定整個 example.com 後綴。

網站可以開啟,但登入和影片卻失敗?

查看操作期間產生的新請求,找出登入 API 或媒體資源實際使用的網域。確認這些網域屬於需要代理的連線流程後,再逐行新增規則;瀏覽器網址列中的主網域不代表頁面所有請求都使用該網域。

更新伺服器訂閱會改掉規則嗎?

伺服器訂閱用來更新伺服器資料,Config 中的規則檔案則是另一項內容。請先確認更新的是伺服器訂閱還是遠端設定檔;後者可能會取代本機編輯內容,因此修改前應先保留副本,更新後再檢查 [Rule]。

啟用 On Demand 後,還需要這些規則嗎?

需要。Settings → On Demand 管理的是按需連線條件,不會取代 [Rule] 的目標比對。若排查期間連線狀態自動變化,請先記錄 On Demand 設定,在可控制的連線狀態下驗證 Config 規則,再恢復所需的自動連線條件。

可以依網址中的路徑分流嗎?

DOMAIN、DOMAIN-SUFFIX 和 DOMAIN-KEYWORD 都不是路徑比對規則。不要將 example.com/video 填入網域欄位;本文的方法以網域或主機為界線,無法用這三種規則區分同一主機下的不同頁面路徑。

App Store 正版確認