Clashプロファイルとは:設定ファイルの基本概念とマルチ設定切り替え管理入門

Profileはクライアントが読み込む完全な設定単位で、サブスクリプション・ノード・ルールを包含する。取得元、保存場所、更新の仕組み、複数設定の切り替え管理までを解説。

Profileとは何か:1つのYAMLに詰まった四つの要素

Clashおよびその派生コア(Clash Premium、Clash Meta、mihomo)の文脈において、Profile(設定ファイル)とは、クライアントが実際に読み込んで有効化する完全なYAMLファイルを指す。これは「サブスクリプション」の同義語でもなく、「ノードリスト」の同義語でもない——サブスクリプションは設定ファイルを取得する手段の一つにすぎず、ノードは設定ファイル内の一部の内容にすぎない。この包含関係を正しく理解しておくことで、この先の保存場所・更新ロジック・複数設定の切り替えについての説明が混同されずに済む。

典型的なClash設定ファイルには、通常次の項目が順に含まれる。

  • 共通動作パラメータ:ポート(port / socks-port)、LAN内アクセス許可(allow-lan)、動作モード(mode: rule / global / direct)、ログレベル(log-level)、外部コントローラーのアドレス(external-controller)などで、クライアント起動後の基本動作を決定する。
  • DNS設定セクション:内蔵DNSを有効にするか、上流サーバーのアドレス、fake-ipモードを使うか、特定ドメインをDoH/DoT経由にするかなどで、名前解決速度と振り分けの精度に直結する。
  • proxiesノードリスト:各プロキシサーバーの接続パラメータ——プロトコル種別(Shadowsocks、VMess、Trojan、Hysteria2など)、サーバーアドレス、ポート、暗号化方式や鍵情報など。これは「接続できるかどうか」の基礎部分。
  • proxy-groups(ポリシーグループ):proxies内のノードを用途別にまとめ、選択方式(select=手動選択、url-test=自動速度測定切り替え、fallback=フェイルオーバー、load-balance=負荷分散)を定義する。これは「ノードをどう使うか」を司るロジック層。
  • rules(ルール)セクション:ドメイン、IPレンジ、GEOIP、プロセス名などの条件に基づき、通信をどのポリシーグループへ振るか、または直結/ブロックするかを決める。これは「どの通信をどの経路に通すか」を担うスケジューリング層。

これら五つの要素がまとまって、初めて完全に使用可能なProfileとなる。proxiesセクションがなければポリシーグループは選択対象を持てず、rulesセクションがなければクライアントはmodeで指定されたデフォルト動作で全通信を処理するしかなく、「振り分け」とは言えない。

注意 NOTICE サブスクリプションリンクから配信される内容も、本質的にはProfile(あるいはクライアント側で解析・補完してProfileにできるノードデータ)である。クライアントはそれをローカルファイルとして保存した後に読み込む。つまりサブスクリプションは「設定ファイルの取得手段の一つ」であり、設定ファイルと独立して存在する別のものではない。

設定ファイルの3つの取得方法:サブスクリプション、ローカルインポート、手動作成

取得方法によってProfileは大きく3種類に分けられ、日常使用ではこれらが混在することも多い。

1. サブスクリプションリンクによる自動生成

最も一般的な方式。サービス提供者がHTTP(S)リンクを提供し、クライアントがそのリンクにリクエストを送ると、サーバー側がノード情報を返す(完全なYAMLのまま返す場合も、Base64エンコードされたノードリストの場合もある)。多くのClash系クライアント(Clash Verge、FlClash、ClashX Metaなど)は、ノードデータを受け取った後、内蔵または独自のルールテンプレートと組み合わせて完全なProfileを組み立て、ローカルに保存する。同じサブスクリプションリンクでもクライアントによってポリシーグループ構成やルール数が異なるのは、この組み立てテンプレートが違うためだ。

2. ローカルファイルのインポート

すでに他人から共有された、または自分で作成したYAMLファイルがある場合、クライアントの「ファイルからインポート」機能で直接読み込める。ネットワークリクエストを経由しないため、この種のProfileは自動更新されず、内容は固定される。デバッグやオフライン環境での利用に向いている。

3. 手動作成/オンラインエディタでの編集

上級ユーザーはテキストエディタやクライアント内蔵の設定編集パネルを使い、proxy-groupsやrulesセクションを直接書いたり編集したりする。特定のポリシーグループに独自ノードを追加する、特定アプリだけ出口を指定する、特定ドメインをブロックするなどが典型的な用途だ。こうした変更を行う前には元ファイルをバックアップしておくのがよい。構文エラーでクライアントが読み込めなくなった際に戻せなくなるのを避けるためだ。

設定ファイルの保存場所:クライアントごとのパスの違い

Profileはローカルファイルであり、保存パスはクライアントによって異なる。トラブル対応の際は実際にディレクトリを開いてファイルが本当に更新されているか確認する場面が多い。主なクライアントの保存パスの傾向は次のとおり。

クライアント設定ファイルの保存傾向補足
Clash Verge / Clash Verge Revアプリデータディレクトリ内のprofilesフォルダ。各サブスクリプションはハッシュ/UUID名の.yamlファイルに対応現在有効になっているものはconfig.yamlに記録される
ClashX Meta(macOS)ユーザーディレクトリ配下の.config/clash/フォルダターミナルやエディタで直接開ける
FlClash(クロスプラットフォーム)アプリ専用データディレクトリ内のprofileサブディレクトリモバイル端末では直接ファイルを編集せず、内蔵編集パネルを使う方が安全
コア単体(mihomo/Clash Meta core)起動パラメータ-fで指定したパス。既定値はカレントディレクトリのconfig.yamlGUIラッパーがないため、パスは起動方法によって完全に決まる

強調しておきたいのは、多くのGUIクライアントでは、自動生成されたこれらのファイルをアプリデータディレクトリで直接編集することは推奨されないという点だ。クライアント自身の更新ロジックが、次回の更新時に手動編集内容を上書きしてしまう可能性があるためだ。独自ルールを長期的に保持したい場合は、クライアントが提供する「設定の結合」や「オーバーライド(override)」機能を使い、独自の断片を別途保存してからサブスクリプション生成の主設定に重ね合わせる方が確実だ。

設定ファイルの更新方法:自動更新と手動更新の違い

「更新」という動作が発生するのはサブスクリプションリンク経由で取得したProfileのみで、ローカルインポートや手書きのファイルは自ら変化することはない。更新の仕組みは主に次の2点で決まる。

  • update-interval:一部のクライアントはサブスクリプション情報にこの値(通常は分単位)を記録し、一定の時間間隔に達すると自動でサブスクリプションリンクへ再リクエストを送り、最新ノードを取得して旧ファイルのproxiesセクションを上書きする。
  • 手動更新ボタン:クライアントのサブスクリプション管理画面には通常「更新」や更新アイコンがあり、クリックすると即座にリクエストが発生し、update-intervalの制限を受けない。サービス提供者がノードを更新した直後にすぐ同期したい場合によく使われる。

更新時、クライアントは基本的にノード関連の内容だけを差し替え、ユーザーがローカルで追加した独自ルールには手を出さない(ただし「結合/オーバーライド」機能を使っている場合に限る。自動生成ファイル本体を直接編集していると話は別だ)。更新後に独自の振り分けルールが消えていた場合、大半は自動生成される主ファイルの方に変更を書き込んでいたためで、オーバーライド機能を使って再設定し直すべきだ。

注意 NOTICE サブスクリプションの更新はネットワークリクエストの成功に依存する。更新失敗と表示された場合、まずサブスクリプションリンク自体が正常にアクセスできるか確認し、次にサーバー側のリクエスト頻度制限に引っかかっていないか確認するとよい。この2つの原因はソフトウェア自体の不具合よりも起こりやすい。

複数の設定ファイルをどう切り替え・管理するか

ほとんどのユーザーは1つの設定だけを使っているわけではない——例えば同時に2つのサービスをサブスクリプションしていたり、動画配信サービス向けの振り分けをカスタマイズした版と、日常用のシンプルな版をローカルに保存していたりする。こうした場合、設定ファイルの「切り替え」と「管理」は日常操作から避けられない部分になる。

切り替えの仕組み:同時に有効になるのは1つだけ

クライアントのコアは実行中に1つのProfileしか読み込まない。GUI上で見える「設定一覧」は本質的に複数の保存済みYAMLファイルであり、いずれかをクリックすると現在の有効設定として設定され、クライアントはコアを再読み込みして新しいproxies・proxy-groups・rulesを適用する。切り替え時には一時的な接続の中断が発生することがあるが、これは正常な現象だ。

命名と分類の提案

設定の数が増えると、デフォルト生成されたファイル名だけでは用途を区別しづらくなる。クライアント上で各設定にリネームを行い、取得元や用途を明記しておくとよい。例えば「日常サブスクリプション」「一時テスト用」「ローカル独自ルール」のように分類しておくと、誤って別の設定に切り替えるリスクを減らせる。一部のクライアントは設定にタグを付けたりグループ化したりする機能を備えており、シーン別に整理して管理できる。

結合とオーバーライド:切り替えなしでもルールを重ねられる

既存のサブスクリプションに数個の独自ルールを追加したいだけの場合(例えば社内サービス用ドメインを強制直結にする、など)、新しい設定を一から作る必要はなく、クライアントの「オーバーライド(override)」や「結合設定」機能を使う方が推奨される。この機能では、追加・置き換えたいルールだけを含む小さなYAML断片を独立して管理し、適用時に主設定へ重ね合わせる。主設定が更新されてもオーバーライド断片はそのまま残るため、毎回追加し直す必要がない。

削除とクリーンアップ

長期間使っていないテスト用設定は早めに削除しておくべきだ。特に実際のノードの認証情報が含まれているファイルは要注意だ——サブスクリプションが失効していても、ファイル内の鍵情報は平文でローカルに残ったままになる。古い設定を整理することも、基本的な運用習慣の一つと言える。

よくある疑問への早わかり対照表

疑問結論
Profileとサブスクリプションは同じものかいいえ。サブスクリプションはProfileを取得する手段の一つで、Profileは最終的に有効になる完全な設定ファイル
設定ファイルを手動編集すると次回更新で上書きされるか自動生成される主ファイルを直接編集した場合は上書きされる。オーバーライド/結合機能を使って独自内容を別途保存するのが推奨
複数の設定を同時に有効化できるかコアは同時に1つしか読み込まない。複数設定は切り替えで運用し、同時に重ね合わせるのはオーバーライド機構による
ローカルインポートしたファイルは自動更新されるかされない。サブスクリプションリンクに紐付いた設定のみ自動/手動更新が可能

これらの点を整理しておけば、クライアント画面上の「設定管理」「サブスクリプション情報」「オーバーライド」といったタブが、本文で説明した保存・更新・重ね合わせという3つの仕組みのどれに対応するかが見えてきて、Profile・サブスクリプション・ノード・ルールという概念を混同しにくくなる。

クライアントをダウンロード