v2rayNのサブスクリプション更新に失敗する原因と自動更新間隔の設定

サブスクリプションURLの無効化、形式の不一致、更新リクエストの経路など、よくある原因を解説。グループごとの自動更新間隔と「プロキシを経由せずに更新」の設定方法も紹介します。

この記事の要点

サブスクリプションを追加済みなのに、タイムアウトやリストの空欄、自動更新されないといった問題が起きている方向けです。まずリクエストがサーバーに届いているかを確認し、次に返された内容をインポートできるか調べ、最後に更新間隔を設定します。問題を切り分ける際は、使えるノードを残し、操作するサブスクリプショングループを1つに絞ってください。手動更新を1回行ってから、自動更新を確認しましょう。

まず切り分ける:リクエストの失敗、解析の失敗、ノードの接続不可

更新をクリックしてもノードが増えないからといって、必ずしもダウンロードに失敗したとは限りません。サブスクリプションの更新には、URLへのリクエスト、応答の受信、内容の判別、グループへの登録という工程があります。ノードへの接続は更新後に行われ、コアがノードの設定を使って接続します。サブスクリプションを更新できてもノードがオンラインとは限らず、ノードに接続できてもサブスクリプションURLが有効とは限りません。

サブスクリプションURLを読み込む サブスクリプションサーバーにリクエストする 応答内容を受信する ノード設定を解析する サブスクリプショングループに登録する

まずメイン画面の情報出力欄を開き、更新時刻、グループ名、最後に表示されたエラーを記録します。次の表では、症状ごとの確認ポイントをまとめています。URLの変更、経路の切り替え、フィルターの変更を一度に行うと、どの操作で直ったのか判断しにくくなります。

症状まず確認すること最初に試すこと
しばらく待つとタイムアウトが表示されるURLにアクセスできない、またはリクエスト経路が通らないプロキシを経由する場合としない場合で、それぞれ更新を試す
401、403、404が返る認証情報、アクセス制限、URLのパスに問題があるサービス管理画面からサブスクリプションURLをコピーし直す
ダウンロードは完了したが、インポート数が0件応答形式とグループのフィルター条件が一致していないコンテンツの種類と別名フィルターを確認する
ノード数が変わらないサブスクリプションの内容に変更がない可能性があるノード名、アドレス、サーバー側の更新履歴を比較する
更新は成功したが接続できないノード設定、サービスの状態、ルーティングに問題があるコアのログを確認し、サブスクリプションの再更新は繰り返さない

サブスクリプションURLを確認:管理画面のURLと取り違えない

「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、問題のあるグループを編集して「アドレス」欄を確認します。ここには、サブスクリプション内容を返す完全なURLを入力してください。ログインページ、プランページ、ブラウザーのアドレスバーに表示された管理画面のURLではありません。バージョンによって項目の並びが異なる場合があるため、現在の画面に表示されているラベルを確認してください。

  1. 元のグループを残す

    グループのメモ、元のURL、現在のノード数を記録します。ノードをすべて削除するのは避けてください。サブスクリプションサーバーに直接接続できない場合、更新に使える経路として、現在使えるノードが必要になることがあります。

  2. URLをコピーし直す

    サービス管理画面でv2rayN向けのサブスクリプション項目を選び、URL全体をコピーします。先頭や末尾の空白、改行、チャットアプリによって付加された句読点がないか確認し、URL内のクエリパラメーターは残してください。

  3. グループの有効化を確認する

    「サブスクリプショングループの設定」で、対象グループの「更新を有効にする」がオンになっていることを確認し、保存します。切り分け中は対象グループを選択して「現在のサブスクリプションを更新」を実行し、ほかのグループの結果と混同しないようにしてください。

  4. 結果を1回記録する

    更新を1回だけ実行し、応答ステータスとインポート件数を記録します。まだ失敗する場合は、次のセクションを参考にリクエスト経路を切り替えてください。サーバー側の頻度制限にかからないよう、更新を連続してクリックしないでください。

更新経路を切り替える:「プロキシを経由せずに更新」を使う場面

「プロキシを経由せずに更新」は、サブスクリプション内容を取得するリクエストに適用される設定で、すべてのノードを直接接続に切り替えるものではありません。一般的なメニュー項目は「サブスクリプショングループ」→「現在のサブスクリプションを更新(プロキシを経由しない)」と「現在のサブスクリプションを更新(プロキシを経由する)」です。複数をまとめて更新する場合は、それぞれに対応する「すべてのサブスクリプションを更新」を選びます。バージョンによって空白や括弧の表記が異なることがあります。

「システムプロキシを自動設定」と、サブスクリプションメニューのリクエスト方法は別の設定です。ブラウザーでページを開けても、v2rayNのサブスクリプション取得が同じ経路を使うとは限りません。TUNが有効な場合やゲートウェイ側で転送されている場合、「プロキシを経由せずに更新」を選んでも、アプリがローカルプロキシを明示的に使わないだけで、リクエストがシステムのネットワーク層に処理されることがあります。

エラー別に対処する:タイムアウト、証明書、形式の問題

よくあるネットワークエラーの原文を以下に示します。完全なログには追加情報が含まれる場合があり、日本語以外のシステムではローカライズされたメッセージが表示されることもあります。まずステータスコードとエラーの種類を確認し、ネットワーク、URL、形式のどれを調べるか判断してください。

エラー:The operation has timed out.

原因と対処:制限時間内にリクエストが完了しませんでした。まずプロキシを経由する方法と経由しない方法をそれぞれ1回試し、サブスクリプションドメインの名前解決と現在のネットワークを確認してください。タイムアウトだけでは、トークンが無効とは判断できません。

エラー:Response status code does not indicate success: 403 (Forbidden).

原因と対処:サーバー、または途中の保護機能によってリクエストが拒否されました。アカウントの権限、アクセス制限、サブスクリプションURLを確認してください。必要に応じてサービス提供元に、その時刻に拒否された理由を問い合わせます。制限を回避するために短時間で何度も再試行しないでください。

エラー:The SSL connection could not be established, see inner exception.

原因と対処:TLS接続を確立できませんでした。詳しい原因は内部例外に記録されています。まずシステムの日付とタイムゾーンを合わせ、証明書の信頼状態やネットワークによる遮断を確認してください。証明書の検証を無効にしたり、URLを勝手に暗号化されていないHTTPに変更したりしないでください。

エラー:429 (Too Many Requests)

原因と対処:リクエスト頻度がサーバー側の制限を超えています。手動での再試行をやめ、サーバーの指定に従って待ってください。応答にRetry-Afterが含まれている場合は、その待機時間に従い、自動更新の間隔も長く設定します。

ダウンロードは成功したのにノードがない場合は、まず応答内容を確認

HTTP 200はリクエストに対する応答が成功したことを示すだけで、内容がサブスクリプションとは限りません。ログインページ、認証ページ、プランの有効期限切れ通知も、ステータスコード200で返されることがあります。内容の先頭が<!DOCTYPE html>または<html>の場合は、ノードのプロトコルを変更するのではなく、サービス管理画面でサブスクリプションのURLを確認してください。

自動更新間隔を設定する:まず手動更新を成功させてから定期実行する

「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、対象グループを編集して「自動更新間隔(分)」を探します。「更新を有効にする」がオンになっていることも確認してください。項目に表示された単位に従って入力します。360は6時間を意味し、6分ではありません。現在のバージョンで単位や選択肢の名称が異なる場合は、数値をそのまま流用しないでください。

60分
1時間。短めの更新間隔
360分
6時間。通常の利用ならまずはこの設定
1440分
24時間。内容が安定している場合に使用

上記は設定例であり、速度測定の結果でもサービス側の保証でもありません。自動更新の頻度はサブスクリプションサービスの利用ルールに従ってください。1日1回までしか取得できない場合は、1時間ごとに設定しないでください。間隔を短くしてもノードの速度は上がらず、サブスクリプションを取得する回数が増えるだけです。

  1. まず対象グループで手動更新を1回行い、URL、形式、リクエスト経路が正常に機能することを確認してから、自動更新間隔を保存してください。
  2. 定期更新を有効にするには、正の分数を入力します。0を「すぐに更新」の意味で使わないでください。一般的なバージョンでは定期更新を無効にする値として扱われますが、実際の意味は画面の説明を確認してください。
  3. 保存後はv2rayNを起動したままにしてください。メインウィンドウを閉じる前に、タスクトレイへ最小化されるのか、プロセスが終了するのか確認します。アプリを終了すると、アプリ内の定期タスクは実行されません。
  4. 動作確認中は端末をネットワークに接続し、スリープさせないでください。設定した時刻が過ぎたら、ノード数が増えたかどうかだけでなく、情報出力にサブスクリプションの更新記録があるか確認します。

手動で「プロキシを経由して更新」を1回選んでも、すべての自動更新タスクの経路が恒久的に変更されるわけではありません。バージョンによっては定期更新専用の動作や設定があります。現在の画面と、設定時刻を過ぎた後のログを確認してください。端末のスリープ、ネットワークの切断、アプリの再起動によって実行時刻がずれることもあるため、定期タスクを秒単位で正確な予定として扱わないでください。

よくある質問:ノードの保持、自動更新、失敗からの復旧

更新に失敗したら、古いノードをすべて削除すべきですか?

削除せず、まず残しておきましょう。元のグループと使用可能なノードを記録し、URLとリクエスト方法を確認します。ノードを削除してもDNS、証明書、認証のエラーは解決しません。また、プロキシ経由の更新に使える経路を失う可能性があります。作り直す必要がある場合は、設定をバックアップしてください。バックアップにも接続情報などの機密情報が含まれる点に注意しましょう。

ブラウザーではサブスクリプションURLを開けるのに、クライアントでは失敗するのはなぜですか?

ブラウザーではログイン状態やプロキシ拡張機能が使われていたり、異なるネットワーク経路で接続していたりする場合があります。まず、ログイン後のページではなくサブスクリプションのテキストが返されていることを確認し、v2rayNで2種類の更新方法をそれぞれ試してください。サービス提供元が特定のリクエストヘッダーを要求する場合は、ドキュメントに従って設定し、ユーザーエージェント文字列を推測で入力しないでください。

更新間隔を6時間に設定したのに、翌日ノード数が変わらないのはなぜですか?

まずログで更新が実行されたか確認し、その後ノードの各項目を比較します。サブスクリプションの内容に変更がなければ、更新に成功してもノード数は増えません。更新記録がない場合は、「更新を有効にする」の状態、間隔の単位、アプリの終了、端末が長時間スリープしていなかったかを確認してください。

すべてのサブスクリプションで失敗するのに、1つのグループだけ使える場合はどう調べればよいですか?

失敗しているグループを選び、「現在のサブスクリプションを更新(プロキシを経由しない)」を単独で実行して、ステータスコードを記録します。次に、使えるノードを使ってプロキシ経由の更新を試してください。正常なグループを上書きしないよう、グループごとにURLとフィルタールールを比較します。サブスクリプションサービスによって、適したアクセス経路が異なる場合があります。

トラブルシューティングを終える前に、クライアントのバージョン、失敗した時刻、更新方法、ステータスコード、対処結果を簡潔に記録してください。サービス提供元に問い合わせる際は、単に「サブスクリプションが使えない」と伝えるより、これらの情報を添えるほうが原因を特定しやすくなります。ログを送る前に、サブスクリプションURL全体とトークンを削除してください。手動更新と自動更新の両方が正常に動作することを確認してから、通常の更新間隔に戻しましょう。

v2rayN をダウンロードOSとインストーラーを選択