跳到主要內容

首頁 / 部落格 / 規則分流

Clash 規則類型速查:DOMAIN、IP-CIDR、GEOIP、PROCESS-NAME 全表

規則分流2026-07-251814 字約 4 分鐘
Clash 規則類型速查:DOMAIN、IP-CIDR、GEOIP、PROCESS-NAME 全表

規則決定每一個連接的去向。這篇是一張速查表,配上每種類型的實际用法。

規則的基本形式

rules:
  - 类型,匹配内容,策略[,附加参数]

比如:

- DOMAIN-SUFFIX,google.com,🚀 节点选择
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,🐟 漏网之鱼

從上往下逐條匹配,第一條命中即生效,後面的不再檢查。這條規律是理解一切規則行為的基礎。

完整類型表

類型匹配物件示例說明
DOMAIN完整網域DOMAIN,www.google.com,PROXY精確匹配,最快
DOMAIN-SUFFIX網域後綴DOMAIN-SUFFIX,google.com,PROXY含所有子網域,最常用
DOMAIN-KEYWORD網域包含關鍵詞DOMAIN-KEYWORD,google,PROXY範圍大,慎用
DOMAIN-REGEX正則匹配網域DOMAIN-REGEX,^api\\..*\\.com$,PROXYMihomo 支援
GEOSITE網域地理集合GEOSITE,youtube,PROXY依賴 geosite 資料庫
IP-CIDRIPv4 網段IP-CIDR,10.0.0.0/8,DIRECT,no-resolve注意 no-resolve
IP-CIDR6IPv6 網段IP-CIDR6,::1/128,DIRECT,no-resolve同上
IP-SUFFIXIP 後綴IP-SUFFIX,8.8.8.8/24,PROXYMihomo 支援
IP-ASN自治域號IP-ASN,13335,PROXY按電信業者/雲廠商分流
GEOIPIP 所屬国家GEOIP,CN,DIRECT依賴 geoip 資料庫
SRC-IP-CIDR來源 IPSRC-IP-CIDR,192.168.1.100/32,DIRECT按區域網路設備分流
SRC-PORT來源連接埠SRC-PORT,8080,DIRECT少用
DST-PORT目標連接埠DST-PORT,22,DIRECT按服務類型分流
PROCESS-NAME行程名PROCESS-NAME,Telegram.exe,PROXY按程式分流
PROCESS-PATH行程完整路徑PROCESS-PATH,/usr/bin/curl,PROXY更精確
RULE-SET引用規則集RULE-SET,cn-domain,DIRECT配合 rule-providers
AND / OR / NOT邏輯組合見下文Mihomo 支援
MATCH兜底MATCH,PROXY必須放最後一條

三個最常用的網域規則怎麼選

DOMAIN 三兄弟DOMAIN只匹配寫www.google.com 匹配google.com 不匹配最精確最快DOMAIN-SUFFIX匹配它和google.com 匹配www.google.com 匹配日常主力DOMAIN-KEYWORD網域裡含googleapis.com 匹配notgoogle.cn 也匹配容易誤傷
90% 的情況用 DOMAIN-SUFFIX 就對了

no-resolve 到底是什麼

這是 IP 類規則裡最容易搞錯的參數。

一個連接過來時,如果目標是網域,核心為了匹配 IP-CIDR 規則,必須先把網域解析成 IP。加上 no-resolve 的意思是:如果目標還是網域(沒解析過),就跳過這條規則,別為它專門去做一次 DNS 查詢。

有無 no-resolve 的差別連接到達目標是網域遇到 IP-CIDR 規則需要 IP 才能比對無 no-resolve觸發 DNS 解析後再比對有 no-resolve直接跳過這條規則
前置的內網規則加 no-resolve,能避免每個連接都多做一次 DNS

什麼時候該加:放在規則列表最前面的內網 IP 段規則,一律加上。

- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR6,fc00::/7,DIRECT,no-resolve

什麼時候不加GEOIP,CN,DIRECT 這種放在最後的兜底規則不要加 no-resolve,否則網域類流量根本匹配不到它。

規則順序的三條鐵律

規則從上到下的正確排列11. 內網與本機 IP 段加 no-resolve,最優先22. 廣告攔截 REJECT 規則33. 具體網域規則DOMAIN、DOMAIN-SUFFIX44. 規則集 RULE-SET批量網域55. GEOIP 地理兜底GEOIP,CN,DIRECT66. MATCH 最終兜底必須是最後一條
把 GEOIP 放到具體網域規則前面,是最常見的設定錯誤

鐵律一:MATCH 必須在最後。它匹配一切,放在中間會讓後面所有規則失效。

鐵律二:GEOIP,CN 要放在具體網域規則之後。很多境外服務在国內有 CDN 節點,解析出來是国內 IP。GEOIP 放太前面會把它們全判成直連。

鐵律三:越具體的規則越靠前。先寫 DOMAIN,再寫 DOMAIN-SUFFIX,最後寫 DOMAIN-KEYWORD

邏輯組合規則(Mihomo)

需要「同時滿足多個條件」時:

# 只有 Telegram 這個行程訪問某個 IP 段時才走代理
- AND,((PROCESS-NAME,Telegram.exe),(IP-CIDR,91.108.4.0/22)),PROXY

# 目標是 22 連接埠,且不是內網
- AND,((DST-PORT,22),(NOT,((GEOIP,CN)))),PROXY

# 滿足任一即可
- OR,((DOMAIN-SUFFIX,openai.com),(DOMAIN-SUFFIX,anthropic.com)),🤖 AI 服务

語法上要注意括號層級,很容易寫漏。能用簡單規則表達的就別用邏輯組合——可讀性和效能都更好。

效能:哪些規則貴

規則匹配的相對開銷DOMAIN 精確匹配幾乎無開銷DOMAIN-SUFFIX查後綴樹RULE-SET domain記憶體中的集合GEOIP需要 IP,可能觸發 DNSIP-CIDR 無 no-resolve可能觸發 DNS 解析PROCESS-NAME需要查詢系統行程表DOMAIN-REGEX逐條跑正則相對量級示意,實际耗時取決於規則總數與命中位置

實踐建議:

  • 高頻命中的規則往前放,減少平均比對次數
  • RULE-SET 代替幾百條手寫網域規則
  • PROCESS-NAME 只在確實需要時用,且儘量往後放
  • 避免大量 DOMAIN-REGEX

怎麼知道一條連接命中了哪條規則

打開 Clash Verge 的 連接 頁,「規則」列直接顯示命中的規則。

這是排查分流問題最快的辦法:

分流走錯時的排查打開連接頁讓它實時重新整理訪問出問題的網站觸發新連接看「規則」列知道是哪條規則命中的在那條規則之前插入更具體的規用 prepend-rules
不用猜,核心會直接告訴你它是怎麼判的

修正示例——某個網域被 GEOIP,CN 判成了直連,但你想讓它走代理:

# 全局擴充設定裡
prepend-rules:
  - DOMAIN-SUFFIX,example.com,🚀 节点选择

prepend-rules 會插到規則列表最前面,優先級最高,且不會被訂閱更新覆蓋。

常用規則片段

內網直連(必備)

- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
- IP-CIDR6,::1/128,DIRECT,no-resolve
- IP-CIDR6,fc00::/7,DIRECT,no-resolve
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-SUFFIX,lan,DIRECT

避免 QUIC 影響(某些環境下 UDP 443 表現不好)

- AND,((NETWORK,UDP),(DST-PORT,443)),REJECT

區域網路某台設備強制直連

- SRC-IP-CIDR,192.168.1.50/32,DIRECT

BT / PT 流量不走代理(避免違反服務商條款)

- DST-PORT,6881-6889,DIRECT
- PROCESS-NAME,qbittorrent.exe,DIRECT
- PROCESS-NAME,transmission-daemon,DIRECT

小結

  • DOMAIN-SUFFIX 是主力,KEYWORD 慎用
  • 前置 IP 規則一律加 no-resolve,fake-ip 模式下更是必須
  • 順序:內網 → 攔截 → 網域 → 規則集 → GEOIP → MATCH
  • 排查用連接頁的「規則」列,修正用 prepend-rules

下一篇講怎麼把規則托管到外部:rule-providers 遠程規則集


相關文件

用 PROCESS-NAME 規則讓指定程式單獨走代理
規則分流 用 PROCESS-NAME 規則讓指定程式單獨走代理

按行程分流的完整寫法:find-process-mode 怎麼開、行程名怎麼查、PROCESS-NAME 與 PROCESS-PATH 的區別、效能開銷,以及為什麼規則寫了不生效。

2026-06-221765 字約 4 分鐘