V2Rayのサブスクリプション更新失敗・読み込み件数ゼロの対処法

サブスクリプションURLの期限切れや応答形式の不一致、更新時のプロキシ経由・通信遮断が原因で読み込みに失敗することがあります。簡単な確認項目から順に解説します。

この記事の要点

v2rayNでサブスクリプションを更新するとリクエストに失敗する、読み込み件数がゼロになる、サーバー一覧が空になる場合に役立つチェックリストです。まず現在の設定を残し、グループのURL、更新経路、サーバーからの応答を確認してから、形式とフィルター条件を調べます。目的は不具合の発生箇所を特定することであり、サブスクリプションを何度も削除したり、クライアントを再インストールしたりすることではありません。

1. サブスクリプション更新の失敗とノード接続エラーの違い

サブスクリプションの更新では、クライアントがURLにアクセスして設定データを取得し、認識できるサーバー情報をグループに登録します。一方、ノードへの接続では、その設定を使ってコアがプロキシ接続を確立します。この2つは別々のリクエストです。Webページが開けてもサブスクリプションAPIにアクセスできるとは限らず、更新に成功してもすべてのノードが接続できるとは限りません。

サブスクリプションURL ネットワークリクエスト 応答内容 形式の解析 グループ一覧

まず更新ログの最初に記録された具体的なエラーを確認します。ドメイン名の解決失敗、タイムアウト、HTTPステータスコードが表示される場合は、まずネットワークリクエストを確認します。リクエスト完了後に読み込み件数がゼロなら、応答内容と形式を確認します。ログ上の読み込み件数がゼロでないのに一覧が空の場合は、先にフィルターを解除します。最後に表示される「更新完了」だけを見て、成功と判断しないでください。

2. サブスクリプショングループとURLを確認する

まず「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、エラーが発生したグループを確認します。画面構成はデスクトップ版、WPF版、バージョンによって異なりますが、確認するのはグループ名、サブスクリプションURL、グループのフィルター設定です。複数のグループを使っている場合は、対象のグループだけを更新すると、操作とログを対応させやすくなります。

  1. 現在の状態を記録する

    クライアントのバージョン、対象グループ名、登録済み項目数を記録します。バックアップが必要な場合は、クライアントのバックアップ機能を使ってください。バックアップファイルに認証情報が含まれることがあるため、自分で管理できる安全な場所に保存します。

  2. URLを確認する

    「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、対象グループを編集します。サービス提供元のトップページやアカウント画面のURL、個別ノードの共有リンクではなく、サブスクリプションURL全体が貼り付けられていることを確認してください。

  3. URLを再取得する

    サービス提供元のアカウントページにログインし、サブスクリプションが有効であることを確認してから、v2rayN用のURLをコピーし直します。前後の空白や改行は削除し、疑問符以降のクエリパラメーターは残してください。トークンを自分でデコードしたり書き換えたりしないでください。

  4. 対象グループだけを更新する

    「サブスクリプショングループ」メニューに戻り、現在のバージョンで利用できる対象グループの更新操作を選びます。一括更新しかできない場合は、対象グループのログを確認してください。他のグループが成功したことだけを根拠に、対象グループも正常だと判断しないでください。

  5. 結果を記録する

    操作時刻、更新経路、エラーの原文、読み込み件数を記録します。一度に変更する条件は1つにして、その都度更新してください。URL、DNS、プロキシを同時に変更すると、どの変更が効果をもたらしたのか分からなくなります。

3. 直結更新とプロキシ経由更新を比較する

v2rayNでは、バージョンによってサブスクリプションの更新方法を「プロキシを使用しない」「プロキシを使用する」に切り替えられます。まず「サブスクリプショングループ」メニューに表示される選択肢を確認し、該当する経路を選んでください。システムプロキシのアイコンを切り替えただけで、サブスクリプションの通信経路も変わったと判断しないでください。更新リクエストの経路は、クライアント独自の設定で決まる場合があります。

テスト条件結果次の対応
プロキシを使わずに更新項目の読み込みに成功この経路を使い、以前のプロキシが使えなくなっていないか確認する
プロキシを使わずに更新タイムアウトまたは接続切断利用可能と確認できているノードで、プロキシ経由の更新を試す
プロキシ経由で更新ローカル接続が拒否されたコアの稼働状態と実際の待ち受けポートを確認する
どちらの経路でも失敗同じステータスコードまたはエラーメッセージURLのアクセス権、アカウントの状態、サーバーからの応答を確認する

プロキシ経由で更新する前に、現在のノードが実際に使えることを確認してください。使えないノード経由で更新しようとすると、「ノードを復旧するには更新が必要だが、更新には使えないノードが必要」という悪循環に陥ります。利用できるノードがない場合は、まず直結か、信頼できる別のネットワークを試してください。更新のために、使えない接続を何度も起動する必要はありません。

4. HTTPステータスコードとエラー内容を確認する

エラーメッセージは英語の場合も、クライアントによって翻訳される場合もあります。「更新失敗」という表示だけでなく、ステータスコード、ホスト名、内部例外を記録してください。以下の数字は通信プロトコルのステータスコードであり、速度測定の結果ではありません。200はHTTPリクエストが成功したことを示すだけで、有効なサブスクリプションが返された証拠にはなりません。

200
リクエスト成功。応答本文を確認する
403
サーバーがリクエストを拒否した
407
中継プロキシで認証を求められた

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

原因と対処:サーバーにアクセスを拒否されています。トークンの無効化、アカウントの権限、アクセス制限などが考えられます。サブスクリプションURLを再取得し、アカウントの状態を確認してください。ブラウザーとクライアントで結果が異なる場合は、クライアントからのリクエストが遮断されていないか、サービス提供元に確認してください。

エラー:Connection refused

原因と対処:接続先から接続を拒否されています。接続先がローカルのループバックアドレスなら、プロキシコアと待ち受けポートを確認してください。接続先がリモートサーバーなら、サーバー側のサービスが稼働しているか確認します。すべてのケースをローカルのポート競合と決めつけないでください。

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

原因と対処:TLS接続の確立に失敗していますが、外側のメッセージだけでは具体的な原因を特定できません。システムの日付、タイムゾーン、内部に記録された証明書エラーを確認し、ネットワークの認証ページやHTTPS検査の影響も調べてください。証明書の検証を恒久的に無効化して、問題を覆い隠さないでください。

429が表示された場合は、連続した更新を停止し、サーバーの案内に従って待ってください。5xxの場合は発生時刻を記録し、APIの状態をサービス提供元に確認します。ドメイン名の解決エラーでは、まずサブスクリプションURLのドメイン名に誤りがないか確認し、その後で現在のネットワークのDNSを調べます。DNSを変更しても、アカウントの期限切れやトークンの無効化は解決しません。

5. サブスクリプションの読み込み件数がゼロの場合:応答形式を確認する

サブスクリプションURLにアクセスすると、共有リンクの一覧や、共有リンクをエンコードしたデータが返されることがあります。VMessとVLESSはプロキシプロトコル名で、サブスクリプションは設定をまとめて配布する仕組みです。クライアントごとの設定ファイルは共通ではありません。任意の設定テキストをサブスクリプション欄に貼り付けても、自動変換されるとは限りません。

応答内容の特徴考えられる原因対処方法
ログインフォーム、ページタイトル、HTMLタグアカウントページのURLをコピーした、または認証ページにリダイレクトされたサブスクリプション専用のURLをコピーし直し、ネットワーク認証を完了する
期限切れ、上限到達、アクセス拒否の案内APIから案内文が返されたアカウントの権限とサービス提供元の案内を確認する
空の本文、または項目が空の一覧アカウントにノードが割り当てられていない、またはAPIに問題があるアカウント画面のノード一覧とサブスクリプションの生成状態を確認する
別形式の設定ファイル全体が返されたエクスポート形式とクライアントが一致していないサービス提供元がv2rayN対応と案内している形式を選ぶ
共有リンクの一部だけが読み込まれない一部の項目に必要なフィールドがない、またはクライアントのバージョンが未対応個別の解析エラーを確認し、クライアントのバージョンを調べる

ブラウザーでのアクセスは参考情報にとどめてください。ブラウザーにはアカウントのログイン状態が保持されている場合があり、別のプロキシ経路を使っている可能性もあります。クライアントが同じCookieを送信するとは限りません。ブラウザーにアカウント画面が表示されても、クライアントからサブスクリプションAPIにアクセスできる証拠にはなりません。応答を確認する際は、ページが「開けたか」ではなく、最終的に返されたコンテンツの種類と本文に注目してください。

6. ログでは読み込み成功なのにサーバー一覧が空の場合

この場合、サブスクリプションURLをすぐに変更するのではなく、まず表示条件を確認してください。選択中のグループ、検索語、グループのフィルター設定が同時に適用されていることがあります。特にサービス提供元がノード名を変更すると、以前のキーワード条件に一致しなくなり、サブスクリプションからノードが消えたように見える場合があります。

フィルターを解除すると項目が表示されても、ノードを有効にした際に接続できない場合は、サブスクリプションの問題と接続の問題を分けて記録してください。その場合は、ノードのアドレス、ポート、トランスポート、TLSの設定がサービス提供元の案内と一致しているか確認します。サブスクリプショングループを削除し続ける必要はありません。

7. 再テストの記録とサービス提供元への問い合わせ

修正後は対象グループだけをもう一度更新し、ログに読み込み結果が記録されていることを確認します。フィルターを解除して項目を表示したら、ノードを1つ選んで実際にアクセスできるかテストしてください。一覧が復旧しただけでは、ノードに接続できることの確認にはなりません。

  1. v2rayNの完全なバージョン番号、OS、使用しているデスクトップ版またはWPF版を記録します。
  2. エラーの発生時刻、対象グループ、直結とプロキシ経由のどちらで更新したか、TUNが有効かどうかを記録します。
  3. 最初に発生したエラー、HTTPステータスコード、読み込み件数を、機密情報を伏せた状態で共有します。サブスクリプショントークン全体は送信しないでください。
  4. ネットワークを変更したか、URLを再取得したか、同じURLからWebページや空の本文が返されるかを伝えます。
  5. サービス提供元がサブスクリプション形式を更新している場合は、対応するクライアントのバージョンを確認してから、アップグレードが必要か判断します。「最新版」という表示だけを見て原因を決めつけないでください。

基本設定を見直す場合は、チュートリアルに沿ってサブスクリプションの読み込み方法とプロキシ設定を確認してください。操作を再現できる形で記録しておくと、「すべてのサブスクリプションを更新」を何度も押すより原因を特定しやすく、APIのレート制限にかかるリスクも減らせます。

v2rayN をダウンロード