設定 · Clash ドキュメント

Rules

DIRECT、REJECT、ノード、ポリシーグループの照合順序を説明し、DOMAIN、GEOIP、IP-CIDR、RULE-SET、SCRIPT、MATCH などの構文と no-resolve の動作を整理します。

  • DOMAIN
  • DOMAIN-SUFFIX
  • IP-CIDR
  • RULE-SET
  • MATCH
設定

クイックスタートでは、Clash のルールベース照合の基礎を説明しました。この章では、最新バージョンの Clash で利用できるすべてのルール種別を紹介します。

txt
# 类型,参数,策略(,no-resolve)
TYPE,ARGUMENT,POLICY(,no-resolve)

no-resolve は任意のオプションで、ルール処理時の DNS 解決を省略します。GEOIPIP-CIDRIP-CIDR6SCRIPT ルールを使いながら、ドメイン名をすぐに IP アドレスへ解決したくない場合に便利です。

ポリシー

現在は四つのポリシー種別があります:

  • DIRECT:interface-name を介して接続先へ直接接続します(システムのルーティングテーブルは参照しません)
  • REJECT:パケットを破棄します
  • Proxy:指定したプロキシサーバーへパケットをルーティングします
  • Proxy Group:指定したポリシーグループへパケットをルーティングします

ルール種別

以下では、各ルール種別とその使い方を説明します:

DOMAIN ドメイン

DOMAIN,www.google.com,policywww.google.compolicy にルーティングします。

DOMAIN-SUFFIX ドメインサフィックス

DOMAIN-SUFFIX,youtube.com,policy は、youtube.com で終わるすべてのドメインを policy にルーティングします。

この場合、www.youtube.comfoo.bar.youtube.com はどちらも policy にルーティングされます。

DOMAIN-KEYWORD ドメインキーワード

DOMAIN-KEYWORD,google,policy は、google というキーワードを含むすべてのドメインを policy にルーティングします。

この場合、www.google.comgoogleapis.com はどちらも policy にルーティングされます。

GEOIP IP の地域(国コード)

GEOIP ルールは、パケットの接続先 IP アドレスの国コードに基づいてルーティングします。Clash はこの機能に MaxMind GeoLite2 データベースを使用します。

警告

このルールを使うと、Clash はドメイン名を IP アドレスに解決し、その IP アドレスの国コードを調べます。DNS 解決を省略するには、no-resolve オプションを使用してください。

GEOIP,CN,policy は、接続先 IP アドレスが中国に属するすべてのパケットを policy にルーティングします。

IP-CIDR IPv4 アドレス範囲

IP-CIDR ルールは、パケットの接続先 IPv4 アドレスに基づいてルーティングします。

警告

このルールを使うと、Clash はドメイン名を IPv4 アドレスに解決します。DNS 解決を省略するには、no-resolve オプションを使用してください。

IP-CIDR,127.0.0.0/8,DIRECT は、接続先 IP アドレスが 127.0.0.0/8 に含まれるすべてのパケットを DIRECT にルーティングします。

IP-CIDR6 IPv6 アドレス範囲

IP-CIDR6 ルールは、パケットの接続先 IPv6 アドレスに基づいてルーティングします。

警告

このルールを使うと、Clash はドメイン名を IPv6 アドレスに解決します。DNS 解決を省略するには、no-resolve オプションを使用してください。

IP-CIDR6,2620:0:2d0:200::7/32,policy は、接続先 IP アドレスが 2620:0:2d0:200::7/32 に含まれるすべてのパケットを policy にルーティングします。

SRC-IP-CIDR 送信元 IP アドレス範囲

SRC-IP-CIDR ルールは、パケットの送信元 IPv4 アドレスに基づいてルーティングします。

SRC-IP-CIDR,192.168.1.201/32,DIRECT は、送信元 IP アドレスが 192.168.1.201/32 に含まれるすべてのパケットを DIRECT にルーティングします。

SRC-PORT 送信元ポート

SRC-PORT ルールは、パケットの送信元ポートに基づいてルーティングします。

SRC-PORT,80,policy は、送信元ポートが 80 のすべてのパケットを policy にルーティングします。

DST-PORT 接続先ポート

DST-PORT ルールは、パケットの接続先ポートに基づいてルーティングします。

DST-PORT,80,policy は、接続先ポートが 80 のすべてのパケットを policy にルーティングします。

PROCESS-NAME 送信元プロセス名

PROCESS-NAME ルールは、パケットを送信したプロセス名に基づいてパケットをルーティングします。

警告

現在対応しているのは macOS、Linux、FreeBSD、Windows だけです。

PROCESS-NAME,nc,DIRECT は、プロセス nc からのすべてのパケットを DIRECT にルーティングします。

PROCESS-PATH 送信元プロセスパス

PROCESS-PATH ルールは、パケットを送信したプロセスのパスに基づいてパケットをルーティングします。

警告

現在対応しているのは macOS、Linux、FreeBSD、Windows だけです。

PROCESS-PATH,/usr/local/bin/nc,DIRECT は、パスが /usr/local/bin/nc のプロセスから送られたすべてのパケットを DIRECT にルーティングします。

IPSET IP セット

IPSET ルールは、IP セットとの照合結果に基づいてパケットをルーティングします。IPSET の公式サイト によると:

IP セットは Linux カーネルのフレームワークで、ipset プログラムから管理できます。種別に応じて、IP セットには IP アドレス、ネットワーク、(TCP/UDP)ポート番号、MAC アドレス、インターフェース名、またはそれらの組み合わせを保存でき、セット内のエントリーを高速に照合できます。

そのため、この機能は Linux でのみ動作し、ipset のインストールが必要です。

警告

このルールを使うと、Clash はドメイン名を解決して IP アドレスを取得し、その IP アドレスが IP セットに含まれるか確認します。DNS 解決を省略するには、no-resolve オプションを使用してください。

IPSET,chnroute,policy は、接続先 IP アドレスが IP セット chnroute に含まれるすべてのパケットを policy にルーティングします。

RULE-SET ルールセット

情報

この機能は Premium 版 でのみ利用できます。

RULE-SET ルールは、Rule Providers ルールセット の結果に基づいてパケットをルーティングします。Clash は指定した Rule Providers からルールを読み込み、パケットを照合します。いずれかのルールに一致すれば指定したポリシーへルーティングし、一致しなければこのルールをスキップします。

警告

RULE-SET を使用し、ルールセットの種類が IPCIDR の場合、Clash はドメイン名を解決して IP アドレスを取得します。DNS 解決を省略するには、no-resolve オプションを使用してください。

RULE-SET,my-rule-provider,DIRECTmy-rule-provider からすべてのルールを読み込みます

SCRIPT スクリプト

情報

この機能は Premium 版 でのみ利用できます。

SCRIPT ルールは、スクリプトの結果に基づいてパケットをルーティングします。Clash がこのルールを使うと、指定したスクリプトを実行し、その出力先へパケットをルーティングします。

警告

SCRIPT を使用すると、Clash はドメイン名を解決して IP アドレスを取得します。DNS 解決を省略するには、no-resolve オプションを使用してください。

SCRIPT,script-path,DIRECT は、スクリプト script-path の出力結果に従ってパケットをルーティングします。

MATCH 全照合

MATCH ルールは残りのパケットをルーティングします。このルールは必須であり、通常は最後のルールとして配置します。

MATCH,policy は残りのパケットを policy にルーティングします。