Clash で中国本土サイトが誤プロキシ?GEOIP CN・DIRECT・MATCH とルール優先順位を順に直す(2026)

分流しているのに「本土サイトだけプロキシ」になる症状

ClashMihomo で国内外を分けるルールを入れたつもりなのに、中国本土の一般サイトだけがノード経由になり、体感遅延が跳ねたりログイン確認が異常に遅くなったりする──検索クエリになりやすいのは、このパターンです。原因はひとつではなく、「ルール評価の順番」「GEOIP と DIRECT の置き場所」「締めの MATCH」「名前解決と fake-ip の組み合わせ」といった複数レイヤが絡みます。

本稿は総論より实操(実務)の並べ替え手順です。構文の一覧はルール分岐の総合ガイド、TLS 上でドメインを復元したいときの別筋はSniffer と fake-ip に関する既稿と役割分担してください。ブラウザだけをプロキシに寄せている構成との切り分けは「ブラウザのみ経由」運用ガイド側で整理されます。

そもそも「最初に当たった行」しか勝てない

Clash 系コアの rules: は、配列の先頭から順にマッチ検索し、最初にヒットした行のポリシー(プロキシグループ、DIRECT、拒否など)で接続方針を確定します。よって広い網かけや最終処理に近い行が上にあると、細かく書いた例外は一生読まれません。中国本土向けだけ直結させたいなら、そのためのGEOIP,CN,DIRECT(または利用中セットが定める同等の書き方)は、それより雑な「全部プロキシ」系のRULE-SETより必ず上に来るべきです。

現場で厄介なのは、購読 URL が提供する数万行規模のセットを、そのまま先頭側にぶら下げているケースです。GUI の「追加」がリスト末尾ではなく末尾付近ではなくとも、マージ順で自動ルールより下に見えない位置に入ってしまうと、見た目より実際の優先順位がズレます。ログに出るMatched rule の名前や行インデックスがあるクライアントでは、問題ドメインを流したときどの行に吸われたかを必ず確認してください。

用語:RULE モードでないとリストは評価されません。開発中だけ GLOBAL 固定にしていたり、アプリ側がシステムプロキシだけで TUN と二重経路になっていたりすると、画面上の YAML と体感がズレやすくなります。

GEOIP CN を DIRECT で効かせる定番レイヤ構造

代表的なレイヤ構造は、(1) ローカル・LAN を DIRECT、(2) 明示的にプロキシが必要な海外ドメインを上段、(3) 広告など任意のセット、(4) 中国本土由来の宛先らしきものを GeoIP で DIRECT、(5) 残りを海外用グループ、(6) 最後にMATCH で締める、です。GEOIP は「その時点で判明している宛先 IP」を国コードに照合します。データベースの更新状態や CDN の出口国によって結果が変わる点は頭に留めておき、怪しいときは問題ドメインの実 IP を複数環境で追います。

コミュニティによっては「GEOIP,CN,DIRECT,no-resolve」のような形で、名前解決前にルール評価を打ち切る設計がありますが、利用するコアのバージョンとドキュメントに合わせる必要があります。no-resolve と fake-ip を組み合わせるときは、「ルール評価の時点では IP がまだ無い」ケースがあるため、その行より前にドメインベースで拾う必要がある、という競合があります。矛盾しそうなら一度「ドメインファースト」の短いセットを自分で作りリスト上部に置くほうが調整が早いことが多いです。

rules:
  - GEOIP,lan,DIRECT
  - GEOIP,cn,DIRECT
  - MATCH,PROXY

上記の PROXY はご利用のproxy-groups 名へ置換してください。また実際には購読ルールや RULE-SET が大量に挟まるため、この骨格だけをコピーしても運用セットとは一致しません。重要なのは順序という概念です。MATCH は文字どおり総取りです。より細かな例外は必ずそれよりです。

DNSfake-ip がルールと食い違うとき

enhanced-mode: fake-ip(名称は実装により異なる)を使っていると、アプリケーションが見える IP と、コアが名前解決に使う情報の間で視差が生じます。その結果、(1) ドメインルールはヒットしないのに (2) 後続の IP ベース評価で思わぬ国コードに着地する、(3) あるいは逆に広いセットに先に飲まれる、といった「ルールどおり書いたはず」の事故が起きます。

切り分けの実務順は、(a) 問題ホストだけ fake-ip-filter 相当のリストへ入れるか、(b) ドメインヒットをリスト上段にもっていくか、(c) 一時的に redir-host 側へ戻して挙動比較、のどれかです。いずれも単独変更ではなく上流の名前解決(OS DNS、ブラウザの Secure DNS)、TUN 配下でのハイジャックの有無とセットで確認してください。TUN ガイドにある DNS の節は、本作業とセットで読むと抜け漏れが減ります。

MATCH で「漏れ」をどちら側に寄せるか

日本語コミュニティでいう漏网(ろうもう)とも呼ばれる、ルールセットに載っていない通信の扱いは、ほぼ常に最終 MATCH に集約されます。ここが Proxy 系グループになっているとき、本上向けサイトがセットに一度も載っていなければ、たとえ下の方で GEOIP,CN,DIRECT を書いていても、(順序によっては)すでにもっと前の行へ吸われて終わります。また逆に、MATCH を DIRECT に寄せすぎると海外サイトが直結側に落ち規制サイトが開けないという別の問い合わせパターンに跳びます。だから運用セットでは「セットの広さ」と「MATCH の危険度」のトレードオフがある、と理解するとよいです。

実務では、MATCH を海外プロキシにする構成なら、その直前までGEOIP,CNDIRECT として必ず挟む一方、CDN で海外サーバになる本土サービスだけは DOMAIN-SUFFIX で例外処理する——という二本立てになることが多くなります。どちらにも当たらないものだけが MATCH で締められます。例外を上へ、MATCH を最後へという形を頭に置いておけば、購読更新後も設計が崩れにくくなります。

購読が毎回流し込む「デフォルトルール」を疑う

サブスク更新や GUI の「自動更新」があると、手で整えた並び順が巻き戻る事例があります。そのたびに GEOIP 行だけ滑り落ちていた、というログは珍しくありません。恒久対処は、(1) ローカルの mixinprepend-rules 相当の機能で必ず頭に自分のレイヤを注入する、(2) 購読を「プロキシ定義のみ」へ分離してルールは別ストアから読む、(3) 更新ポリシーでルール順のマージ規則を確認する——のいずれかです。

サブスクのインポート手順の全体像はサブスク URL ガイドと合わせると設定全体のレイヤ構造が掴みやすくなります。

Sniffer が必要になる境界(別問題との切り分け)

TCP が暗号化されてしまい、アプリが IP だけで張ってきたときにドメインベースルールへ乗せたい要件は、mihomo などの嗅探レイヤ(Sniffer)側の問題です。DIRECT かプロキシかを GeoIP と順序だけで決められないケースとは症状が似るため、override-destination や許可ポート、ルール評価の再試行順をSniffer の記事で順に潰してください。本作はあくまで「ルール並び」と「名前解決と GeoIP」を主戦場とします。

ワンポイント:「一度だけ」「特定ユーザーのセットだけ」異常になるなら、mmdb の更新差やセットの自動生成バグより、GUI が生成したprepend/appendの向きや、プラットフォーム別のインポートの差異を疑ってください。

修正チェックリスト(上から順に)

  1. クライアントがRULE モードであり、競合しないシステムプロキシ/TUN 設定になっていることを確認する。
  2. 問題ドメインを流したときのログで、最初にヒットしたルール種別(DOMAIN/RULE-SET/GEOIP/MATCH)をメモする。
  3. GEOIP,CNDIRECTが、MATCH および「広い RULE-SET へプロキシ」の両方より上かを確認する。
  4. MATCH の行き先が意図と一致しているか読み直す(海外プロキシに寄せているなら、本土を吸い込まない順序になっているか)。
  5. fake-ip 利用時は、フィルタとドメイン例外の両面から「名前」と「評価に使われるオブジェクト」を揃える。
  6. CDN で海外側 IP になるサイトは DOMAIN-SUFFIX など明示ルールへ逃がすか、MATCH 側のリスクを受け容れるかを運用ポリシーで決める。
  7. 問題が TLS SNI が見えない系なら嗅探レイヤの設定へ切り替えて検証する。

ソースとビルド

Mihomo/Clash はオープンソースとして公開されており、挙動差分はバージョンのリリースノートや Wiki で追えます。リポジトリは開発者向けの参照先として有用です。日々のクライアントの入手は、説明の揃った配布一覧を使った方がプラットフォームの取り違えがありません。

まとめ

中国本土向けサイトが誤ってプロキシに乗る問題は、文法エラーだけでなく並び順名前解決の設計問題であることがほとんどです。GEOIP,CNDIRECT に落としたいなら、MATCH より下ではなく、その手前までに必ず評価を通過させます。fake-ip をオンにしているなら、評価に使われるホスト情報と画面上のリストを同期させない限りログ上も「想定どおり」になりません。Sniffer と被る症状でも、本作のチェックリストを先に潰せば試行錯誤が半分になります。

同種のクライアントのなかでも、Clash/Mihomo 系はルールの並べ替えとログの両方へ手が届きやすく、レイヤ単位でのトラブルシュートには向きます。Windows/macOS/モバイル向けビルドはダウンロードページから選べます。Clash Verge Rev チュートリアルで画面操作に慣れてから並べ替えると、「どの並びが実際に適用されているか」の確認も速くなります。安定運用での体感速度は、単純 VPN よりトラフィック単位で制御できる分、長期的には有利になりやすいものです。→ Clash クライアントを無料でダウンロードし、ルール順を自分のセットに合わせて試す