チュートリアル 約14分で読める

Clash Meta(Mihomo)で Sniffer を有効にし、HTTPS をドメイン単位で分流する:段階的な設定手順(2026)

本稿は、Clash Meta コア(多くのクライアントで Mihomo として表示)において、HTTPS 通信が接続ログ上では IP アドレス ばかりになり、DOMAIN-SUFFIXDOMAIN-KEYWORD などドメイン系ルールが命中しないというユーザー検索意図に答える記事です。Sniffer(嗅探)は、暗号化された転送の手前で TLS の SNIQUIC に含まれるホスト情報を読み取り、ルールエンジンがホスト名ベースで判定できるようにします。すでに TUN モード をオンにしている方や、PROCESS-NAME でプロセス別に出口を分けている方とも整合するよう、ドメイン分流という別レイヤとして整理します。DNS の FakeIP・DoH の設計は DNS リーク防止ガイド が本流です。

Clash編集チーム Clash Meta · Mihomo · Sniffer · HTTPS · ドメイン分流 · ルール

症状:ルールは書いたのに「IP のまま」になる理由

HTTPS は転送路が暗号化されるため、プロキシのルールエンジンが最初から平文のホスト名を見られるとは限りません。多くの構成では、接続の宛先がすでに IP に解決された後に内核へ渡るため、ログには 1.2.3.4:443 のようにIP とポートだけが並びます。この状態では DOMAIN-SUFFIX,example.com,PROXY を書いても、評価対象にドメイン文字列が存在しないため、期待した行に届かず、GEOIPMATCH など別の行に落ちることがあります。検索で多いのは「TUN も入れたしルールも増やしたのに、ダッシュボードではずっと IP 表示」というパターンで、ここでSniffer を有効にしてホスト名を復元すると、ドメイン分流がようやく一つの絵として繋がります。もちろん、名前解決そのものが別経路に逃げているケースは DNS 側の問題なので、層を混ぜずに切り分けるのが早いです。

Sniffer が行うこと(TLS・QUIC・宛先の上書き)

Sniffer は、パケットの一部を解析してアプリケーション層の手がかりを取り出す仕組みです。Clash MetaMihomo では、典型的に TLS クライアントハンドシェイク に含まれる SNI(Server Name Indication) から、接続先として想定されるホスト名を得ます。HTTP/3 で使われる QUIC についても、実装とバージョンに応じて同様の嗅探対象になります。得られたホスト名は、ルールマッチングの入力として使われ、override-destination(宛先上書き)を有効にしていれば、以降の処理がIP ではなく復元されたドメインを見る流れに寄せられます。キーワードとして「嗅探」と表記されるのは、この暗号の外側に出ているメタデータを読むイメージに由来します。設定キーの正式名称やデフォルト値は利用中のバージョンのドキュメントを正としてください。

整理:Sniffer は「ルールの書き方」そのものではなく、ルールに渡る情報をホスト名に戻すための前処理に近いです。DNS の挙動とセットで混乱しやすいので、まずログで IP 表示か/ドメイン表示か を確認するのが第一歩です。

前提:TUN・キャプチャ経路・ルールモード

Sniffer を実際に効かせるには、内核が対象トラフィックを観測できる経路に載せる必要があります。デスクトップでは TUN で仮想 NIC に流し込む構成が一般的で、システムプロキシだけでは一部アプリのフローが見え方が変わることがあります。手順の詳細は TUN モードの記事 を参照し、OS の権限ダイアログまで通したうえで本稿に戻ってください。また、ルールモード(Rule)でドメイン系ルールを試すのが素直です。グローバルに全て同じ出口へ寄せていると、「Sniffer が悪いのか、ポリシーがそもそも単純なのか」の切り分けが難しくなります。Windows の初期構成は Windows セットアップ記事 と併せると、GUI と YAML の対応が掴みやすいです。

設定の骨格(YAML スケッチ)

以下は説明用のスケッチです。キー名・階層・デフォルトはバージョンで変わり得るため、手元の Mihomo の設定スキーマに合わせて置き換えてください。意図としては、(1) sniffer を有効化し、(2) TLSQUIC など嗅探対象のポートを列挙し、(3) 必要なら override-destinationルール判定にドメインを効かせる、という順です。force-domainskip-domain は、嗅探の強制・除外を細かくしたいときに使います。国内ドメインやイントラ向けホストを誤って上書きしないよう、運用ポリシーに合わせて調整してください。

# Sketch — keys depend on your Mihomo / Clash Meta version
sniffer:
  enable: true
  override-destination: true
  sniff:
    TLS:
      ports: [443, 8443]
    QUIC:
      ports: [443]
  force-domain:
    - "+.example.com"
  skip-domain:
    - "+.lan"

override-destination とルール命中の関係

override-destination をオンにすると、嗅探で得たホスト名が、以降のルール評価で宛先として優先されやすくなります(実装の詳細はバージョン注釈を確認)。オフのままだと、ログに SNI は出てもルール入力が IP のままという齟齬が残ることがあります。一方で、あらゆるフローを機械的に上書きすると、意図しないホストへの振る舞いが変わるリスクもあるため、まずは接続ログで効果を確認しながら広げるのが安全です。社内限定ドメインやストリーミングの複雑な CDN まわりでは、skip-domain嗅探の対象から外す判断が必要になることもあります。

DNS・FakeIP との棲み分け(混同しやすい点)

Snifferパケットからホスト名を復元する話であり、DNS クライアントがどのサーバに問い合わせるかとは別レイヤです。FakeIP モードでは、ブラウザが見る IP と実際のオリジンとの対応が独自のルールで管理されるため、「DNS ガイドで直したつもりなのにログが読みにくい」という状態になりがちです。整理のコツは、DNS ガイドで名前解決とリーク対策を固め、本稿の Sniffer でHTTPS の可視性を補う、という二段構えです。詳細は Meta コア DNS リーク防止 を参照してください。また、DoH を有効にした直後にだけ挙動が変わる場合は、キャッシュやクライアント側の DNS キャッシュも疑います。

ルール配列の順序(DOMAIN 行が到達する位置)

Clash 系は rules上から評価し、最初の一致で打ち切りです。Sniffer でドメインが見えるようになっても、より上段の IP-CIDR や広い GEOIP に先に吸われていれば、DOMAIN-SUFFIX 行には届きません。対策は、(1) ダッシュボードのルール命中表示で実際にどの行が選ばれているかを見る、(2) 狙いのドメイン行をより上へ移動する、(3) 例外をローカルに追記する、の三段です。PROCESS-NAME でプロセス別に振ったルールと組み合わせる場合も、どちらが先に評価されるかが結果を決めます。購読ルールセットが巨大なプロファイルでは、追記位置を誤ると「Sniffer を入れたのに変わらない」ように見えるので注意してください。

動作確認の手順

  1. TUNルールモードが意図どおりかを確認する。
  2. sniffer を有効化しコアをリロードし、接続一覧で HTTPS が ドメイン表示に変わるかを見る。
  3. テスト用に狭い DOMAIN-SUFFIX を一時的に上段へ置き、意図したポリシーに落ちるか確認する。
  4. 効かない場合は、override-destination の有無、skip-domain の誤登録、より上段ルールの先取りを疑う。
  5. DNS 側の症状が混じる場合は FakeIP・DoH 設定 に切り替えて再現条件を分離する。

よくあるつまずき

  • Sniffer オフのまま:IP 表示が続き、ドメインルールに届かない。
  • override-destination 未使用/不整合:ログには出るがルール入力が IP のまま。
  • ルール順:広い IP/地域ルールが先にマッチし、DOMAIN 行が死んでいる。
  • QUIC/HTTP3:443/UDP の扱いが環境によっては別経路になり、嗅探対象から外れる。
  • DNS だけ直そうとして混乱:実際には SNI 可視化が不足している。

注意:職場・学校・契約ネットワークではプロキシやトラフィック解析が禁止されている場合があります。許可された環境でのみ設定し、他人の通信を観測・中継しないでください。

PROCESS-NAME やシナリオ記事との組み合わせ

ドメインで大枠を決め、プロセス名で例外を足す、という二層は現場でよく使われます。例えば「ブラウザはプロキシ、特定の会議アプリは直結」は PROCESS-NAME 記事 の出番であり、ブラウザ内のサイトを細かく分けたいときは本稿の SnifferDOMAIN ルールが主役です。どちらも TUN 前提の話が多いので、TUN ガイド とセットで読むと、設定画面のトグルとログの対応が掴みやすくなります。

ドキュメントとクライアント入手

Sniffer のキー一覧と挙動の差分は、利用中の Mihomo のリリースノートと公式ドキュメントを正としてください。日々のクライアント入手公式ダウンロードページ から行い、用語の整理は ドキュメント・チュートリアル も併用すると、GUI の項目名と YAML の対応が追いやすくなります。ソースや Issue は GitHub が適していますが、インストーラの取り違え防止のため、配布物の第一選択肢はサイト側に寄せるのがおすすめです。

まとめ

HTTPSIP 表示のままになり ドメイン分流が効かないとき、Clash MetaMihomo では Sniffer によって TLS SNI などからホスト名を復元し、DOMAIN-SUFFIX 系ルールが評価できる入力に揃えるのが実務的な解です。override-destinationルール順TUNDNS の各レイヤを混同せず、ログで一段ずつ確認すると迷子になりません。2026 年現在も、バージョンごとのスキーマ差はあるため、コピペより手元のドキュメントと接続ログの両方を見る姿勢がもっとも安全です。

ルールをテキストで管理できるエコシステムでは、Sniffer を足すことで「見えなかったホスト名」がルールに接続され、運用の説明可能性が高まります。過剰な嗅探範囲は避け、skip-domain などで意図をコードに残すと長期メンテナンスしやすくなります。

Clash を無料ダウンロードし、Sniffer で HTTPS のドメイン分流を自在に整える

Clash クライアント HTTPS・Sniffer

TUN と接続ログが扱いやすい GUI を選ぶと、Sniffer 有効化の前後でドメイン表示が変わるかの検証が速くなります。インストーラは公式ダウンロードページから取得し、設定はログを見ながら少しずつ足していきましょう。

前後の記事

関連記事

Sniffer で HTTPS をドメイン分流

TLS の手がかりを復元し、DOMAIN ルールと揃えましょう。TUN とログを確認し、クライアントは公式ダウンロードから。

無料ダウンロード