クイックスタートでは、Clash のルールベース照合の基礎を説明しました。この章では、最新バージョンの Clash で利用できるすべてのルール種別を紹介します。
# 类型,参数,策略(,no-resolve)
TYPE,ARGUMENT,POLICY(,no-resolve)no-resolve は任意のオプションで、ルール処理時の DNS 解決を省略します。GEOIP、IP-CIDR、IP-CIDR6、SCRIPT ルールを使いながら、ドメイン名をすぐに IP アドレスへ解決したくない場合に便利です。
ポリシー
現在は四つのポリシー種別があります:
- DIRECT:
interface-nameを介して接続先へ直接接続します(システムのルーティングテーブルは参照しません) - REJECT:パケットを破棄します
- Proxy:指定したプロキシサーバーへパケットをルーティングします
- Proxy Group:指定したポリシーグループへパケットをルーティングします
ルール種別
以下では、各ルール種別とその使い方を説明します:
DOMAIN ドメイン
DOMAIN,www.google.com,policy は www.google.com を policy にルーティングします。
DOMAIN-SUFFIX ドメインサフィックス
DOMAIN-SUFFIX,youtube.com,policy は、youtube.com で終わるすべてのドメインを policy にルーティングします。
この場合、www.youtube.com と foo.bar.youtube.com はどちらも policy にルーティングされます。
DOMAIN-KEYWORD ドメインキーワード
DOMAIN-KEYWORD,google,policy は、google というキーワードを含むすべてのドメインを policy にルーティングします。
この場合、www.google.com と googleapis.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,DIRECT は my-rule-provider からすべてのルールを読み込みます
SCRIPT スクリプト
情報
この機能は Premium 版 でのみ利用できます。
SCRIPT ルールは、スクリプトの結果に基づいてパケットをルーティングします。Clash がこのルールを使うと、指定したスクリプトを実行し、その出力先へパケットをルーティングします。
警告
SCRIPT を使用すると、Clash はドメイン名を解決して IP アドレスを取得します。DNS 解決を省略するには、no-resolve オプションを使用してください。
SCRIPT,script-path,DIRECT は、スクリプト script-path の出力結果に従ってパケットをルーティングします。
MATCH 全照合
MATCH ルールは残りのパケットをルーティングします。このルールは必須であり、通常は最後のルールとして配置します。
MATCH,policy は残りのパケットを policy にルーティングします。
