v2rayNのサブスクリプションを更新できないときの対処法|よくある原因と自動更新間隔

サブスクリプションURLの無効化、プロキシ経由の更新ループ、証明書や時刻のずれなど、よくある原因と自動更新間隔の目安を解説します。

この記事のポイント

サブスクリプションの更新に失敗したら、まず「リクエストが送信できない」「サーバーに拒否される」「取得した内容をインポートできない」の3つに切り分けましょう。この記事では、macOSでv2rayNを使う方向けに、URL、通信経路、証明書、データ形式の順で確認する方法を解説し、最後に自動更新間隔の目安も紹介します。既存のノードは残し、まずは問題のあるサブスクリプショングループだけをテストしてください。最初からクライアントを再インストールする必要はありません。

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

サブスクリプションの更新では、クライアントがURLにリクエストを送り、ノード情報を取得してローカルのグループに取り込みます。一方、ノード接続では、現在の設定に基づいてコアがリモートサーバーにアクセスします。両者は関連していますが、同じ処理ではありません。既存ノードで接続できてもURLからエラーが返ることがありますし、データを取得できてもすべてのノードが使えるとは限りません。

サブスクリプションURLを読み込む リクエスト経路を選ぶ 安全な接続を確立する サブスクリプションデータを受信する ノードを解析して取り込む

まずv2rayNのログ画面を開き、問題のあるグループだけを更新します。操作した時刻、エラーの全文、プロキシ経由で更新したか、更新前後のノード数を記録してください。DNSやノード、更新方法を同時に切り替えると、復旧しても原因を特定しにくくなります。

  1. 現在の状態を保存:使えるノードを控え、クライアントのエクスポートまたはバックアップ機能で設定を保存します。バックアップには認証情報が含まれるため、端末内の安全な場所に保管してください。
  2. 対象グループを確認:「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、グループ名とURLを確認します。バージョンによってツールバーやメインメニューに項目があるため、実際の画面で同じ機能を探してください。
  3. 1グループだけ再試行:サブスクリプショングループのメニューから、対象グループの更新を実行します。一度にすべてのサブスクリプションを更新するとログが混ざるため、避けてください。
  4. 失敗した段階を切り分ける:タイムアウトや接続拒否なら通信経路、HTTPステータスコードならサーバーを確認します。ダウンロードが完了しているのにノードが表示されない場合は、データ形式を調べてください。

2. サブスクリプションURLが無効な場合:URLと応答を確認

サブスクリプションサービスのアカウントページから、v2rayN用のURLをコピーし直して、クライアントに保存したURLと照らし合わせます。よくある原因は、アカウント管理ページのURLをコピーしている、クエリパラメーターが欠けている、末尾に空白が混じっている、再発行済みの古いトークンを使っている、などです。QRコードはURLを別の形で表したものにすぎず、記載されたURLが有効とは限りません。

確認できた結果まず確認すること次に行うこと
HTTP 401認証情報がない、または無効サービスの管理画面にログインし、有効なURLをコピーし直す
HTTP 403アクセスを拒否されたアカウントの状態、アクセス元の制限、クライアントの対応状況を確認する
HTTP 404 / 410パスが存在しない、またはリソースが削除済みURL全体を確認し、サービス側でURLが変更されていないか問い合わせる
HTTP 429リクエスト回数の上限に達した連続して再試行せず、応答にRetry-Afterがあればその指示に従う
HTTP 502 / 503サーバーまたは上流で一時的な障害が発生現在の設定を残し、サービス復旧後に再試行する
HTTP 200でもインポートできないリクエストは成功していても、有効なサブスクリプションデータとは限らないログイン画面、認証ページ、エラー説明が返されていないか確認する

ステータスコードだけで原因を特定することはできません。たとえば403は、サブスクリプションサービスだけでなく、中間のセキュリティ対策によって返されることもあります。403を見ただけでアカウントの有効期限切れと決めつけず、管理画面で有効期限や通信量、応答内容も確認してください。サブスクリプショントークンを再発行した場合は、ほかの端末に保存してある古いURLも差し替える必要があります。

確認ポイント:ブラウザーで開けても、クライアントにインポートできるとは限らない

ブラウザーではログイン状態が維持されていたり、認証ページが表示されたりする場合があります。まず、返された内容がクライアントで認識できるノードデータか確認してください。アカウントページが表示されるなら、ノードの設定を調整するのではなく、サブスクリプションURLをコピーし直しましょう。

3. 直結とプロキシ経由の更新:無効なノードのループを避ける

v2rayNのサブスクリプションメニューには通常、「現在のサブスクリプションを更新(プロキシを使用しない)」と「現在のサブスクリプションを更新(プロキシを使用)」の2種類があります。表示名はバージョンによって異なります。サブスクリプションのドメインに直接アクセスできるネットワークでは前者、利用可能なプロキシを経由しないとアクセスできない場合は後者を使います。同じグループでそれぞれ手動更新を試し、更新方法を最初から決めつけないでください。

よくあるのが、現在のノードが使えず、サブスクリプションの更新にもそのノードが必要で、ノードの復旧には更新が必要というループです。この状態でプロキシ経由の更新を何度繰り返しても解決しません。接続可能な直結経路を使うか、端末に残してある別の利用可能なノードに切り替えてから更新してください。

  1. まず直結で試す:プロキシを使わずに更新します。成功した場合、現在のネットワークからURLに直接アクセスできています。通常の更新でもこの経路を優先できます。
  2. 次にプロキシを確認:現在のノードで通常のHTTPSサイトにアクセスできることを確認してから、プロキシ経由で更新します。コアが起動しているだけでは、ノードが使えるとは限りません。
  3. ポートを確認:「設定」→「パラメーター設定」を開き、ローカルの待受ポートと待受タイプを確認します。画面にSOCKSまたは混合ポートとして10808と表示されている場合は、その値とログを照合してください。この例をすべてのバージョンの既定値と考えないでください。
  4. システム側の通信制御を確認:直結更新がうまくいかない場合は、TUNやその他のシステム全体を対象とする通信制御が有効になっていないか確認します。アプリで直結を選んでも、システム側の通信捕捉を回避できるとは限りません。
  5. 使える経路を確認してから設定:利用可能な更新方法がわかったら、自動更新を設定します。手動更新の方法を記憶するかどうかはバージョンによって異なるため、一度選んだだけで設定が固定されるとは限りません。

システムプロキシのオン・オフだけでは、上記の確認の代わりになりません。クライアント内のサブスクリプションリクエストは独自のネットワーク設定を使うことがあり、ブラウザーと同じ経路を通るとは限りません。ブラウザーではアクセスできるのにクライアントでは失敗する場合は、使用しているノード、システムプロキシの状態、DNSの経路を比較しましょう。リモートサーバーのプロトコル設定を先に変更する必要はありません。

4. エラー内容からタイムアウト・ポート・証明書の問題を特定

「更新に失敗しました」という表示より、エラーの全文のほうが原因の特定に役立ちます。以下のメッセージはクライアントのログやリクエスト処理中のエラーに表示されることがあります。前後にアドレス、ポート、翻訳された説明が付く場合もあります。まずキーワードを見つけ、該当する処理段階を確認してください。サブスクリプションのHTTPS証明書と、ノード接続のTLS証明書は別の接続に使われるもので、混同しないようにしましょう。

Connection refused

原因と対処:接続先ポートへの接続が拒否されています。接続先がローカルアドレスか確認してください。127.0.0.1の場合は、コアが起動しているか、プロキシの待受ポートが一致しているかを確認します。リモートアドレスの場合は、サブスクリプションサービスのポートが利用可能か確認してください。

The operation has timed out.

原因と対処:制限時間内にリクエストが完了していません。名前解決、接続、データ読み込みのいずれかで止まっている可能性があります。URLは変えずに、直結と利用可能なプロキシ経由の両方を試してください。片方だけ失敗する場合は、まずその経路を修復します。

No such host is known.

原因と対処:ドメイン名を解決できません。URLのドメイン名に誤りがないか、現在のネットワークのDNSが正常か確認してください。ブラウザーでアクセスできる場合は、独自のセキュアDNSが有効か、プロキシ経由で名前解決しているかも確認します。

The remote certificate is invalid because of errors in the certificate chain: NotTimeValid

原因と対処:証明書の有効期間を確認できません。まず端末の日付と時刻を正しく設定してください。時刻に問題がないのにエラーが出る場合は、サービス側にサブスクリプションサイトの証明書が期限切れ、または有効化前でないか確認してもらいましょう。

macOSで時刻と証明書を確認する

  1. 「システム設定」→「一般」→「日付と時刻」を開き、「日付と時刻を自動的に設定」が有効か、表示されている日付が正しいか確認します。タイムゾーンを変えるだけでは、システム時刻が正しくならないことがあります。
  2. すぐに確認するには、ターミナルでdate -uを実行してUTC時刻を表示し、信頼できる時刻情報と照らし合わせます。
  3. 現在のネットワークで、Webページにログインしてからインターネットを利用する必要がないか確認してください。公衆Wi-Fiの認証ページが本来のページの代わりに返され、ダウンロード失敗や証明書エラーにつながる場合があります。
  4. 特定のサブスクリプションドメインだけで証明書エラーが発生し、ほかのHTTPSサイトには問題なくアクセスできる場合は、個人情報を伏せたエラー全文をサービス提供元に送り、証明書チェーンやドメイン設定を確認してもらいましょう。

5. ダウンロードできてもノードが表示されない:データ形式とグループを確認

応答を受信できたということは、ダウンロードが完了しただけです。v2rayNでは内容を認識してノードを生成する必要があります。一般的なサブスクリプションは、エンコードされた共有リンクの集合や、クライアントが対応する別の形式で提供されます。任意のJSON、YAML、Webページをそのままインポートできるわけではありません。ファイルの拡張子だけで判断せず、v2rayN用と明記されたURLをサービス側で選んでください。

確認中にサブスクリプショングループ全体を削除しないでください。更新時に新しいデータとノードを同期する処理は、バージョンや設定によって既存データの扱いが異なります。まずバックアップを取り、テスト用のグループで新しいURLを確認してください。ノード数と基本的な接続を確認してから、元のURLを置き換えましょう。クライアントを更新する場合も、形式の変化とネットワークの変化が混ざらないよう、現在のバージョンと設定を記録してから行います。

6. 自動更新の間隔:まず手動更新を成功させてから設定

自動更新は同じリクエストを定期実行する機能で、無効なトークン、証明書エラー、接続できない経路を自動で修復するものではありません。まず手動更新が成功することを確認し、「サブスクリプショングループ」→「サブスクリプショングループの設定」から対象グループの自動更新を設定します。現在のバージョンで全体設定にスイッチがある場合は、実際の画面に従って設定し、各グループに個別の周期が設定されていないかも確認してください。

利用状況設定の目安理由
接続が安定していて、普段の作業に使う720分(12時間)リクエストの繰り返しを抑えつつ、ノードの変更を定期的に反映できる
サービス側でノードが頻繁に変更される360分(6時間)更新待ち時間を短縮できる。ただし、サービス側のリクエスト制限には従う
予備のサブスクリプションで、ときどき使う1440分(24時間)更新頻度を抑え、使う前に手動でもう一度確認する
エラーが続く、または429が返される自動更新を一時的に無効にする先に原因を解決し、リクエスト制限の案内に従って再開する

これらは設定の目安であり、クライアントの既定値や速度測定の結果ではありません。入力前に単位を確認してください。時間単位の欄なら12時間は12、分単位の欄なら720と入力します。0の意味を推測しないでください。バージョンによって無効化や特殊な動作として扱われることがあるため、画面に明示されたスイッチを使いましょう。

設定後の確認:成功ログを2回確認する

まず手動更新が成功した時刻を記録します。その後、クライアントを起動したままパソコンをスリープさせず、次の予定時刻に成功ログが記録されるか確認してください。スリープ解除後すぐに更新されなかったからといって、サブスクリプションが無効とは限りません。

ノートパソコンのスリープ、クライアントの終了、システムによるバックグラウンド処理の一時停止などがあると、予定どおりに実行されないことがあります。スリープ解除後に実行されるかどうかも、バージョンによって異なります。サービス側でトークンが再発行された、または回線が緊急変更された場合は、手動で一度更新すれば十分です。一時的な同期のために、周期を長期間1分に設定する必要はありません。

7. よくある質問:更新方法と設定の保持

サブスクリプションの更新がタイムアウトしたら、すべてのノードが使えないということですか?

いいえ。まず既存のノードで通常のHTTPSサイトにアクセスし、その後サブスクリプションだけを更新してください。ノードは使えるのに更新がタイムアウトする場合は、サブスクリプションのドメイン、直結経路、サービスの状態を確認します。すぐにノード一覧を消去しないでください。

プロキシ経由では更新に失敗し、直結なら成功します。どちらを使えばよいですか?

まず、成功を確認できた直結方式を使ってください。その後、現在のプロキシノードとローカルの待受ポートを確認します。自動更新でも同じ経路が使われるかは、現在のバージョンの設定と実際のログで確認してください。システムプロキシのスイッチだけでは判断できません。

サブスクリプションURLをコピーし直したら、古いノードを先に削除すべきですか?

まずバックアップを取り、すぐに削除する必要はありません。テスト用のグループを作り、新しいURLを確認できます。ノードをインポートして接続できることを確認してから、元のグループのURLを置き換え、不要な重複グループを整理してください。

ネットワークを変えたら更新できました。v2rayNを再インストールする必要はありますか?

再インストールはひとまず不要です。同じURLを使い、2つのネットワークでの更新方法とエラーの違いを記録して、元のネットワークのDNS、認証ページ、アクセス制限を重点的に確認してください。ネットワークが原因の問題は、再インストールしても通常は変わりません。

Android版でも更新に失敗します。同じ順番で確認できますか?

URL、リクエスト経路、証明書、データ形式の順で確認する方法は共通ですが、メニューの場所は異なります。v2rayNGはXrayコア、v2flyNGはv2flyコアを使用します。それぞれのサブスクリプション形式への対応を確認し、デスクトップ版のローカルポートやメニューの場所をそのまま当てはめないでください。

確認が終わったら、認証情報を含めずに簡潔な記録を残しましょう。クライアントのバージョン、OSのバージョン、失敗した時刻、HTTPステータスまたはエラー全文、成功した更新経路、自動更新の間隔を記録します。同じ問題が起きたときは、直近の成功記録と照らし合わせるほうが、すべての設定を最初から変更するより原因を特定しやすくなります。

V2Rayクライアントをダウンロード