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

v2rayNGのサブスクリプション更新に失敗する主な原因と、「プロキシ経由で更新」の使い分けを解説。v2rayNGとv2rayNの自動更新間隔の設定方法も紹介します。

この記事のポイント

サブスクリプションを更新できない、更新後にノード一覧が空になる、または定期更新を設定したい方に向けた内容です。まずリクエストの失敗とレスポンスの解析失敗を切り分け、プロキシ経由で取得するか判断しましょう。自動更新は、機能の有無、間隔の単位、バックグラウンドで実行できるかを確認してください。間隔を短くしても接続の問題は解決しません。

サブスクリプションの更新とノード接続を切り分ける

v2rayNGのサブスクリプション更新では、サブスクリプションURLにリクエストを送信してサーバーのレスポンスを読み込み、対応するノード設定を該当グループに登録します。一方、ノード接続はXrayコアが選択中の設定に基づいて外部への接続を確立します。使うアドレスや認証方法、ネットワーク経路が異なる場合があるため、「現在のノードが使える」からといってサブスクリプションへのアクセスが正常とは限りません。また、「更新成功」でも、すべてのノードが接続できるとは限りません。

サブスクリプションURLを読み込む サブスクリプションAPIへリクエスト レスポンスを解析 ノードグループを更新 ノードの接続をテスト

トラブルシューティングでは、まず現在使える設定を残し、一覧を更新するためだけにサブスクリプショングループ全体を削除しないでください。どの段階で失敗するかを記録します。リクエストがいつまでも完了しない場合は、まずネットワークを確認します。HTTPステータスが表示された場合は、APIとアカウントを確認します。リクエストが完了してもノードが表示されない場合に、レスポンス形式やプロトコルの互換性を調べましょう。この順に確認すれば、ネットワークの問題をコアの問題と取り違えずに済みます。

サブスクリプション更新でよくあるエラーと対処手順

v2rayNGのメニューから「ログ」を開き、手動で更新した時刻のエラーを確認します。以下はよくあるエラーの例です。ビルドやネットワークスタックによって、詳細な表示は異なります。更新時のエラーが通知にしか表示されない場合もあります。ログを共有する際は、サブスクリプションURL内のトークン、アカウント情報、ノードの認証情報を必ず隠してください。

エラー:Unable to resolve host

原因と対処:サブスクリプションのドメイン名を解決できていません。まずドメイン名が正しいか確認し、Wi-Fiとモバイルネットワークを切り替えて比較します。プロキシ経由での更新だけ失敗する場合は、プロキシ接続自体が利用するDNSも確認してください。

エラー:connect timed out

原因と対処:タイムアウトするまでに接続を確立できませんでした。まず現在のネットワークからほかのサイトにアクセスできることを確認し、直接接続での更新とプロキシ経由での更新を比較します。失敗したリクエストが重ならないよう、連続して操作しないでください。

エラー:HTTP 403

原因と対処:サーバーにリクエストを拒否されています。サブスクリプションがリセットされていないか、アカウントに制限がないか、接続元がサーバー側で制限されていないか確認します。ノードを切り替えても、権限の問題は解決しない場合があります。

エラー:HTTP 429

原因と対処:APIのリクエスト頻度制限に達しています。更新を繰り返すのはやめてください。レスポンスにRetry-Afterが含まれている場合は、その指示に従って待ちます。複数の端末から頻繁に更新していないかも確認してください。

エラー:SSLHandshakeException

原因と対処:TLSハンドシェイクに失敗しています。端末の日付と時刻、ネットワークへのログイン状態を確認し、サーバー証明書も確認してください。証明書検証を無効にして、サブスクリプションAPIの問題を回避しようとしてはいけません。

上記のエラーがなく、インポート失敗とだけ表示される場合は、サブスクリプションURLを末尾までコピーし直し、疑問符以降のパラメーターもすべて残してください。管理画面のURLをサブスクリプションURLとして使ったり、URLを勝手にデコードしたり、パーセントエンコードを削除したり、末尾を切り落としたりしないでください。HTTP 200はHTTPレベルでリクエストが成功したことを示すだけで、レスポンスがログインページの場合もあります。その場合は、利用中のクライアントに対応する形式をサブスクリプション提供元に確認してください。

「プロキシ経由で更新」を使うべき状況

通常の更新とプロキシ経由での更新の違いは、サブスクリプション取得のリクエストがクライアントのプロキシ経路を通るかどうかです。v2rayNGでは、通常メイン画面右上のメニューに「サブスクリプションを更新」「サブスクリプションを更新(プロキシ経由)」などの操作があります。表示名や対象範囲はビルドによって異なる場合があるため、操作前に現在のグループのみか、すべてのサブスクリプションかを確認してください。プロキシ経由で更新するには、利用可能なプロキシ接続が必要です。すでにすべて使えなくなった設定を、この方法で復旧することはできません。

現在の状況まず試す方法確認すること
APIに直接接続できる通常の更新現在のノードに依存しない
直接接続はタイムアウトするが、使えるノードがあるプロキシ経由で更新先に接続を開始し、アクセスできることを確認
使えるノードがひとつもないネットワークを切り替えて通常の更新提供元から有効なサブスクリプションまたは予備設定を入手
APIが403または429を返すまず権限またはレート制限を確認接続先を何度も切り替えても、問題の原因は特定できない

結論:プロキシが使えることを確認してから更新する

まず利用可能なノードを選択して接続を開始し、実際にアクセスできることを確認してからプロキシ経由で更新します。プロキシ経由での更新だけ失敗し、通常の更新が成功する場合は、まず通常の更新を使える状態に戻してください。プロトコル、DNS、ルーティングルールを同時に変更する必要はありません。

「接続済み」のアイコンが表示されても、接続先が実際に利用できるとは限りません。また、遅延テストだけではすべてのアクセス状況を確認できません。サブスクリプションAPIによっては接続元のネットワークを制限しており、プロキシの出口からの接続が拒否されることもあります。比較するときは一度に変更する条件をひとつに絞り、更新方法とエラーの内容を記録してください。そうすれば、何が変化の原因か判断しやすくなります。

v2rayNGの自動更新間隔:まず現在のビルドで設定場所を確認

v2rayNGはビルドによってサブスクリプション管理機能が異なるため、v2rayNの画面操作をAndroid版にそのまま当てはめることはできません。まず「サブスクリプショングループ設定」を開いて対象のグループを編集し、自動更新のスイッチと間隔の項目が本当にあるか確認してください。グループの編集画面にない場合は、「設定」内のサブスクリプション関連項目も確認します。該当する項目がなければ、隠れた定期実行機能があると決めつけないでください。Androidの「自動同期」も、サブスクリプション更新の設定ではありません。

  1. サブスクリプショングループを確認

    サイドメニューから「サブスクリプショングループ設定」を開き、対象のグループを編集します。URLが正しいことを確認して保存してください。まず手動で更新し、正常に完了することを確認してURLの問題を切り分けます。

  2. 更新オプションを確認

    グループの編集画面と「設定」に自動更新の項目があるか確認します。項目がある場合は、表示された説明に従って設定してください。項目がない場合は手動で更新し、別のクライアントのメニュー画面をそのまま参考にしないでください。

  3. 間隔の単位を確認

    画面に表示された分または時間の単位に合わせて設定します。たとえば6時間ごとに更新する場合、分単位の項目には360、時間単位の項目には6と入力します。これは設定例であり、すべてのビルドの初期値ではありません。

  4. バックグラウンドの制限を確認

    Androidの「設定」→「アプリ」→「v2rayNG」で、バッテリーとバックグラウンドデータの制限を確認します。システムメニューの名称は端末によって異なります。必要に応じてバックグラウンドでの動作を許可し、更新が実行されるか確認してください。

ビルドに定期更新機能があっても、システムのスリープ、ネットワークの切断、アプリの強制終了などによって実行が遅れることがあります。バックグラウンドでの動作を許可するのはシステム側の制限を切り分けるためで、定期更新に対応していないバージョンに機能を追加するものではありません。現在の画面で自動更新の設定を確認できない場合は、利用前に手動で更新し、サブスクリプション提供元から設定変更の通知があったときに更新するのが確実です。

v2rayNの自動更新間隔とAndroid版の違い

デスクトップ版v2rayNでは通常、「サブスクリプショングループ」→「サブスクリプショングループ設定」からサブスクリプションを管理します。対象のグループを編集し、「自動更新間隔」の項目を探してください。項目名や単位、更新機能を別途有効にする必要があるかは、利用中のバージョンの画面で確認します。保存前にサブスクリプションURLと更新方法を確認してください。「現在のサブスクリプションを更新(プロキシを使用しない)」や「現在のサブスクリプションを更新(プロキシ経由)」などの操作がある場合は、まず手動で更新して経路を確認します。

以下の数値は単位換算とトラブルシューティングの例です。すべてのサブスクリプションに同じ更新頻度を推奨するものではありません。更新間隔はAPIの仕様、設定が変更される頻度、端末の使い方に応じて決めてください。

6時間
設定間隔の例
360分
同じ間隔を分で表記
HTTP 429
リクエスト頻度を下げるべきサイン

結論:更新間隔を変えても取得経路の問題は解決しない

まず手動更新が安定して成功することを確認してから定期更新を設定してください。手動更新がタイムアウトしたりエラーになったりする場合、間隔を短くしても同じリクエストが増えるだけで、URL、権限、形式の問題は解決しません。

更新後に一覧が空になった、またはノードが使えない場合の確認方法

更新後は、まず選択中のグループとフィルター条件を確認し、ノードが本当に削除されたか調べます。画面に現在のグループだけが表示されていたり、キーワードによる絞り込みが残っていたりする場合があります。実際にノードがインポートされていない場合は、レスポンスが空でないか、アカウントの有効期限が切れていないか、提供元が出力形式を変更していないか確認します。レスポンス全体を公開の掲示板などに貼り付けないでください。完全な接続認証情報が含まれている可能性があります。

更新は成功したのにノードへ接続できない場合、もう一度更新すべき?

まず更新を繰り返すのをやめてください。ノードを選択して接続を再開し、接続ログからドメイン名解決、接続タイムアウト、TLSパラメーター、サーバーによる拒否などを切り分けます。サブスクリプションの更新は設定を置き換えるだけで、接続先のサーバーが利用可能かどうかを確認するものではありません。また、現在のルーティングルールで対象アプリがプロキシを通ることを保証するものでもありません。

同じサブスクリプションなのに、v2rayNでは更新できてv2rayNGでは失敗する?

まず2台を同じネットワークに接続し、同じ更新方法を使って、直接接続とプロキシ経由の違いを切り分けます。そのうえでURLが完全に一致しているか確認してください。ダウンロードは成功したのに解析に失敗する場合は、レスポンス形式とプロトコルの項目を提供元に確認します。v2rayNGはXrayコア、v2flyNGはV2Flyコアを使用します。コアによって対応するクライアントの解析機能が異なるため、URLが同じでもすべての設定に互換性があるとは限りません。

更新すると、使用中の接続もすぐ切り替わる?

必ずしもそうではありません。一覧の更新、現在選択中のノード、コアが実行中の設定はそれぞれ別の状態で、具体的な動作はクライアントのバージョンによって異なります。新しい設定を適用する場合は、選択中のノードを確認してから、画面の操作に従って再接続してください。重要な通信中は、更新直後にノードを切り替えるのを避けましょう。

最後に、サブスクリプションURLが完全か、アカウントが有効か、手動更新が成功するか、プロキシ経由の更新経路が明確か、間隔の単位が正しいか、バックグラウンドで実行されるかを確認します。一度に変更する項目をひとつにして結果を記録するほうが、クライアントの再インストール、DNS変更、グループ削除を同時に行うより問題を特定しやすくなります。インポート方法はv2rayNGのインポート手順、レスポンス形式はサブスクリプション形式と変換についてをご覧ください。

v2rayN をダウンロードプラットフォームに合ったクライアントを選ぶ