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

想只讓特定網站走代理、其他網站直連?以 DOMAIN-SUFFIX 列出目標網域,並以 FINAL,DIRECT 設定預設路由,再於 Global Routing 選擇 Config 套用規則。

本文重點

本文適合已在 Shadowrocket(小火箭)匯入自己的連線資料,並希望只讓指定網站走代理的使用者。依照下文保留原有設定、加入網域規則、切換至 Config 並驗證連線,即可建立「清單內走代理、清單外直連」的設定。範例網域僅用於說明語法,並非可用的連線服務;本站不提供、不販售也不推薦節點或訂閱。

先確認目標:依網域分流,而非依網頁按鈕分流

「只代理指定網站」可拆解為兩個判斷:哪些請求屬於目標網站,以及未符合規則的請求要如何路由。Shadowrocket 會依序比對設定中的規則;本例將需要代理的網域放在前面,並將 FINAL,DIRECT 放在最後。未符合前面規則的請求,就會採用直連策略。

一個網頁通常不只連線至網址列中的網域。圖片、登入、影片及靜態指令碼可能來自不同網域,因此「首頁能開啟但圖片沒顯示」不一定代表規則未生效,也可能是相關網域未列入清單。不要只為了完整載入某個頁面,就加入涵蓋範圍過大的通用網域後綴。

2 種
路由結果:清單內 PROXY,清單外 DIRECT
1 條
末尾預設規則:FINAL,DIRECT
443
HTTPS 常用連接埠,不需填入網域規則欄位

這裡的 PROXY 代表代理策略,不是伺服器位址,也不會自動建立可用連線。開始前請確認 Home 中已有自己的可用伺服器,並已選取這次要用來驗證的連線。購買用戶端與購買線路服務是兩回事。

最簡規則:DOMAIN-SUFFIX 在前,FINAL,DIRECT 在後

以下是規則片段範例,不是完整的連線設定。請將它作為編輯現有設定的參考,不要用這幾行覆蓋整份檔案,否則可能會遺失 DNS、通用設定及其他必要內容。實際使用時,請將範例網域換成要比對的真實網域。

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

DOMAIN-SUFFIX,example.com,PROXY 會比對 example.com 本身,以及 www.example.com、media.example.com 等子網域;但不會比對 notexample.com。網域欄位不要填入通訊協定、路徑、連接埠或萬用字元星號;https://example.com/video 並不是此欄位適用的格式。

寫法比對範圍適用情境
DOMAIN,login.example.com,PROXY僅限該完整主機名稱只代理登入入口
DOMAIN-SUFFIX,example.com,PROXY根網域及其子網域代理整個網域體系
FINAL,DIRECT先前所有規則都未比對到的請求讓其他請求直連

結論:先用最小網域範圍驗證

只需比對單一主機名稱時,先使用 DOMAIN;確實需要涵蓋根網域及所有子網域時,再使用 DOMAIN-SUFFIX。驗證成功後再逐步加入相關網域,避免一次擴大範圍,導致無法確認是哪條規則改變了結果。

在 Config 儲存設定,再到 Home 選擇 Config

編輯前請先保留原設定副本,以便還原。若現有設定包含其他網域規則、規則集或範圍較廣的代理規則,只在末尾加上一條 FINAL,DIRECT,並不代表「只代理指定網站」:已符合前面規則的請求不會繼續往下比對。請檢查整段規則,而不只是最後一行。

  1. 保留原設定

    進入 Config,找到目前使用的設定,先保留副本或匯出備份。確認這次編輯的是之後要選用的檔案,不要同時修改多份設定。

  2. 編輯規則區段

    開啟該設定的編輯介面,檢查 [Rule]。將目標 DOMAIN 或 DOMAIN-SUFFIX 規則放在 FINAL 前面,並核對逗號、網域及策略名稱。

  3. 檢查預設規則

    將 FINAL,DIRECT 設為最後一條規則,並確認前面的規則不會將其他網站導向 PROXY。儲存後,在 Config 選取這份設定。

  4. 切換模式

    返回 Home → Global Routing,選擇 Config。回到 Home 確認目前選取的伺服器,並啟用連線;首次連線時,請依系統提示允許加入 VPN 設定。

  5. 重新發送請求

    關閉舊頁面後重新開啟,分別造訪清單內與清單外的網站。修改設定前已建立的連線不能用來驗證新規則,必要時請中斷連線後再重新連線。

此處要設定的是 Home → Global Routing → Config,而不只是「在 Config 頁面看到檔案」。前者決定目前是否依規則處理流量,後者則用來管理設定。檔案已儲存、已選取檔案、模式選擇正確,是三個不同的檢查項目。

Global Routing、規則順序與 On Demand 的分工

如果所有網站都走代理,請先檢查模式,再檢查規則。Global Routing 的 Proxy 與 Direct 是整體路由模式,不會像本文的網域清單一樣進行分流。Scene 用於依情境選擇設定;初次驗證時,請直接選擇 Config,減少切換情境造成的變因。

設定項目主要功能本例處理方式
Global Routing → Config依目前設定中的規則決定策略選擇此項目驗證清單
Global Routing → Proxy整體採用代理路由模式不適用於驗證清單外直連
Global Routing → Direct整體採用直連路由模式不適用於驗證清單內代理
Global Routing → Scene依情境設定選擇路由行為先排除情境切換造成的影響
Settings → On Demand管理隨選連線條件與網域比對分開檢查

On Demand 負責決定何時建立連線,不會取代 DOMAIN-SUFFIX 對網站網域的判斷。若手動中斷連線後又自動連上,請前往 Settings → On Demand 檢查條件;若某個網站採用錯誤策略,則應檢查 Config 中的規則及目前的路由模式,兩者不可混為一談。

驗證結果:分辨規則比對、DNS 與伺服器可用性

網頁能開啟,不代表一定經過代理;網頁無法開啟,也不代表規則未比對到。驗證時請維持相同網路、伺服器及設定,每次只更動一項。可透過連線記錄中的目標主機、比對到的規則及策略資訊確認連線路徑;實際顯示欄位以目前介面為準。DNS 查詢所使用的路徑,也不能直接等同於網頁連線採用的策略。

以下是網路請求可能回傳的系統錯誤原文,不是規則編輯器的語法提示,也不代表每次都會以相同形式顯示在 Shadowrocket 中。遇到這些錯誤時,請先確認是哪個請求失敗、採用了哪項策略,再調整設定。

錯誤:The request timed out.

原因與處理方式:請求未能在時限內完成,可能與網路、目標網站或代理連線有關;請先確認該請求是否符合預期策略,再使用 Home → Connectivity Test 檢查所選伺服器,避免直接擴大代理清單。

錯誤:A server with the specified hostname could not be found.

原因與處理方式:主機名稱解析失敗或網域拼寫錯誤;請先核對造訪位址及設定中的網域,再檢查目前設定的 DNS。DOMAIN-SUFFIX 本身無法修復解析失敗。

若 App 直接連線至 IP、重用既有連線,或實際請求的主機與預期不同,網域規則可能沒有取得預期的比對條件。此時請根據連線記錄找出原因,不要為了「強制符合規則」就任意加入大範圍的 IP-CIDR。若要進一步檢查 DNS,請參閱技術參考中的 DNS 說明。

常見問題:子網域、訂閱更新與還原設定

只想代理單一子網域,該怎麼寫?

例如只處理 login.example.com,可寫成 DOMAIN,login.example.com,PROXY,並保留末尾的 FINAL,DIRECT。若使用 DOMAIN-SUFFIX,example.com,PROXY,根網域及其他子網域也會納入代理範圍。

為什麼加入規則後,所有網站還是都走代理?

先到 Home → Global Routing 確認選擇的是 Config,而不是 Proxy;再回到 Config 確認已選取修改後的檔案。最後由上往下檢查是否有更早符合的廣泛代理規則或規則集。

更新訂閱會修改這些規則嗎?

連線訂閱與設定檔應分開看待。更新伺服器訂閱不能取代編輯 [Rule];若更新的是遠端設定,本機修改可能會被新內容覆蓋。請保留自己的設定副本,並在每次更新遠端設定後重新檢查規則及選取狀態。

清單外採用 DIRECT,是否代表 VPN 已關閉?

不是。DIRECT 是連線啟用時採用的路由策略,不等於關閉系統 VPN 設定。若要停止這次連線,請在 Home 關閉連線,並檢查 Settings → On Demand 是否設定了自動連線條件。

修改後無法正常使用,該如何還原?

回到 Config 選取先前保留的設定,再依照原本的 Global Routing 設定重新連線。還原後先確認原有網站能正常使用,再逐一加入目標網域;每次只修改一項,方便找出造成變化的規則。

最後檢查四個項目即可:目前使用正確的檔案、Global Routing 設為 Config、目標網域規則位於前面,以及 FINAL,DIRECT 位於末尾。接著再逐一檢查網頁依賴的網域,才能在維持清單範圍明確的同時,避免將頁面載入問題誤判為整體分流失效。

App Store 正版核對