v2rayNのサブスクリプション更新に失敗したら?よくある原因と自動更新の設定方法

サブスクリプションURLの無効化、プロキシポートの競合、プロキシ経由での更新が必要な設定が、更新失敗の主な原因です。v2rayNとv2rayNGの確認方法と自動更新間隔の設定を解説します。

この記事の要点

サブスクリプションを追加済みなのに、v2rayNやv2rayNGでタイムアウト、空の結果、ポート競合、自動更新が実行されないといった問題が起きている方に向けた内容です。まずURLの有効性を確認し、プロキシ経由のアクセスが必要か判断します。その後、ローカルポートとシステム時刻を確認し、適切な自動更新間隔を設定します。

まず、どの段階で失敗したかを確認する

サブスクリプションの更新は、ノードへの接続そのものではありません。クライアントは更新時に保存済みのURLを読み込み、サブスクリプションサーバーへリクエストを送り、テキストまたは構造化データを受け取ってから、VMessやVLESSなどのノード情報に解析します。これらが完了して初めてノード一覧が変わります。つまり、「以前のノードに接続できる」ことはURLが有効である証拠ではなく、「更新に成功した」ことも、すべてのノードに接続できることを意味しません。

失敗したら、まずポップアップやログに表示された原文のメッセージを記録し、更新ボタンを連続して押さないでください。繰り返し試すとサーバー側のレート制限にかかる可能性があり、複数回分のログも混ざってしまいます。v2rayN 7.xでは、メイン画面下部のログ欄でリクエスト結果を確認できます。ログ欄が表示されていない場合は、「表示」→「ログ」から開いてください。リクエスト時刻、HTTPステータス、タイムアウトの文言、返されたノード数を重点的に記録します。

サブスクリプションURLを読み込むネットワークリクエストを確立するサブスクリプション内容を受信するノード情報を解析するサブスクリプショングループに保存する
確認できる結果 考えられる原因 次に行うこと
401、403、またはURL無効がすぐに表示される サブスクリプションの認証情報が期限切れ、URLが変更された、またはコピーが不完全 サブスクリプション提供元で完全なURLを再取得する
約10~30秒後にタイムアウトする 直接接続の経路に到達できない、DNS異常、またはプロキシ経由の更新が必要 まず利用可能なノードに接続し、プロキシ経由で更新する
成功と表示されるがノード数が0 ログインページ、エラーページ、または互換性のない内容が返されている レスポンスの種類を確認し、サブスクリプション形式を再確認する
クライアント起動後にコアが動作しない ローカルの待ち受けポートが他のプログラムに使用されている 10808、10809など現在設定されているポートを確認する

結論:まず「ダウンロード失敗」と「解析失敗」を区別する

リクエストのタイムアウトがサブスクリプション内容の受信前に起きているなら、ネットワーク経路を確認します。内容を受信済みなのにノードがない場合は、URLのレスポンスとサブスクリプション形式を確認してください。両者では対処方法が異なります。

サブスクリプションURLの無効化と異常なレスポンス

サブスクリプションURLには通常、アカウントを識別する長い文字列が含まれています。コピー時に1文字欠ける、チャットツールで自動的に途中までしかコピーされない、URLの前後に空白が混ざるといったことが原因で、サーバーがエラーを返す場合があります。編集するときはURL全体を置き換え、末尾だけを変更しないでください。同じURLが2台の端末で同時に使えなくなり、他のWebサイトには正常にアクセスできる場合は、認証情報の更新またはサーバー側の一時的な障害を疑います。

ブラウザでの確認は補助的な手段にとどめてください。URLを開くとテキストがダウンロードされる場合もあれば、エンコードされた文字列が表示される場合もあります。また、特定のクライアント識別子を要求するサーバーもあります。ブラウザにログインページや通常のWebページが表示される場合、クライアントがそのHTMLをサブスクリプションとして解析し、結果的に「更新成功なのにノードがない」「解析に失敗した」といった状態になることがあります。完全なサブスクリプションURLは、公開スクリーンショット、問い合わせ、グループチャットなどに載せないでください。アカウントのアクセス情報が含まれている可能性があります。

エラー:The remote server returned an error: (401) Unauthorized

原因と対処:サーバーが現在のサブスクリプション認証情報を拒否しています。URLを再取得し、「サブスクリプショングループ」で該当グループを編集して、古いURLを完全に置き換えてください。

エラー:The remote server returned an error: (403) Forbidden

原因と対処:サーバー側のポリシーによってリクエストが拒否されています。短時間に更新を繰り返したことが原因の場合もあります。10分ほど待ってから再試行し、再発する場合はアカウントの状態とURLが変更されていないか確認してください。

エラー:subscription content decode failed

原因と対処:受信した内容をサブスクリプション形式として解析できません。URLがログインページ、エラーページ、または空の内容を返していないか確認し、その後、完全なURLをコピーし直してください。

エラー:operation timed out

原因と対処:制限時間内にレスポンスを受信できませんでした。まず通常のネットワークが利用できることを確認し、次に利用可能なノードへ接続して、プロキシ経由で更新してください。

v2rayNで順番に確認する

デスクトップ版では、URL、更新経路、コアの状態、ポート、システム時刻の順に確認するのが効果的です。最初からすべての設定を削除しないでください。グループを削除すると、まだ接続できる古いノードも同時に消えてしまいます。古いノードを残しておけば、「プロキシ経由の更新」が利用できるか検証できます。

  1. グループのURLを確認する

    「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、失敗したグループを選択して、名前とURLを確認します。URLの前後にある空白を削除し、改行前でコピーが途切れていないか確認してください。

  2. まず直接接続で更新する

    メイン画面で「サブスクリプショングループ」を開き、プロキシを使わない更新を実行します。10~30秒後にタイムアウトした場合は、ログの時刻を記録し、すぐに再度クリックしないでください。

  3. プロキシ経由で更新する

    現在利用できるノードを選択してコアを起動し、システムプロキシが有効になっていることを確認してから、プロキシ経由で更新します。成功したら、更新前後のノード数と更新時刻を比較してください。

  4. コアのポートを確認する

    「設定」→「パラメータ設定」を開き、ローカルのSOCKSおよびHTTP待ち受けポートを確認します。一般的な組み合わせは10808と10809です。ログにアドレスが使用中だと表示された場合は、空いているポートに変更してからコアを再起動してください。

  5. システム時刻を合わせる

    システムの日付と時刻の設定を開き、自動時刻合わせを有効にして今すぐ同期します。数分のずれでもHTTPSリクエストやノード接続に影響する可能性があります。同期後はv2rayNを完全に終了してから再起動してください。

ポート競合は、必ずしもサブスクリプションのダウンロード失敗を直接引き起こすとは限りません。しかし、「プロキシ経由で更新」するためのローカルプロキシ経路が使えなくなります。たとえばv2rayNが127.0.0.1:10808で待ち受ける設定でも、別の実行中プログラムがそのポートを使用していると、コアは正常に起動できません。システムプロキシが設定済みに見えても、実際にはリクエストを受け取るプロセスが存在しない状態です。ブラウザの表示よりも、ログに出る「address already in use」のほうが判断材料になります。

ポートを変更した場合は、システムプロキシのモードも確認してください。SOCKSポートだけを10808から10818に変更しても、システムが古いポートを参照したままだと、ブラウザもサブスクリプションのリクエストも失敗し続けます。変更後はコアを再起動し、システムプロキシを一度切り替えて、システムの設定とクライアントの現在の待ち受けポートを一致させてください。

結論:古いノードが使えるなら、先にサブスクリプションを削除しない

接続を確認できたノードを1つ残し、まずそれを使ってプロキシ経由の更新を行います。新しいURLから有効なノードが返されることを確認してから、重複したグループや期限切れの記録を整理してください。

v2rayNGとAndroid版で重点的に確認する点

v2rayNGはXrayコアを使用しており、サブスクリプションの更新もダウンロードと解析の2段階に分かれます。Android版では、省電力設定、バックグラウンド通信の制限、現在のVPN接続状態の影響も受けます。確認時はv2rayNGを前面に表示したまま、画面をロックせず、通常のWebサイトにアクセスできるネットワークであることを確認してください。

v2rayNG 1.10.xでは、メイン画面のサブスクリプション入口から設定を開き、対象項目のURLを確認できます。マイナーバージョンによってメニュー名が「サブスクリプション設定」または「サブスクリプショングループ設定」と表示される場合がありますが、確認する項目は同じです。備考、URL、有効状態、更新オプションを確認し、保存してメイン画面に戻ったら、サブスクリプションを更新してください。

  1. アプリを前面に表示する

    v2rayNGを開いて画面を点灯したままにし、システムがバックグラウンド通信を制限していないことを確認します。更新中はWi-Fiとモバイルデータ通信を切り替えないでください。

  2. サブスクリプション項目を確認する

    「サブスクリプション設定」を開き、対象のサブスクリプションを選択してURL全体を確認し、有効になっていることを確認します。保存してメイン画面に戻ってください。

  3. プロキシ経路を試す

    直接接続でタイムアウトする場合は、既存の利用可能な設定を起動し、画面上部で接続が確立していることを確認してから、もう一度サブスクリプションを更新してください。

  4. 更新時刻を確認する

    更新後にノード数、グループ名、最終更新時刻を確認します。「完了」と表示されてもノード数が0の場合は、レスポンスの内容を確認し、成功と判断しないでください。

自動更新の間隔を設定する

自動更新は、頻繁にするほどよいわけではありません。個人用のサブスクリプションの多くでは、5分ごとに更新する必要はありません。間隔が短すぎるとネットワークリクエストが増え、サーバー側のレート制限にかかる可能性もあります。毎日使う端末なら、まず360分から始めるのがおすすめです。ノードの変更が少ない場合は、720分または1440分に設定できます。ノートPCが頻繁にスリープする場合、自動タスクはスリープ中に実行されないことがあるため、復帰後に手動で一度更新してください。

利用シーン 推奨間隔 説明
ノードを頻繁に更新する 360分 1日最大4回の自動確認で、情報の新しさとリクエスト頻度を両立
安定した日常利用 720分 1日2回の確認で、ほとんどのデスクトップ端末とAndroid端末に適しています
予備端末 1440分 1日1回の確認。使用前に手動更新も可能です
トラブルシューティング中 一時的に無効化 バックグラウンドタスクによるログの上書きや、同じエラーの繰り返し発生を防ぐ

v2rayNの自動更新

  1. グループ設定を開く

    「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、自動更新するサブスクリプショングループを選択します。

  2. 更新間隔を入力する

    自動更新間隔の欄に分数を入力します。普段使いならまず720分に設定し、テスト目的で1分や5分に設定しないでください。

  3. 更新経路を選択する

    そのサブスクリプションが直接接続で頻繁にタイムアウトする場合は、保存前に現在のプロキシを使って更新する設定になっていることを確認します。自動タスクの実行時には、コアと利用可能なノードも動作可能な状態でなければなりません。

  4. 更新を1回検証する

    保存後、まず手動で更新し、URL、経路、解析が正常であることを確認します。その後、次回の予定時刻が更新されるかを確認してください。設定値だけでタスクが実行されたと判断しないでください。

v2rayNGの自動更新

v2rayNGの「設定」または「サブスクリプション設定」で自動更新の項目を探し、有効にして現在のバージョンで選べる間隔を設定します。画面が分単位ではなく時間単位の場合、360分は6時間、720分は12時間、1440分は24時間です。設定後はアプリのバックグラウンド通信を許可してください。省電力モードでアプリが停止されると、タスクは次回アプリを開いたときまで延期される場合があります。

結論:開始値には720分が適している

通常、1日2回の更新でノードの変更を確認できます。異常が起きたときも、発生した時間帯を特定しやすくなります。サブスクリプションの変更頻度が明らかに高い場合に限り、360分へ短縮してください。

よくある問題と最終確認

設定が終わったら、手動更新、ノード数の記録、ノードを1つ選んでコアを起動、システムプロキシの状態確認、ログに異常が続いていないかの確認を順番に行います。サブスクリプションの更新とノード接続の両方が成功して初めて、経路全体が復旧したと判断できます。サブスクリプションだけ成功してノードがすべてタイムアウトする場合は、ノードのパラメータ、ネットワーク品質、ルーティングルールを確認してください。

サブスクリプションの更新がタイムアウトした場合は?

まず通常のWebページを開いてネットワークが利用できることを確認し、次に古い利用可能なノードを起動して、プロキシ経由で更新します。直接接続とプロキシ接続の両方が30秒前後でタイムアウトする場合は、URLとサービスの状態を再確認してください。

更新に成功したのにノードが1つもない場合は?

そのグループの更新前後のノード数を確認し、ログに解析失敗が出ていないか確認します。ログインページ、空のテキスト、通常のWebページが返されている場合、クライアントはダウンロードを完了していてもノードを生成できないことがあります。

なぜ毎回、先に古いノードへ接続するのですか?

そのサブスクリプションURLは、現在の直接接続ではアクセスできない可能性があります。利用可能なノードを更新経路として残し、サブスクリプショングループ設定でプロキシ経由の更新を選択してください。

自動更新を有効にしたのに実行されないのはなぜですか?

間隔の単位、クライアントが起動しているか、端末がスリープしていないか、バックグラウンド通信の権限を確認します。間隔を一時的に360分に設定して1周期を観察し、数分に設定して何度もテストするのは避けてください。

ポートを変更してもインターネットに接続できない場合は?

コアが実際に待ち受けている新しいポートと、システムプロキシの設定が一致していることを確認します。たとえば10818に変更したのにシステムが10808を参照していると、有効になりません。コアを再起動し、システムプロキシをもう一度切り替えてください。

クライアントを再インストールする場合は、まずサブスクリプショングループ名、更新方法、ローカルポートを記録してください。インストール後は必要な設定だけを復元し、まず1つのサブスクリプションで確認してから、他のグループを段階的に追加します。これにより、古い設定の誤ったポート、無効なURL、重複したルーティングルールがまとめて戻るのを防げます。

v2rayN をダウンロード4プラットフォームのインストールパッケージを見る