チュートリアル · 読了まで約 15 分

Windows で Clash のプロセス名分流を書く:
ゲーム用ノードと業務・ブラウザ用ノードを分ける

すでにシステムプロキシや TUN で「つながる」状態までは作れたが、同じ PC の上で、オンラインゲームだけ低遅延のノード群へ、ブラウザや Teams などは別の安定出口へと分けたい——そんなときはドメインルールだけでは足りず、実行ファイル(プロセス名)に紐づく PROCESS-NAME ルールが効いてきます。本稿では Mihomo(Clash Meta)系を前提に、Windows での書き方、TUN との関係、プロセス名の調べ方、よくある誤設定を順に整理します。

PROCESS-NAME · Mihomo · Windows · アプリ別プロキシ · TUN

1 なぜ「プロセス名」なのか

多くのテンプレートは DOMAIN-SUFFIXGEOIP でトラフィックを分類します。これだけでもブラウザはかなり制御できますが、同じブラウザで国内サイトと海外ゲームのポータルを開き分けたい、あるいは 特定のゲーム exe だけ別の出口を使いたい、といった要望では、宛先ドメインが共通だったり、ゲームが CDN や P2P をまたいだりして、ドメインだけでは意図どおりに分けにくい場面があります。そこで「どのアプリが発した通信か」を実行ファイル名で見る PROCESS-NAME が有効です。Mihomo を含む Clash Meta 系コアでは、ルール行の一種としてこのタイプが使え、GUI クライアントからも同じ概念で編集できます。

グローバルにセレクタを切り替えるのではなく、ルールの上から順に評価されるという Clash の基本を活かし、プロセス条件を先に置き、残りをドメインや GEOIP に任せる構成が一般的です。初めて Windows 側のセットアップをする場合は、Clash Verge Rev のインストール手順でプロファイルとポートの前提を揃えてから読むとスムーズです。

2 前提:TUN とコアの種類

PROCESS-NAME を安定して使うには、コアが接続元プロセスを識別できる経路が必要です。Windows ではシステムプロキシだけに頼ると、一部のアプリやプロトコルがプロキシ経由にならず、あるいはプロセス情報が期待どおりに乗らないことがあります。実務的には TUN(仮想ネットワークアダプタ)を有効にし、トラフィックを Mihomo 側に取り込む構成が推奨されやすく、本稿もその前提で話を進めます。管理者権限やインターフェース名はクライアントによって異なるため、まずはTUN モードの解説記事で自環境に合わせて有効化してください。

コアが Clash Meta/Mihomo であることも重要です。名称は似ていても、古い Clash Premium 系の単体バイナリではルール集合や挙動が異なる場合があります。可能ならクライアントの更新情報を確認し、設定画面の「コア」表示が Meta 系になっているかを見ておくと安心です。

用語の整理 「アプリ別プロキシ」「プロセス分流」「PROCESS-NAME ルール」は本稿では同じ目的を指す言い回しです。ルール行のタイプ名は PROCESS-NAME(大文字・ハイフン)で記述するのが一般的です。

3 PROCESS-NAME の書式

基本形は「ルールタイプ」「実行ファイル名」「ポリシー名」の三要素です。実行ファイル名は多くの場合 .exe を含めたファイル名で指定し、Windows では大文字小文字の扱いが実装に依存するため、タスクマネージャーに表示される表記と揃えると無難です。ポリシーには単一ノードではなく、proxy-groups に宣言した戦略グループ名を渡すのが一般的です。ゲーム向けに url-test で自動選別したグループ、業務向けに手動選択の select グループ、といった具合に分けておくと、あとからルールを追加しやすくなります。

ルールは上から順に最初の一致で確定します。したがって PROCESS-NAME をドメインよりに置くか、あるいは意図した順序になるよう全体を見直す必要があります。逆に、すべてをプロセスで分類しようとすると行数が膨らみ、ランチャーやアップデータの別 exe を見落としがちなので、残りのトラフィックは従来どおり DOMAINMATCH に任せるバランスが現実的です。

YAML(概念例)
rules:
  - PROCESS-NAME,GameClient.exe,GROUP-GAME
  - PROCESS-NAME,chrome.exe,GROUP-OFFICE
  - DOMAIN-SUFFIX,example.com,DIRECT
  - MATCH,GROUP-DEFAULT

GROUP-GAME などは任意の戦略グループ名です。英数字とハイフンだけにすると、エディタや購読マージの互換性が高いです。戦略グループの詳細な書き方はurl-test/fallback の記事と併せて参照してください。

4 戦略グループを二系統に分ける

「ゲーム用」と「業務・ブラウザ用」で、中身のノード集合を分けます。ゲーム側は遅延重視で url-test を使い、テスト URL は自環境で安定して応答が返る軽量 HTTP にします。業務側は特定の国を固定したい場合は select で手動選択、あるいは fallback で優先順位付きのフェイルオーバーにする、といった構成がよく使われます。どちらのグループにも同じ実ノードを重複登録しても構いませんが、名前(グループ名)をルールの第三列で一貫させることが重要です。

ダッシュボードのセレクタで「いま全体をどのモードにするか」を切り替える層を残しておくと、トラブル時に一時的に DIRECT や別の保険ノードへ寄せやすくなります。プロセス名ルールは「細かい分岐」、セレクタは「大きな逃げ道」というイメージで設計すると運用が楽です。

5 コピー用の骨組み(proxy-groups + rules)

以下は、実ノード名 node-game-a などを購読から取り込んだあとに、自分でグループを二つ定義し、プロセスルールで振り分ける最小例です。環境に合わせて名前を差し替えてください。実際の購読には含まれないため、mixin や購読覆写で追記する運用も向いています。

YAML
proxy-groups:
  - name: GROUP-GAME
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 40
    proxies:
      - node-game-a
      - node-game-b
  - name: GROUP-OFFICE
    type: select
    proxies:
      - node-office-1
      - node-office-2
      - DIRECT

rules:
  - PROCESS-NAME,SomeGame.exe,GROUP-GAME
  - PROCESS-NAME,chrome.exe,GROUP-OFFICE
  - PROCESS-NAME,ms-teams.exe,GROUP-OFFICE
  - MATCH,GROUP-OFFICE

MATCH の向き先は環境に合わせてください。ゲーム以外はすべて業務グループへ、といった単純化もできますし、別のデフォルトグループにしておくこともあります。ルールが効かないと感じたら、まず該当 exe が本当に想定どおりか、次により上位のルールに先にマッチしていないかをログで確認します。

6 Windows でプロセス名(exe)を調べる

タスクマネージャーを開き、「詳細」タブで名前の列を確認するのが直感的です。ストアアプリやランチャー経由のゲームでは、表示名と実際の exe が一致しないことがあるため、ゲームが通信している最中に一覧を見て、ネットワーク活動のある行を特定する方法が確実です。一部のクライアントでは接続ログにプロセス名が出るため、それをコピーしてルールに貼る運用もできます。

ブラウザは Chromium 系なら chrome.exemsedge.exe、Firefox なら firefox.exe のように本体が分かれます。Electron 製アプリは AppName.exe が一つに見えることもあれば、子プロセスが増える構成もあります。複数の exe が順に通信するゲームでは、主要な通信を担う exe をログで押さえるとルールが当たりやすくなります。

7 ランチャー・子プロセス・権限の注意

ゲームランチャー(Launcher.exe など)だけをルールに入れても、実プレイは別の Game.exe が行う場合、期待どおりに分岐しないことがあります。アップデータやバックグラウンドサービスも別プロセスになるため、運用しながらルールを足し引きする前提で考えます。管理者権限で動くアプリと非管理者の Clash クライアントの組み合わせでは、期待どおりにトラフィックが取り込めないケースの報告もあるため、そのときは TUN の設定やクライアントのドキュメントを当たります。

誤解しやすい点 PROCESS-NAME は「魔法の完全分離」ではありません。同じ exe が業務と私用の両方に使われる場合は、ドメインルールや別ブラウザプロファイルに分ける方が明確な場合もあります。

8 Sniffer や DOMAIN ルールとの併用

HTTPS の宛先がドメイン単位で分けたい場合は、プロセスルールとあわせて DOMAIN-SUFFIX や Rule Provider を使う構成が一般的です。TLS の SNI が必要な場面では、Sniffer(HTTPS 嗅探)の記事で挙動を押さえ、override-destination などの設定と矛盾がないか確認してください。プロセスで大枠を分け、ドメインで細かく補正する、という二段構えがデバッグしやすいです。

9 効かないときのチェックリスト

  1. TUN が有効で、対象アプリのトラフィックがコアに到達しているか(ログで確認)。
  2. ルールの順序:より具体的な PROCESS-NAME が、広い DOMAIN より先に評価されているか。
  3. exe 名の誤字・別名(ランチャーと実体の取り違え)。
  4. 戦略グループ名が proxy-groupsname と完全一致しているか。
  5. コアが Meta 系で、クライアントが古くルールタイプを解釈していないか。

これでも解決しない場合は、一時的にプロセス行をコメントアウトし、広い MATCH で動作を切り分けると、問題がルール側かノード側かを切り分けやすくなります。

運用のコツ 変更は少しずつ。プロセス行を一つ追加するたびに接続ログを確認し、意図したグループ名が選ばれているかを見ると、設定ミスに早く気づけます。

10 まとめ

Windows で「ゲームはゲーム向けノード、ブラウザやオフィス系は別ノード」としたい場合、Mihomo の PROCESS-NAME と二系統の戦略グループを組み合わせるのが定石です。TUN でトラフィックをコアに取り込み、ルールの順序と exe 名を正確に揃えれば、グローバルにセレクタを切り替えなくてもアプリ単位の出口を分けられます。ドメインだけでは難しいケースを補い、Sniffer や DOMAIN ルールと併用すると運用の幅が広がります。

同類のクライアントの中でも、ログの見やすさや TUN の手順は製品ごとに差があります。長期利用では更新が続くビルドを選び、設定をバージョン管理できるようにしておくと再セットアップが楽です。安定したダウンロード元とインストール手順をまとめたダウンロードページから入手し、本記事と TUN・url-test の各記事を順に当てはめてみてください。

→ 無料で Clash をダウンロードし、プロセス分流を試す

タグ: PROCESS-NAME Mihomo Windows プロセス分流 TUN アプリ別プロキシ
Clash Verge Rev のロゴ

Clash Verge Rev

次世代 Clash クライアント · 無料オープンソース

Mihomo コアをベースに、TUN とルール編集、ログを GUI から扱えます。Windows でプロセス名ルールを試すときの切り分けにも役立ちます。

TUN で全トラフィック 高性能 Mihomo コア きめ細かいルール DNS 漏えい対策 複数購読の管理

関連記事