文件 設定 路由規則

路由規則

rules 陣列是分流的核心,從上到下逐條匹配,匹配到第一條規則就使用它指定的出站,剩下的規則不再繼續判斷。

寫法總覽

config.yaml YAML
rules:
  - DOMAIN,ad.com,REJECT
  - DOMAIN-SUFFIX,google.com,auto
  - DOMAIN-KEYWORD,google,auto
  - DOMAIN-WILDCARD,*.google.com,auto
  - DOMAIN-REGEX,^abc.*com,PROXY
  - GEOSITE,youtube,PROXY

  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR6,2620:0:2d0:200::7/32,auto
  - IP-ASN,13335,DIRECT
  - GEOIP,CN,DIRECT

  - DST-PORT,80,DIRECT
  - PROCESS-NAME,curl,PROXY
  - NETWORK,udp,DIRECT

  - RULE-SET,providername,proxy
  - AND,((DOMAIN,baidu.com),(NETWORK,UDP)),DIRECT
  - SUB-RULE,(NETWORK,tcp),sub-rule

  - MATCH,auto

規則按從上到下的順序匹配,排在前面的規則優先級更高。如果請求是 UDP,但匹配到的代理節點沒開 udp: true,會繼續往下匹配下一條規則,而不是直接失敗。

網域類

類型說明
DOMAIN匹配完整網域
DOMAIN-SUFFIX匹配網域後綴,如 google.com 匹配 www.google.com/mail.google.com/google.com,但不匹配 content-google.com
DOMAIN-KEYWORD網域關鍵詞匹配
DOMAIN-WILDCARD萬用字元匹配,僅支援 *(零個或多個字元)和 ?(一個字元)——注意這跟設定檔其他地方用的 Clash 風格萬用字元不是一套語法
DOMAIN-REGEX網域正規表示式匹配
GEOSITE匹配 Geosite 資料庫內的網域分類,部分資料來自 v2fly/domain-list-community

IP 類

類型說明
IP-CIDR / IP-CIDR6匹配 IP 位址範圍,兩者效果相同,IP-CIDR6 只是別名
IP-SUFFIX匹配 IP 後綴範圍
IP-ASN匹配 IP 所屬 ASN(自治系統號)
GEOIP匹配 IP 所屬國家代碼
SRC-GEOIP / SRC-IP-ASN / SRC-IP-CIDR / SRC-IP-SUFFIX對應的來源 IP 版本,匹配發起連線的來源而不是目標

埠 / 入站 / 行程 / 其他

類型說明
DST-PORT / SRC-PORT匹配目標/來源埠範圍
IN-PORT / IN-TYPE / IN-USER / IN-NAME匹配入站埠/類型/使用者名稱/名稱
REMATCH-NAME匹配 Rematch 出站寫入的名稱
PROCESS-PATH / PROCESS-PATH-WILDCARD / PROCESS-PATH-REGEX用完整行程路徑匹配(三種寫法:完整路徑 / 萬用字元 / 正規表示式)
PROCESS-NAME / PROCESS-NAME-WILDCARD / PROCESS-NAME-REGEX用行程名稱匹配,Android 上可匹配套件名稱
UID匹配 Linux 使用者 ID
NETWORK匹配 tcpudp
DSCP匹配 DSCP 標記,僅限 tproxy UDP 入站
RULE-SET引用規則集合,需要設定 rule-providers

邏輯規則 & 子規則

AND / OR / NOT

寫法為 LOGIC_TYPE,((payload1),(payload2)),Proxypayload 是規則類型和內容,比如 DOMAIN,google.com。注意括號的使用,多個條件要用雙重括號包裹。

AND,((DOMAIN,baidu.com),(NETWORK,UDP)),DIRECT
OR,((NETWORK,UDP),(DOMAIN,baidu.com)),REJECT
NOT,((DOMAIN,baidu.com)),PROXY
SUB-RULE

匹配到子規則集合,詳見獨立的 子規則 頁面。

MATCH

匹配所有請求,無需任何條件,通常放在規則列表最後一條做兜底。

附加參數

no-resolve僅目標 IP 規則

網域開始匹配「目標 IP」類規則時,mihomo 會先觸發一次 DNS 解析來檢查解析出的 IP 是否匹配該規則;加上 no-resolve 可以跳過這次解析。如果更早的規則已經觸發過解析,即使加了 no-resolve 依然會用已有的解析結果去匹配。

src僅目標 IP 規則

把「目標 IP」匹配轉換為「來源 IP」匹配。