入門ガイド 読了目安 8 分

Clash サブスクリプション更新失敗の一般的な原因と自動更新の設定方法

サブスクリプションの更新失敗は、ネットワーク環境・リンク切れ・クライアント設定が主な原因です。項目別に切り分け、自動更新間隔の適切な設定方法も解説します。

まず症状を確認:更新失敗の3つの典型的なパターン

サブスクリプションの更新失敗は単一の故障ではなく、いくつかの症状の総称です。切り分けを始める前に、自分がどのパターンに当てはまるかを確認しましょう:

クライアントのログパネルを開き、エラーメッセージの原文をすべて控えてから次に進みましょう。「更新失敗」の一言だけでは情報がなく、エラー原文にこそ手がかりがあります。

ネットワークの原因:更新リクエストはデフォルトでプロキシを通らない

これはサブスクリプション更新失敗の原因として最も多く、同時に最も見落とされやすいものです。

サブスクリプション更新の実体は、ごく普通の HTTPS リクエストです。クライアントがサブスクリプションアドレスに接続し、ノードリストを取得します。多くのクライアントはこのリクエストをデフォルトで直接接続にし、プロキシを通しません。そのため一見矛盾した現象が起きます——ノードは使えるのにサブスクリプションだけ更新できない、という状態です。理由は単純で、ノードの通信はプロキシトンネルを通るのに対し、更新リクエストはトンネルの外をそのまま流れるからです。サブスクリプションのドメインがローカルネットワークから到達不能だったり、サーバーからローカルへの回線品質が悪かったりすると、直接接続のリクエストはタイムアウトします。

対処法は3つあります。順番に試してください:

  1. TUN モードまたはシステムプロキシを有効にしてから、もう一度手動で更新します。TUN がマシン全体の通信を引き受けると、更新リクエストもトンネル内に入り、直接接続の遮断を回避できます。TUN の有効化と切り分けの詳細はトラブルシューティングページを参照してください。
  2. クライアントのサブスクリプション設定にある「プロキシ経由で更新」オプションをオンにします。Clash Verge Rev ではサブスクリプション項目の編集メニューにこのスイッチがあり、FlClash や Clash Meta for Android のサブスクリプション編集にも同様の設定があります。オンにすれば直接接続が通らなくても更新を完了できます。
  3. mihomo の設定を手書きしている場合は、proxy-providers でサブスクリプションソースに proxy フィールドを指定すると、ダウンロード通信が指定したプロキシグループを通るようになります:
proxy-providers:
  airport:
    type: http
    url: "https://example.com/api/sub?token=xxxx"
    interval: 43200
    proxy: 节点选择
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 300

proxy フィールドを書かない場合のデフォルトは DIRECT(直接接続)で、これこそが多くの人が更新に失敗する根本原因です。

サブスクリプションリンクはアカウント認証情報と同等

サブスクリプションリンクには全ノード情報とアクセストークンが含まれています。切り分けのためにスクリーンショットで助けを求める場合は、必ず token パラメータにモザイクをかけてください。また、素性の不明なオンライン解析ツールに元のリンクを入力してはいけません。

リンクの原因:無効化・リセット・形式の不一致

ネットワークに問題がなければ、リンク自体を調べます。サブスクリプションリンクの無効化には4つの典型的なケースがあります:

mihomo ユーザーは proxy-providers の header フィールドで UA を明示的に指定し、Clash 形式で返すよう強制できます:

proxy-providers:
  airport:
    type: http
    url: "https://example.com/api/sub?token=xxxx"
    interval: 43200
    header:
      User-Agent:
        - "clash.meta"

また、第三者のサブスクリプション変換サイトを経由したリンクは、変換サイトのダウンやドメインの到達不能でも更新に失敗します。切り分けの段階では変換サイトを迂回し、まずプロバイダの元のサブスクリプションリンクで検証することをおすすめします。

環境の原因:システム時刻・書き込み権限・セキュリティソフト

リンクとネットワークの両方が正常なら、問題はマシンの環境にあります。発生頻度の高い順に並べます:

自動更新:間隔はどう設定するのが適切か

自動更新の仕組みはシンプルです。クライアントが設定した間隔であの HTTPS リクエストを繰り返します。間隔の設定はトレードオフです——短すぎるとサブスクリプション API への頻繁なリクエストでプロバイダの API クォータを消費し、高頻度アクセスに対するレート制限を誘発してサブスクリプションが一時的に停止される恐れがあります。長すぎるとノードの増減や入口アドレスの変更といった重要な情報を取得できず、使っているうちに接続が切れてしまいます。

経験上の適切な範囲は 6〜24 時間に1回です。各クライアントの設定場所と単位は次のとおりです:

クライアント自動更新の設定場所推奨間隔
Clash Verge Revサブスクリプション項目を右クリック → 編集 → 更新間隔360–1440 分
FlClashサブスクリプション項目の編集 → 自動更新6–24 時間
Clash Meta for Android設定 → サブスクリプション設定 → 自動更新6–24 時間
mihomo 手書き設定proxy-providers の interval フィールド21600–86400 秒

混同しやすい点が2つあります。1つ目、mihomo 設定の interval の単位は秒であり分ではありません。12 時間に設定したい場合は 43200 と入力します。2つ目、proxy-providers 内の health-check の interval はノード遅延チェックの頻度であり、サブスクリプションのダウンロード頻度とは無関係です。変更する際は行を間違えないようにしてください。

最後に、手動更新の習慣も残しておきましょう。プロバイダが入口の変更やノード調整を告知したときは、次の自動更新をじっと待たず、クライアントで手動更新を一度実行すれば即座に反映されます。

更新後:4ステップの確認チェックリスト

  1. サブスクリプション項目のタイムスタンプを確認し、現在時刻に更新されていることを確かめる。
  2. ノード数とグループ構成を確認し、プロバイダの公式サイトの告知と一致しているか確かめる。
  3. 使用中のノードに遅延テストを一度実行する——サブスクリプション更新後に旧ノードが廃止されている可能性があり、無効なノードに接続したままだと「プロキシはあるのにネットに繋がらない」状態になります。
  4. ブラウザで海外サイトにアクセスして経路の疎通を確認する。繋がらなければノードリストに戻って再度速度テストで選び直します。

更新は成功したのに全ノードがタイムアウトする場合

この場合、通常はサブスクリプション自体の問題ではなく、プロバイダの入口の到達不能やローカルネットワークの異常が原因であることがほとんどです。当サイトのトラブルシューティングページの手順に沿って引き続き切り分けてください。

サブスクリプション問題の切り分け順序は固定できます。まずエラー原文を確認し、次にネットワークの直接接続を調べ、リンクの状態を確認し、最後にマシン環境を調べます。9割以上の更新失敗はこの4ステップで特定できます。あとは自動更新に任せ、間隔を12時間前後に設定しておけば、普段は何もする必要がありません。

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