「購読更新」を5つのチェックポイントに分ける
OpenClashの購読更新は、ルーターに1ファイルを取得するだけではありません。公式実装は購読項目を読み、リクエスト、設定テスト、YAML検証、プロキシデータの確認、対象設定の作成または書き込みを行います。早い段階の成功はコアでの読み込みを保証しません。
| 段階 | 成功が証明すること | 失敗時の確認 |
|---|---|---|
| URLリクエスト | HTTP応答を受け取った | DNS、TLS、ステータス、リダイレクト |
| 内容識別 | 応答が設定らしく見える | ログインHTML、エラー文、空本文 |
| YAML/コア検証 | 構文と必要構造を解析できる | エラー行、インデント、非対応キー |
| ファイル書き込み | 処理結果が保存された | 容量、権限、ファイルシステム |
| 選択と読み込み | 稼働コアが新プロファイルを採用した | アクティブパス、起動ログ、ポート競合 |
ログを上から読み、最初に失敗した点を探します。後続メッセージは連鎖結果であることが多く、DNS、変換サービス、コアを同時に変えると原因を失います。
手動更新前に正常設定と購読秘密を保護
ルーターの通信変更は調査用の回線も切断し得ます。更新前に、現在読み込めるYAML、OpenClashのUCI設定、関連カスタムファイルをバックアップし、有効な設定名を記録します。ルーターと別の信頼できる場所に保管し、公開リポジトリやチャットに上げません。
- 時刻:大きくずれた時計はHTTPS証明書検証を壊します。NTP同期を確認します。
- 空き容量:設定、ルールプロバイダー、一時ファイルが書き込みを必要とします。
- WANとDNS:置換予定の設定に依存せず、ルーター自身が購読ホストを解決しHTTPSで到達できるか見ます。
- URLの保護:購読にはトークンが入ります。ログと画像のクエリを伏せ、公開パーサーに入力しません。
唯一動く設定を削除しないでください。プラグインとコアが動作可能なことを検証する比較対象になり、公式文書を読む回線も残せます。
観測できる手動更新を1回だけ実行
自動更新を一時停止し、1つの購読だけを選びます。購読設定で有効性、設定名、URL、User-Agent、変換の有無を記録します。成功率を上げるつもりで複数の変換サーバーやテンプレートを同時に交換しないでください。
- ログをクリアするか起点を記録し、Updateを押す時刻を控えます。
- 1購読の更新を1回開始し、バックエンドが終わるまでページ更新や連打をしません。
- 起点から読み、取得、設定テスト、形式検証、プロキシ項目不足、ファイル書き込みの文を探します。
- 成功時は対象ファイルの日時とサイズを見て、OpenClashの有効パスと同じか確認します。
- コアを再読み込みし、最初の解析エラーを取得し、1つの実通信で検証します。
公式スクリプトには、取得後のテスト、形式検証失敗、プロキシ項目がない結果などの分岐があります。UIボタンが戻ったことは、すべてのバックエンド検証合格と同義ではありません。
最初のログメッセージを失敗レイヤーに対応させる
| メッセージ | 失敗段階 | 次の確認 |
|---|---|---|
| DNS / connect / TLS | 有効な本文の取得前 | ルーターDNS、時計、WAN、対象ホスト |
| HTTP応答後の形式検証失敗 | HTML、空本文、非対応YAMLの可能性 | 応答種類、有効期限、User-Agent |
| Has No Proxy Field | 想定プロキシ構造がない | OpenClash/Mihomo互換のプロファイルか |
| Write file failed | 処理後データを書けない | 容量、ファイルシステム、権限、名前 |
| 古いノードが残る | 新ファイル未選択またはコア未再読み込み | 有効設定パスと起動ログ |
購読変換を使うと外部依存が1段増えます。元購読が正常でも、変換サービス、テンプレート取得、パラメーター互換性が失敗し得ます。元設定を保存し、提供者が直接Mihomo/Clash YAMLを提供する場合にはそれと比較します。
ログの公開前にURLを確認します。公式スクリプトの診断文には購読先や処理パラメーターが含まれ得るため、全体を無加工でissueに貼りません。
手動更新の復旧後にスケジュールを再開
完了条件は、1購読が取得と検証を通過し、新ファイルが書き込まれ、有効パスがそれを選び、コア再読み込みにエラーがなく、ノードやルールの観測可能な変化が出ることです。UIトーストだけでは不足です。
公式issue #5239は、ボタンがバックエンド失敗を明確に示さない特定の報告です。即時UIだけでなくログを見る根拠にはなりますが、すべての失敗が同じUI不具合だとは証明しません。当該版のログが必要です。
- 正常な旧プロファイルと修復後の新プロファイルを次回の自動実行まで残します。
- 手動更新をもう1回行い、一時的なDNSキャッシュや変換応答ではないことを確認します。
- ルーター再起動やWAN再接続と重ならない現実的な間隔を設定します。
- 次の定期実行後にログ時刻、ファイル時刻、有効パス、コア状態を見て検収します。
同じ段階で安定して再現する場合、OpenClashのバージョン、OpenWrtビルドとアーキテクチャ、再現時刻、秘密を除いた最小ログ、変換の有無を添えて報告します。
公式情報源とバージョン範囲
- github.com/vernesong/OpenClash
- github.com/vernesong/OpenClash/blob/master/luci-app-openclash/root/usr/share/openclash/openclash.sh
- github.com/vernesong/OpenClash/blob/master/luci-app-openclash/luasrc/view/openclash/update_config.htm
- github.com/vernesong/OpenClash/issues/5239
バージョン番号、ファイル名、画面表示は更新で変わる場合があります。作業前にリンク先の公式資料を確認してください。