基本操作 読了目安 12分

ClashサブスクリプションURLの導入ガイド:URL形式・設定更新・読み込み失敗の対処法

サブスクリプションURLとYAML設定ファイルの違いを整理し、クライアントへの導入、手動更新、URLを認識できない場合の確認方法を順に解説します。

PROFILE INPUT

サブスクリプションURL、ノードURL、YAML設定は同じ入力ではない

Clashクライアントは設定を読み込んで動作します。設定には通常、プロキシノード、プロキシグループ、ルール、DNSパラメータ、動作オプションなどが含まれます。入手した「サブスクリプション」はリモートURLの場合もあれば、すでにダウンロード済みのYAMLファイルの場合もあります。最終的な目的は同じでも、導入方法、更新方法、エラーの現れ方は完全には一致しません。

サブスクリプションURLは通常、https://で始まります。クライアントがURLへアクセスすると、サーバーから認識可能な設定内容が返されます。URLは入口にすぎず、ブラウザで必ず整ったテキストが表示されるとは限りません。直接ダウンロードが始まるAPI、エンコード済みのノード一覧を返すAPI、リクエスト情報に応じてClashまたはmihomoカーネル向けのYAML設定を出力するAPIもあります。

単一ノードのURLは特定のプロトコル名で始まることが多く、通常は1つのノードだけを表します。単一ノードURLを「サブスクリプションURL」欄に貼り付けても、クライアントが完全な設定として読み込めるとは限りません。完全な設定にはノードに加えて、プロキシグループやルールなどの構造が必要です。一部のクライアントには単一ノード導入機能がありますが、単一ノードの導入口と設定サブスクリプションの入口は分けて考える必要があります。

ローカルYAMLファイルは、すでに生成された設定のスナップショットです。オフラインでの確認や手動編集に向いていますが、リモートサブスクリプションの変更に合わせて自動同期されることはありません。クライアントがリモートサブスクリプションとローカルコピーを同時に保存している場合、更新操作は通常リモート設定の項目だけに適用され、別途導入したローカルファイルを自動的に上書きすることはありません。

URL FORMAT

サブスクリプションURLの形式とコピー内容を確認する

クライアントから直接リクエストできるサブスクリプションURLには、完全なプロトコル、ドメイン、パス、そしてサーバーが要求するクエリパラメータが含まれている必要があります。一般的な構造は次のように表せます。

https://config.example.net/api/profile?token=example-token&format=clash

プロトコルは接続方法を決め、ドメインとパスはサブスクリプションAPIを指定します。疑問符以降のパラメータは、アクセス認証情報や出力形式を渡すために使われます。実際のURLで使われるパラメータ名は提供元が定義するため、独自に書き換えないでください。認証情報、デバイス情報、出力オプションがURLエンコードされているため、URLが長くなることもあります。長さだけで有効性を判断することはできません。

コピー時によくある問題は、末尾の文字が欠ける、改行が混ざる、チャットアプリに表示された省略記号までコピーする、疑問符より前だけをコピーするといったものです。「リンクアドレスをコピー」機能で元の内容を取得し、画面上で省略された表示を手入力しないでください。貼り付けた後は、先頭がhttp://またはhttps://か、途中に空白がないか、末尾にピリオドや右括弧などの本文用記号が付いていないか確認します。

URLのクエリパラメータでは、&が複数のパラメータを区切ります。Webページのソースでは&と表示される場合がありますが、コピー後の実際のURLには通常の&だけが含まれるべきです。リッチテキスト、メール、Webページのコード断片からURLをコピーする場合は、HTMLエスケープがURL本文として保存されていないか確認してください。

サブスクリプションURLには通常、アクセス認証情報が含まれるため、アカウントのパスワードと同じように扱ってください。完全なURLを公開ログ、スクリーンショット、公開質問ページに貼り付けないでください。トラブル対処ではドメインとパスの構造だけを残し、トークンの主要部分を隠すと安全です。

入力の種類 よくある見た目 適した導入口
リモートサブスクリプション HTTPまたはHTTPSで始まる完全なURL URLから導入、リモート設定
ローカル設定 ファイル名が.yamlまたは.ymlで終わる ファイルから導入、ローカル設定
単一ノード情報 具体的なプロキシプロトコル名で始まる ノード導入、または完全な設定へ変換
Web管理画面のURL 開くとログイン画面または管理パネルが表示される まず画面上で実際のサブスクリプションURLを取得する

IMPORT SEQUENCE

Clashクライアントにリモートサブスクリプションを導入する

グラフィカルクライアントによってメニュー名は「設定」「サブスクリプション」「Profiles」「設定ファイル」など異なりますが、基本的な手順はほぼ同じです。以下はClash Meta(mihomo)など互換カーネルを基盤とする一般的なデスクトップクライアントを想定しています。ボタンの位置は使用中のクライアントの画面を確認してください。

  1. 設定管理画面を開きます。プロキシノードの選択画面ではなく、設定またはサブスクリプションのエリアを開いていることを確認してください。ノード画面は既存のプロキシグループを切り替えるためのもので、新しいリモート設定は作成できません。
  2. URLからの導入を選択します。ローカルファイル、クリップボード、リモートURLの選択肢が同時に表示される場合は、リモートURLを選びます。サブスクリプションURL全体を貼り付け、設定を識別しやすい名前を付けてください。
  3. ダウンロードまたは追加を実行します。クライアントがリモートURLへアクセスし、レスポンスを解析します。成功すると、通常は新しい設定カード、更新日時、ノード数などが表示されます。項目が表示されただけでは有効化されたとは限らないため、続けてその設定を選択してください。
  4. 現在の設定に指定します。設定項目をクリックするか「有効化」を実行し、カーネルに設定を再読み込みさせます。切り替え時に解析エラーが表示された場合は、まず利用可能な元の設定を残し、新しい設定の内容を確認してください。
  5. プロキシグループを確認します。プロキシ画面を開き、設定で定義されたグループが表示されていることを確認します。必要に応じてノードまたは自動速度テストグループを選択してください。プロキシグループがない場合は、完全なClash設定ではなくノード一覧を導入した可能性があります。
  6. システムプロキシまたはTUNを有効にします。システムプロキシは一般的なブラウザやシステムプロキシ設定に従うアプリに適しています。TUNはより多くのネットワーク通信を引き受けるため、追加の権限が必要になることがあります。初回の確認では、まずシステムプロキシを使い、設定が動作することを確認してからTUNを設定してください。

モバイルクライアントでも導入の流れは同様で、リモート設定を追加し、設定を選択して接続を開始します。OSがVPN設定の作成を求める場合がありますが、これはOSがネットワークを引き受けるために必要な標準的な認証手順です。システムが認証を拒否すると、サブスクリプションを導入済みでも、クライアントは対応するネットワークインターフェースを確立できません。

PROFILE UPDATE

手動更新・自動更新・ローカル編集

リモートサブスクリプションを保存すると、クライアントは通常、元のURLを記録し、更新ボタンを提供します。手動更新ではURLへ再度アクセスし、最新の設定をダウンロードしてリモート設定のキャッシュを置き換えます。ノードの増減、名前、プロキシグループ、ルールの変更は、更新を完了して設定を再読み込みした後に画面へ反映されるのが一般的です。

自動更新の間隔は、クライアントの設定で決まる場合もあれば、設定内のメタデータで通知される場合もあります。間隔が短すぎると不要なネットワークリクエストが増え、長すぎると変更済みのノード情報を使い続けることになります。普段はクライアントの妥当な初期値を使い、ノード一覧とサブスクリプション管理画面が一致しない場合に手動更新を実行するとよいでしょう。

「サブスクリプションの更新」と「遅延テスト」は明確に区別してください。サブスクリプションの更新は設定内容を取得する操作で、遅延テストは現在読み込まれているノードへ探査を行うだけで、新しいノードはダウンロードしません。遅延テストを繰り返しても期限切れのサブスクリプションは直らず、アクセス認証情報も更新されません。

リモート設定から生成されたYAMLを直接編集する場合は、上書きの関係にも注意が必要です。一部のクライアントでは、次回更新時にローカル内容が完全に置き換えられ、手動で追加したルール、DNS、ノードが消えることがあります。カスタム内容を長期的に維持する場合は、クライアントが提供する上書き、マージ、スクリプト、拡張設定の仕組みを利用してください。対応していない場合は、独立したローカル設定としてコピーできますが、その後の更新は自分で管理する必要があります。

更新後も、以前選択していたノードが残るとは限りません。プロキシグループ名が同じであれば、クライアントがグループの選択状態を維持することがあります。ノードが削除、改名、別グループへ移動された場合、カーネルはグループの既定動作に従って再選択します。更新後は主要なプロキシグループと現在のモードを確認し、「設定が更新された」ことと「以前のノードが選択されたまま」であることを混同しないようにしてください。

FAULT ISOLATION

サブスクリプションURLを認識できない場合のトラブル対処手順

導入に失敗した場合は、「URL、ネットワークレスポンス、内容形式、カーネル互換性」の順に確認します。まずクライアントが内容を取得できたかを判断し、次にその内容を設定として解析できるかを確認します。これにより、ネットワークリクエストが失敗しているのにYAMLを何度も修正したり、形式エラーなのにネットワーク環境だけを変えたりする事態を避けられます。

1. URLが完全で、まだ有効か確認する

サブスクリプション管理画面からURLをもう一度コピーし、チャットアプリ経由や手動改行を含むテキストは使わないでください。サーバーがブラウザからのアクセスを許可している場合は、返される内容が設定テキスト、ファイルダウンロード、ログイン画面、エラーページのどれかを確認できます。ログイン画面が表示される場合は管理画面のURLをコピーした可能性があり、権限エラーが表示される場合は認証情報の失効、サブスクリプションの期限切れ、アクセス制限などが考えられます。

2. クライアントがサブスクリプションサーバーへ接続できるか確認する

初回導入は利用可能なプロキシがまだ確立されていない状態で行われるため、サブスクリプションサーバーへ現在のネットワークからアクセスできなければなりません。DNS解決失敗、TLS接続失敗、リクエストのタイムアウト、ネットワークポリシーによる遮断があると、クライアントは設定を取得できません。まずシステム時刻が正しいか、ブラウザで同じドメインへアクセスできるか、クライアントログのホスト名とエラー時刻が今回の操作と一致するかを確認してください。

3. 返された内容が設定か確認する

サーバーのレスポンスステータスが正常でも、本文がYAMLとは限りません。APIがJSON形式のエラー、HTMLログイン画面、認証画面、通常のテキストメッセージを返すことがあります。その後、クライアントはYAML解析失敗、必須フィールド不足、形式を認識できないといったエラーを表示します。この場合はプロキシポートを調整するのではなく、サブスクリプションの権限または出力形式を確認してください。

4. 出力先が現在のカーネルに対応しているか確認する

サブスクリプションの出力先はClash、mihomo、その他のクライアント向けに分かれることがあります。mihomoはClash設定の構文を基盤に、一部のプロキシプロトコル、ルール、DNS機能を拡張しています。古いカーネルでは新しいフィールドやノードパラメータを認識できない場合があります。ログに未知のプロキシタイプ、未対応フィールド、設定検証失敗が示される場合は、クライアントのカーネルに合うサブスクリプション形式を選ぶか、保守が続いている互換クライアントへ更新してください。

5. 重複名と異常な内容を確認する

設定ファイル内のプロキシ名とプロキシグループの参照先は一致している必要があります。プロキシグループが存在しないノードを参照している、同じ階層に想定外の重複名がある、ルールセットのパスが利用できないといった問題でも、読み込みに失敗することがあります。ダウンロード自体は成功しても、カーネルの起動時や設定の切り替え時に問題が現れる場合があります。

YAML PARSE

ローカルYAMLの導入に失敗したとき確認する構造

YAMLはインデントで階層を表します。インデントにはスペースを使い、同じ階層では統一してください。Tab、コロンの欠落、リスト項目のハイフン漏れ、閉じていない引用符があると、パーサーは問題箇所の近くで停止します。ログに表示される行番号は手がかりですが、実際の原因が直前の行にあることもあります。

簡略化した設定の骨格には通常、ポート設定、プロキシノード、プロキシグループ、ルールが含まれます。以下は階層関係を説明するためだけのもので、そのまま接続に使える完全な設定ではありません。

mixed-port: 7890
mode: rule

proxies:
  - name: example-node
    type: socks5
    server: 127.0.0.1
    port: 1080

proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - example-node
      - DIRECT

rules:
  - MATCH,PROXY

proxiesはノード一覧、proxy-groupsはノードの選択方法、rulesは接続をどのプロキシグループまたはダイレクト接続の方針へ渡すかを定義します。ルールが参照するポリシー名は、プロキシグループ名または組み込みポリシーと一致していなければなりません。ノード名をプロキシグループ名が必要な箇所へ直接記述した場合は、現在のカーネルとルールタイプがその使い方に対応しているか確認してください。

コロン、シャープ記号、特殊記号、前後の空白を含む名前は、引用符で囲むことをおすすめします。シャープ記号は引用符で保護されていないと、コメントの開始として解釈されることがあります。ファイルのエンコードはクライアントが正常に読み込める形式にし、オフィスソフトで複雑な書式付き文書として保存しないようにしてください。

リモートサブスクリプションはダウンロードできるのに読み込めない場合は、まずクライアントログで最初に出た解析エラーを探してください。その後に大量に表示されるエラーは、最初の構造上の問題が連鎖して発生していることが多くあります。最初の問題を修正してから再検証するほうが、ログの末尾から逆に調べるより効率的です。

RUNTIME CHECK

導入後も接続できない場合:ルール・DNS・TUNを確認する

設定の読み込みに成功した後の接続問題は、実行段階の問題です。まずクライアントの動作モードを確認します。ルールモードではrulesを上から順に照合し、該当するとそれ以降の確認を停止します。グローバルモードでは通常、通信を指定したプロキシグループへ渡します。ダイレクト接続モードではプロキシを迂回します。ダイレクト接続モード中は、ノードが正常に表示されていても対象通信はプロキシを経由しません。

続いてプロキシグループの選択を確認します。自動テストグループは、設定で定義された探査先と間隔に基づいてノードを選択しますが、探査に成功したからといってすべてのWebサイトへアクセスできるとは限りません。手動選択グループでは、具体的なノードを明示的に選択する必要があります。グループ内の現在の項目がDIRECTと表示されている場合、そのグループに該当するルールではダイレクト接続が実行されます。

DNSの問題では、ドメインにアクセスできない一方で、特定のIPアドレスへ直接接続すると応答があることがあります。DNSモジュールが有効か、リスニングアドレスが競合していないか、拡張モードが現在のネットワーク構成に合っているかを確認してください。Fake IPモードは予約済みアドレスを返し、カーネル内で元のドメインへ対応付けます。そのため通信がClashカーネルを経由し続ける必要があり、カーネルを迂回すると名前解決の結果を正しく利用できないことがあります。

TUNモードでは仮想ネットワークインターフェースを作成し、ルーティングを変更します。起動に失敗した場合は、システム権限が不足していないか、他のネットワークツールがインターフェースを使用していないか、必要なサービスコンポーネントがインストール済みか、システム内に競合するルートがないか確認してください。TUNを有効にしても通信がない場合は、ルートの引き受け範囲、DNSハイジャック設定、LANバイパスルールを確認します。元の状態を記録せずにTUN、DNS、ルール、ノードを同時に変更すると、どの変更が影響したのか分からなくなるため避けてください。

最小限の変更で確認する方法がおすすめです。まず解析できることを確認した設定を読み込み、明確なノードを1つ選び、システムプロキシでブラウザ通信を検証します。次にルールモードをテストし、最後にTUNを有効にしてシステムプロキシに従わないアプリを検証します。各段階でリアルタイムログの対象ドメイン、適用ルール、選択ポリシー、接続結果を確認すれば、サブスクリプションの問題と実行時の問題を切り分けられます。

QUICK CHECKLIST

サブスクリプション導入チェックリスト

  • 入力がリモートサブスクリプションURL、ローカルYAMLファイル、単一ノードURLのどれか確認する。
  • 完全なURLを再コピーし、プロトコル、クエリパラメータ、空白、末尾の句読点を確認する。
  • 返された内容がログイン画面、権限エラー、通常のWebページではないことを確認する。
  • Clashまたはmihomoカーネルに対応したサブスクリプション出力形式を選ぶ。
  • 導入後、設定を現在の設定に指定し、プロキシグループが表示されるか確認する。
  • サブスクリプション更新後、ノード選択、動作モード、ルールグループに変更がないか確認する。
  • 解析に失敗した場合は、ログにある最初のYAMLエラーまたはフィールドエラーから対処する。
  • 実行に失敗した場合は、ノード、ルール、DNS、システムプロキシ、TUNの順に確認する。

「サブスクリプションのリクエスト」「設定の解析」「カーネルへの読み込み」「通信の引き受け」を4段階に分けるだけで、導入に関する問題の大半は具体的な工程まで特定できます。URLをリクエストできない場合はネットワークと権限を確認し、本文を解析できない場合は形式と互換性を確認します。設定は読み込めるのにアクセスできない場合は、プロキシグループ、ルール、DNS、システムによる通信の引き受け状態を確認してください。

クライアントのダウンロードとサブスクリプションの導入

デバイスのプラットフォームに合う互換クライアントを選び、インストール後にガイドに従って設定の導入、プロキシグループの選択、接続確認を行ってください。

Clashをダウンロード