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 中開啟目前使用的設定檔,尋找規則編輯區或相應的規則管理入口。新增規則時,先選對規則類型,再填網域和策略。若設定檔由服務商提供,請先確認該設定檔是否允許本機編輯,以及更新設定檔時本機修改會如何處理;不要把完整訂閱內容或含有存取憑據的連結公開分享。
-
確認設定檔
前往 Config,辨認目前使用中的設定檔。若畫面顯示多份設定,先確認編輯目標確實是日常使用的那份,避免修改另一份檔案後看不到效果。
-
開啟規則區
進入選定設定檔的編輯介面,找到規則管理或規則內容。若只有唯讀檢視,請先確認該設定檔是否支援本機修改,不要直接假設任何設定檔都可編輯。
-
新增網域條目
依目標選擇
DOMAIN或DOMAIN-SUFFIX,填入主機名稱與PROXY或DIRECT。手動編輯文字規則時,欄位以英文逗號分隔,並保留規則類型、網域及策略的正確順序。 -
排列與儲存
將較精確的例外規則放在可能匹配它的寬泛規則之前,檢查策略名稱無誤後儲存。若設定檔有
FINAL,讓它留在所有一般規則之後作為兜底。 -
切回 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 中選取的預設伺服器不一定代表所有規則都使用該伺服器,實際出口取決於命中的策略及策略組設定。
- 選一個明確的測試網域:一次只測一個主機名稱,避免同時測多個 App 或網域造成結果難以對照。
- 確認目標名稱:確認測試的是規則中填寫的主機,而不是同一服務使用的另一個 API、圖片或登入網域。
- 檢查連線狀態:確認 Shadowrocket 連線已建立,再開啟目標網頁或 App。VPN 顯示連線並不等於每個網域都能正常載入。
- 對照策略:若結果與預期不符,先檢查規則順序、網域拼字、Global Routing 和策略組;不要一次修改 DNS、伺服器欄位及多條規則。
- 測試完成後恢復設定:若曾切換到 Proxy 或 Direct 做對照,完成後切回 Config,並重新測試原本的網域。
結論:先確認命中哪條規則,再調整出口
看到網頁能開啟,只能證明當時的路徑可用,不能單獨證明目標命中了預期規則。先確認 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 模式、設定檔名稱及命中的規則位置,再逐項排查。分享診斷資料前,請遮蔽訂閱連結、帳戶資訊與其他存取憑據。規則範例只說明設定語法;需要的訂閱和伺服器資料,請向你自己的服務商取得。