Clash ルール分岐設定の詳解:カスタムルールで国内外のトラフィックを正確に振り分ける

ルール分岐で「国内は速く、海外だけプロキシ」を現実にする

ClashMihomo(旧称 Clash Meta)を使う最大の魅力のひとつは、接続先ごとに出口(プロキシ/直結/拒否)を細かく制御できることです。購読 URL から降ってくるデフォルト構成だけでも動きますが、実際の運用では「自国向けサービスは遅延の少ない直結」「海外サイトやブロック回避が必要な通信だけ中継」といったルールベースの分流がほぼ必須になります。

本稿では、ルールがどの順序で評価されるか、DOMAINGEOIP など各タイプの意味、カスタムルールをどこに足すと安全か、外部ルールセット(rule-providers)との組み合わせ、DNS との関係、そしてよくあるつまずきの切り分けまでを、日本語読者向けに整理します。TUN モード完全ガイドと併読すると、トラフィックを OS レベルで Clash に流し込んだうえでルールを効かせる流れがつながります。

モードの意味:RULE が本命

多くの GUI には「ルール/グローバル/直結」に相当する切り替えがあります。概念としては次のとおりです。RULErules セクションを上から順に照合し、最初にマッチした行の行き先(プロキシグループ名、DIRECTREJECT など)に振り分けます。GLOBAL はルールをほぼ迂回し、グローバル用のグループ選択に寄せます。DIRECT は名前のとおり直結固定で、ルールを使わない簡易モードです。

国内外の精密な分流を狙うなら、常時 RULE を軸にし、例外時だけ一時的に GLOBAL で切り分ける、という運用が一般的です。グローバル固定は設定が楽ですが、不要な通信まで遠回りになりやすく、帯域と遅延の両面で無駄が出ます。

用語:本稿ではコアが rules: 配列を評価して接続方針を決める仕組みを広く「ルール分岐」と呼びます。クライアントによってメニュー表記は異なりますが、背後の YAML の考え方は共通です。

最初の一行が勝つ:評価順序を頭に入れる

Clash 系のルールはリストの先頭から順にマッチ探索し、最初に一致した行で打ち切ります。だからこそ、「細かい例外」を「大雑把な網羅ルール」よりに書く必要があります。典型例として、特定ドメインだけ別ノードにしたい場合は、その DOMAIN-SUFFIX を、締めの MATCH や広い GEOIP より上に置きます。

購読プロバイダーが配る巨大な rules をそのまま使っている場合、GUI の「ルール追加」機能が先頭に挿入するのか末尾に追記するのかで挙動が変わります。意図と逆の出口に落ちるときは、まず順序を疑うと早いです。

主要なルールタイプと使いどころ

ドメイン系

DOMAIN は完全一致、DOMAIN-SUFFIX はサフィックス一致、DOMAIN-KEYWORD はホスト名にキーワードが含まれるか、というマッチです。CDN やワイルドカードに近い挙動が必要なときは DOMAIN-SUFFIX が扱いやすく、誤爆しやすい DOMAIN-KEYWORD は必要最小限に留めるのが無難です。

IP 系

IP-CIDRIP-CIDR6 は、名前解決後の宛先 IP が該当セグメントに入るかで判定します。SRC-IP-CIDR は送信元側のセグメント指定です。社内ネットやストリーミングの固定レンジを直結させたいときに有効ですが、IP が変わるサービスだけに依存すると保守が大変になります。

GEOIP:国内外を分ける定番

GEOIP は GeoIP データベースを参照し、宛先 IP の国・地域コードで振り分けます。「GEOIP,JPDIRECT」のように書けば、日本向けと判定された宛先は直結、それ以外は後続ルールや最終行へ、という構成が作れます。データファイルの更新や、Mihomo 側の GeoIP 形式(mmdb 等)の扱いは環境差があるため、利用中のバージョンのドキュメントを一度確認してください。

論理ルールとプロセス名(拡張)

Mihomo では ANDORNOT などの論理ルールや、OS 依存の PROCESS-NAME 系が使える場合があります。特定アプリだけ別経路にしたいときに強力ですが、モバイルやサンドボックス化されたアプリでは効かないこともあるため、あくまで補助と考えると安全です。

プロキシグループとルールのつなぎ方

ルールの右側に書くのは、多くの場合プロキシグループ名です。select は手動選択、url-test は遅延計測で自動選択、fallback は可用性優先、といったグループを定義し、ルールからはその名前を指します。国内外分流では、「海外用にまとめた select または url-test グループ」と「DIRECT」をルールで行き来させるパターンが非常に多いです。

購読が提供する Proxy♻️ 自動選択 のような表示名は、そのままルール右辺に使えます。名前を変えたら、古いルールが存在しないグループを指してエラーになるので、リネーム時は全体を grep する習慣があると安心です。

rule-providers:メンテを外部ルールセットに任せる

広告ブロック用リストやコミュニティ製の分流ルールは、静的に rules: にべた書きするより rule-providers で URL から取り込み、定期更新する運用が一般的です。プロバイダー定義で behaviordomainipcidrclassical 等)を合わせ、rules 側では RULE-SET,provider_name,Policy のように参照します。

コミュニティセットは品質と更新頻度にばらつきがあるため、信頼できるソースを選び、不審な URL は避けてください。当サイトのチュートリアル・ドキュメントでも、代表的なルールセット名に触れています。購読そのものの取り込み手順はサブスクリプション URL のガイドとあわせると、設定全体の見通しが良くなります。

国内外トラフィックを「正確に」分ける構成の型

「正確さ」は、ビジネス要件次第で定義が変わりますが、実務でよく取られる型は次のような層構造です。(1) ローカル/LAN/特殊用途を DIRECT または REJECT。(2) 明示的にプロキシ必須なドメインを上段に列挙。(3) コミュニティのブロック/広告ルールを RULE-SET で取り込む(任意)。(4) 自国 GEOIPDIRECT。(5) 残りを海外用プロキシグループへ、を MATCH で締める。

この型のポイントは、例外を上に、デフォルトを下に置くことです。また、GEOIP は「その時点で判明している宛先 IP」に対して効くため、名前解決の経路がルールと矛盾していると、見かけ上おかしい振り分けが起きます。次節の DNS とセットで考えます。

YAML のイメージ(概念用サンプル)

実際のキー名やインデントは利用バージョンのスキーマに合わせてください。ここでは分流の骨格だけ示します。

rules:
  - DOMAIN-SUFFIX,corp.internal,DIRECT
  - DOMAIN-SUFFIX,cdn.example.com,PROXY
  - RULE-SET,blockads,REJECT
  - GEOIP,JP,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

PROXY は実際の proxy-groups で定義した名前に置き換えます。国コードや RULE-SET の有無は環境に応じて調整してください。複数購読をマージしている場合は、グループ名の衝突に注意します。

DNS とルールの整合:見えないズレを防ぐ

ルールは「どの IP/ドメインでマッチするか」に依存します。OS やブラウザが別の DNS を使って名前解決していると、Clash が想定する IP と実際の接続先がずれ、ルールは合っているのに経路がおかしい現象が起きます。TUN や DNS ハイジャックを併用する場合は、TUN ガイドの DNS 節も参照し、リゾルバを一本化する方向で検討してください。

Fake-IP モードでは、マッチのタイミングと実接続の関係が素の設定より複雑になります。変更したらキャッシュクリアと実サイトでの確認をセットで行うと安全です。

トラブルシューティング

国内サイトなのにプロキシに乗る/逆に海外が直結する

ルール順を確認し、より具体的な行が下に埋もれていないかを見ます。GEOIP のデータが古い場合もあります。ログのマッチ結果(クライアントによっては接続イベントにルール名が出る)を追うと原因が特定しやすいです。

ルールが多くて遅い

巨大な classical セットを多用すると評価コストが増えます。domainipcidr 向けに最適化されたプロバイダーや、不要な DOMAIN-KEYWORD の削減を検討してください。

rule-provider が読み込めない

URL の到達性、TLS 検証、プロキシ下での取得失敗を疑います。オフライン運用するならローカルミラーと path 指定も選択肢です。

運用のコツ:一度動いた構成に手を入れるときは、差分を小さく保ち、変更直後に「代表ドメイン」「自国の動画サービス」「海外ニュースサイト」の3点くらいで出口を確認すると、巻き戻しが楽です。

オープンソースと入手経路

Mihomo/Clash 系はオープンソースで、ルールまわりの挙動差分はリリースノートや Wiki で追えます。挙動を深く読むときはリポジトリが有用です。一方、日々のクライアントの入手と更新は、説明が揃った配布ページを使うと取り違えを防ぎやすくなります。

まとめ

Clash/Mihomo で国内外トラフィックを精密に分流するには、RULE モードを軸に、評価順序ルールタイプの選択プロキシグループ名の一貫性、必要なら rule-providersGEOIP、そして DNS との整合をセットで設計します。例外を上に、デフォルトを下に置くという型を守れば、カスタムルールの追加も安全に回せます。

同種ツールのなかでも、Clash 系はルール表現の自由度と可観測性のバランスが取りやすく、長期運用に向きます。Windows/macOS/Linux/モバイル向けビルドはダウンロードページから環境に合わせて選べます。GUI での基本操作はClash Verge Rev チュートリアルと併せて押さえると、本稿の YAML のイメージと画面がすぐ対応づきます。安定性とトラフィック制御のしやすさは、多くのユーザーにとって単純なワンタップ VPN より実用的な体験になりやすいものです。→ Clash クライアントを無料でダウンロードし、ルール分岐を試す