1. ホーム
  2. ブログ
  3. Clash 購読が更新されない原因と自動更新の設定方法

TROUBLESHOOTING・トラブルシューティング

Clash 購読が更新されない原因と自動更新の設定方法

購読の更新失敗は通信環境、リンク失効、クライアントのキャッシュが主な原因です。順番に切り分け、定期自動更新を設定してノードリストを最新の状態に保ちましょう。

購読更新の仕組みを理解する

購読アドレスは、サービス提供元が発行する1本のURLで、リクエストすると Clash 用の設定データが返ってきます。多くは YAML テキストですが、base64 でエンコードされたノード一覧の場合もあります。クライアントで「更新」を押すと、内部では4つの処理が順に走ります。購読アドレスへの HTTPS リクエスト、返却データのダウンロード、設定へのパース、そしてローカルへの書き込みと現在の設定への反映です。

この4ステップのどこかでエラーが起きても、画面には「更新に失敗しました」としか表示されません。そのため切り分けには決まった順序があります。まず通信環境が購読アドレスに到達できているかを確認し、次にリンク自体が有効かを確認し、最後にクライアント側のキャッシュやパース関連の問題を処理します。この順で進めれば、たいていの失敗は数分で原因を特定できます。

よくある原因と切り分けの順序

1. 購読アドレスに通信が届かない

購読先のドメインがブロックされていたり、DNS が正しく解決できていないことが、更新失敗の最も多い原因です。判断方法は単純で、購読リンクをブラウザのアドレスバーに貼って開いてみてください。大量のテキストが返ってくれば通信自体は通っています。読み込みが延々続く、または即座にエラーになる場合は、現在の通信環境からそのアドレスへ到達できていません。

  • すでに利用可能なノードがある場合は、先にノードへ接続してシステムプロキシを有効にしてから購読を更新してください。Clash Verge Rev の購読設定には「システムプロキシを使用」のスイッチがあり、これをオンにすると更新リクエストが現在のプロキシ経由になり、成功率が大きく上がります。
  • 使えるノードが手元にない場合は、アクセス可能な環境(モバイル回線など)でブラウザから購読リンクを開き、内容を .yaml ファイルとして保存し、クライアントの「ローカルファイルを読み込む」機能で追加してください。
  • システムの DNS を 223.5.5.5119.29.29.29 などのパブリック DNS に変更し、名前解決の異常による失敗を除外します。

2. 購読リンクの失効

プランの期限切れ、通信量の消費し切り、サービス提供元による購読トークンのリセットなどにより、既存のリンクが無効になることがあります。ブラウザで開いた際に設定データではなく 401403、あるいは英語のエラーメッセージが返ってくる場合は、リンクの失効とほぼ確定できます。

対処法は、サービス提供元のユーザーページにログインして購読アドレスを再取得し、クライアント側では古い購読エントリを削除してから新しいアドレスで再追加することです。提供元によっては Clash、Clash Meta など形式別にリンクを分けている場合があるので、コピーする際は Clash または mihomo 向けのリンクを選んでください。

3. クライアントのキャッシュとパース失敗

典型的な症状は2つあります。1つは更新自体は成功したように見えてもノードリストが変わらないケースで、これはクライアントが古い設定をキャッシュしているため、購読を削除してから再追加すれば解決します。もう1つはパースエラーが直接表示されるケースで、多くの場合は購読先が返す内容が Clash 形式になっていないことが原因です。一部のサービスは User-Agent によって返す内容を切り替えており、クライアントの識別がうまくいかないと別プロトコル向けのノード一覧が返され、Clash 側では解釈できません。

対処法は、購読アドレスに target=clash のような形式指定パラメータが付いているか確認することです。付いていない場合は、購読変換ツールで Clash 形式のリンクを生成してください。また、mihomo(Clash Meta)コアは新しいフィールドへの対応が最も進んでいるため、古いコアでパースに失敗する設定でも、mihomo コアのクライアントに切り替えると一発で読み込めることが多いです。

4. システム時刻のずれによる TLS 検証失敗

システム時刻が標準時刻から大きくずれていると、HTTPS ハンドシェイク時に証明書が有効期間外と判定され、ログに certificate expiredx509 といった文字列が出力されます。システムの自動時刻同期をオンにして時刻を補正すれば、再試行で解決します。この現象は長期間電源を入れていなかった端末や、マザーボードをリセットした環境で比較的よく見られます。

定期自動更新を設定する

ノードリストはサービス提供元の運用に応じて随時変わるため、毎回手動で更新していると必ず忘れてしまいます。各クライアントでの自動更新の設定場所は以下の通りです。

  • Clash Verge Rev(Windows / macOS / Linux):「購読」ページで対象の項目を見つけ、編集アイコンをクリックし、「更新間隔」に分単位で数値を入力します。例えば 1440 なら1日1回です。空欄または 0 にすると自動更新は行われません。同時に「システムプロキシを使用」もオンにしておくことを推奨します。
  • Clash for Android:「設定」ページで購読項目の右側にあるメニューから編集を選び、「自動更新間隔」を設定します。単位は同じく分です。ただし OS のバックグラウンド制限に注意が必要で、アプリがシステムに終了させられるとタイマーも止まるため、数日おきに手動更新も併用すると安心です。
  • Clash for Windows:Profiles ページで購読項目を右クリックすると更新間隔を設定できます。このクライアントは開発が停止しているため、長期的に使う場合は Clash Verge Rev への移行を推奨します。
  • ClashX Meta(macOS):メニューバーアイコンの設定メニューから手動更新と自動更新のオプションを利用できます。

mihomo をコマンドラインで使う場合は GUI のスイッチがなく、購読ファイル自体が設定ファイルそのものになります。cron で定期的にダウンロードしてホットリロードさせましょう。

# 毎日 06:00 に設定を更新し、mihomo にホットリロードを通知する
0 6 * * * root curl -fsSL "https://example.com/sub?target=clash" -o /etc/mihomo/config.yaml.tmp \
  && mv /etc/mihomo/config.yaml.tmp /etc/mihomo/config.yaml \
  && curl -fsS -X PUT "http://127.0.0.1:9090/configs" \
       -H "Content-Type: application/json" \
       -d '{"path":"/etc/mihomo/config.yaml"}'

細かいポイントが2つあります。まず一旦一時ファイルにダウンロードしてから mv で上書きすることで、通信が途中で切れて中途半端な設定ファイルが書き込まれる事態を防げます。次に PUT /configs を送ると mihomo が新しい設定をホットリロードし、プロセスの再起動なしに反映されます。ただし前提として external-controller が有効になっており、9090 番ポートで待ち受けている必要があります。

注意

自動更新の間隔は短すぎないようにしましょう。ノードリストは1日1回程度しか変わらないことが多いため、720 ~ 1440 分あれば十分です。リクエストが頻繁すぎるとサービス提供元のレート制限に引っかかり、購読アドレスがブロックされる恐れもあります。

手動更新と結果の確認

トラブルシューティング中は手動更新を基本にしましょう。デスクトップクライアントでは購読または設定ページの「更新」ボタンを押し、Clash for Android では設定ページを下に引くとリフレッシュできます。更新ごとに次の3点を確認してください。

  1. 購読項目のタイムスタンプがたった今の時刻に更新されているか
  2. プロキシページのノードリストに新しいノードが追加され、オフラインになったノードが消えているか
  3. 任意のノードで遅延テストを行い、タイムアウトではなく数値が表示されるか

更新自体は成功してタイムスタンプも更新されているのに、すべてのノードがタイムアウトする場合、問題は購読そのものではなく、ノードの可用性やローカルの通信環境にあります。初回接続時の標準的な手順に沿って、ノードの切り替え、ネットワークの変更、システムプロキシと TUN モードの状態を1つずつ確認してください。

よくある質問

更新を押しても何の表示もなく、エラーも出ない場合は?

クライアントのログパネル(Clash Verge Rev では「ログ」ページ)を開いた状態で再度更新を実行し、表示されるエラー文言を前述の4つの原因と照らし合わせてください。timeout なら通信の問題、401403 ならリンクの問題、yamlparse といった文字列なら形式の問題、certificate ならシステム時刻の問題です。

ブラウザでは購読を開けるのに、クライアントでは更新に失敗する場合は?

まず「システムプロキシを使用」をオンにしてから再度更新してください。次に TUN モードとシステムプロキシを同時に有効にしていて競合していないか確認し、片方を無効にして試してください。それでも失敗する場合は User-Agent の識別に問題がある可能性が高いため、形式指定パラメータ付きの購読リンクに変更してください。

自動更新で選択中のノードが上書きされてしまう?

購読の更新は上書き方式で、ノードリスト全体が入れ替わります。多くのクライアントは選択中だったノード名を記憶しており、更新後に同名のノードへ自動的に再選択されます。ノード名が変更されたりリストから外れたりした場合のみ、あらためて選び直す必要があります。

複数の購読をまとめることはできる?

mihomo コアは proxy-providers に対応しており、1つの設定ファイルの中で複数の購読アドレスを参照し、プロキシグループとして統合できます。一部のGUIクライアントにも複数購読の統合機能があります。統合後はプロキシグループに区別しやすい名前を付けておくと、ノード選択時に出どころが混同しにくくなります。

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

全プラットフォーム対応のクライアントとコアをプラットフォーム別に整理し、バージョン番号も個別に明記しています。

Clash をダウンロード