ルーティングルール
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 | ワイルドカードマッチ。*(0個以上の文字)と ?(1文字)のみ対応——これは設定ファイルの他の場所で使われる 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 | 完全なプロセスパスでマッチ(3種類の書式:完全パス / ワイルドカード / 正規表現) |
PROCESS-NAME / PROCESS-NAME-WILDCARD / PROCESS-NAME-REGEX | プロセス名でマッチ。Android ではパッケージ名にもマッチ可能 |
UID | Linux のユーザー ID にマッチ |
NETWORK | tcp または udp にマッチ |
DSCP | DSCP マークにマッチ。tproxy UDP 受信のみ対応 |
RULE-SET | ルールプロバイダーを参照します。rule-providers の設定が必要です |
論理ルール & サブルール
AND / OR / NOT書式は LOGIC_TYPE,((payload1),(payload2)),Proxy で、payload はルールタイプと内容です。例: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 解決を1回トリガーして、解決された IP がそのルールにマッチするかを確認します。no-resolve を付けるとこの解決をスキップできます。それより前のルールで既に解決がトリガーされている場合、no-resolve を付けていても既存の解決結果を使ってマッチングされます。
src宛先 IP ルールのみ「宛先 IP」マッチを「送信元 IP」マッチに変換します。