V2Rayのサブスクリプション更新に失敗する・ノードが表示されない原因と確認方法

サブスクリプション更新後にノードが表示されない場合の確認方法を解説。リンクの有効期限、形式の非互換、更新時のプロキシ設定、クライアントのバージョンを順に確認できます。

この記事のポイント

v2rayNやv2rayNGで「サブスクリプションは登録済みなのに、更新に失敗する/ノードが表示されない」ときに確認してください。まずダウンロードと解析のどちらで失敗しているかを切り分け、リンクの権限、応答形式、更新経路を確認します。最後にクライアントの互換性を調べましょう。設定は一度に一つだけ変更し、使えるノードは残してください。最初から設定をすべて削除するのは避けましょう。

ダウンロード失敗と解析結果が空の状態を切り分ける

サブスクリプションURLを保存しても、クライアントにURLが登録されただけで、ノードを取得できたとは限りません。更新時には、ドメインの名前解決、サブスクリプションサーバーへの接続、応答の取得と形式の判別、グループへの登録が順に行われます。リストが空になる原因は、いずれかの処理の失敗か、表示中のグループが違うことなどが考えられます。

サブスクリプションURLを読み込むサブスクリプションサーバーに接続する応答本文を取得するノード情報を解析するサブスクリプショングループに登録する

まずクライアントのログを開き、更新した時刻付近に記録された最初のエラーを確認します。最後の「更新失敗」だけを見ても、原因ではなく結果であることがあります。ブラウザーでプロバイダーのトップページを開けても、サブスクリプションAPIが利用できるとは限りません。トップページとAPIでは、ドメイン、アクセス権限、通信経路が異なる場合があります。

表示された症状優先して確認すること今は避けること
リクエストがタイムアウトする・接続が拒否されるドメインの名前解決、通信経路、現在のプロキシの接続状況ノードのプロトコル設定を何度も切り替える
HTTP 401 または 403リンクのトークン、アカウント権限、APIへのアクセス制限まずエンコードの問題と決めつける
ダウンロードは完了するが、インポート数がゼロ応答がログインページ、空の本文、非対応形式ではないかダウンロード完了だけで正常と判断する
更新は成功するが、ノードがリストに表示されない選択中のグループ、検索条件、リストの絞り込みクライアントのデータフォルダーをすぐに丸ごと削除する

リンクの有効期限とAPIのアクセス権限を確認する

サブスクリプションURLには、通常アカウントのトークンが含まれています。サブスクリプションの再発行、プランの期限切れ、権限の変更、サービスの移行などにより、古いURLにアクセスできても案内ページしか返されない場合があります。プロバイダーのサブスクリプション管理ページから、現在のクライアントに対応したURLをコピーしてください。ブラウザーのアドレスバーに表示される管理画面のURLは使わないでください。

  1. 現在のグループを残しておく

    先に現在のグループ名と最終更新時刻を記録します。利用可能なノードが残っている場合は、設定をバックアップしてから新しいURLを試してください。唯一使えるグループを、内容の分からないデータで上書きしないようにしましょう。

  2. リンクの取得元を確認する

    プロバイダーのページでアカウントの状態とサブスクリプションの権限を確認し、ページのコピー用ボタンからURLを取得します。前後の空白や改行、コピー時に混入した引用符がないかを確認し、既存のクエリパラメーターはそのまま残してください。

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

    v2rayNでは「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、対象グループを編集して「URL」を確認します。v2rayNGではサイドメニューから「サブスクリプショングループ設定」を開き、該当項目のサブスクリプションURLを確認します。画面のバージョンによって項目の場所が異なる場合があります。

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

    保存後、対象グループだけを更新し、権限エラーと解析エラーのどちらが表示されるか記録します。サブスクリプショントークンを再発行した場合は、他の端末に登録された古いURLも更新してください。古いリンクの失効を端末の故障と誤認しないためです。

以下の数値はHTTPレスポンスのステータスコードであり、クライアントのバージョン番号や実測の成功率ではありません。次に権限と応答内容のどちらを調べるべきか判断する目安になります。

200
リクエスト成功。応答本文も確認する
401
有効な認証情報が不足している可能性が高い
403
サーバーが今回のアクセスを拒否した

エンコードと形式:取得できてもインポートできるとは限らない

「V2Rayサブスクリプション」は、どの設定ファイルでも取り込める共通の入口ではありません。一般的な形式は、1行ずつ並べた共有リンクか、リンク一覧全体をBase64でエンコードしたものです。VMessの共有リンクには、リンク自体にエンコードされた部分が含まれることもあります。サブスクリプション全体を重ねてエンコードしたり、末尾の文字を手動で削除したりしないでください。

VLESSはノードで使われるプロトコルの一つで、サブスクリプションは複数のノードを配布する方法です。ある種のノードをクライアントで使えるからといって、サービスから返されたあらゆる設定テキストを認識できるとは限りません。コア全体のJSON設定、構造化された設定ドキュメント、共有リンク一覧は、それぞれに合ったインポート方法を使う必要があります。

応答を確認する必要がある場合は、できるだけ端末内で行ってください。ブラウザーはシステムプロキシを使う一方、クライアントの更新は直接接続を選ぶ場合があります。通信経路が違う結果を、そのまま比較することはできません。また、サブスクリプションサービスがリクエストヘッダーに応じて異なる内容を返すこともあります。ブラウザーにWebページが表示されることは手がかりの一つにとどめ、クライアントのログやプロバイダーの説明とあわせて確認してください。

更新時にプロキシを使うか、直接接続するか

「ノードは使えるのに、サブスクリプション更新に失敗する」ときに確認したい分岐点の一つです。通常の通信が現在のプロキシ経由でも、サブスクリプションのダウンロードが同じ経路を使うとは限りません。反対に、すでに使えなくなったノード経由で更新しようとすると、サブスクリプションサービスに問題がなくてもリクエストがタイムアウトし続けることがあります。

  1. テスト条件をそろえる

    同じネットワークと同じサブスクリプションURLを使い、更新方法だけを変えて試します。まず現在のプロキシノードで通常のHTTPSサイトにアクセスできるか確認してください。DNS、ノード、ルーティングルールを同時に変更しないようにします。

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

    v2rayNでは「サブスクリプショングループ」メニューから「すべてのサブスクリプションを更新(プロキシを使用しない)」を選びます。画面のバージョンによって括弧の種類が異なる場合があります。重要なのは、プロキシを使用しないと明記された項目を選び、対象グループの結果を確認することです。

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

    直接接続がタイムアウトし、利用可能なノードがある場合は、「すべてのサブスクリプションを更新(プロキシを使用)」を選びます。現在のノードが使えない場合は、同じ操作を何度も繰り返さないでください。使える接続を復旧するか、サブスクリプションAPIに直接接続できるネットワークを使います。

  4. 結果を比較して記録する

    直接接続とプロキシ経由で、それぞれのエラーの種類を記録します。v2rayNGではメイン画面のメニューから「サブスクリプションを更新」を実行できます。ダウンロード経路はバージョンや実行状態によって変わるため、デスクトップ版のメニューと同じ動作だと決めつけず、ログと接続状態を照らし合わせて確認してください。

ログにローカルプロキシのポートへの接続失敗が記録されている場合は、クライアントが実際に待ち受けているアドレスとポートを確認します。他の人のポート番号をそのまま使わないでください。プロキシ経由に変更して更新できても、今回の経路で接続できたことを示すだけです。サブスクリプションを常にプロキシ経由で更新する必要があることや、すべてのノードが正常であることを意味しません。

実際のエラーに応じて次の確認項目を決める

エラーの表現はプラットフォームやネットワークライブラリによって異なります。以下はよく見られるエラー原文の一部です。サブスクリプションのドメイン、ローカルプロキシ、ノードサーバーのどこへの接続で発生したかも確認し、キーワード一つだけで原因を決めないでください。

エラー:401 Unauthorized

原因と対処:認証に失敗しています。サブスクリプショントークンが無効になったか、認証情報が不足している可能性があります。プロバイダーのページからURLをコピーし直し、クエリパラメーターが欠けていないか確認してください。

エラー:403 Forbidden

原因と対処:サーバーがアクセスを拒否しています。アカウントの権限、接続元の制限、アクセス方針などが関係している可能性があります。プロバイダーのサービス状況とAPIの説明を確認してください。このエラーだけでプランの期限切れと判断しないようにしましょう。

エラー:429 Too Many Requests

原因と対処:リクエストの頻度制限に達しています。更新ボタンを連続で押すのをやめ、応答に再試行の案内がある場合は、その時間だけ待ってください。複数の端末で頻繁に更新していないかも確認します。

エラー:No such host is known

原因と対処:ドメインを名前解決できていません。まずサブスクリプションのドメインに誤字がないか、現在のネットワークからDNSを利用できるか確認します。ドメインの移行がないと分かったら、名前解決の経路を調整して再試行してください。

エラー:Connection refused

原因と対処:接続先の該当ポートが接続を拒否しています。接続先がローカルプロキシの場合は、コアが起動しているか、ポート番号が一致しているか確認します。リモートのサブスクリプションサーバーの場合は、別の経路でも確認し、プロバイダーに問い合わせてください。

証明書エラーが表示された場合は、まずシステムの日付、時刻、タイムゾーンを確認し、次にサブスクリプションのドメインと証明書が一致するかを調べます。更新のために証明書の検証を無効にしないでください。ノードの編集画面にあるセキュリティ設定が、サブスクリプション取得時のHTTPS接続にも適用されるとは限りません。

クライアントのバージョンと更新結果を確認する

古いクライアントでは、新しく追加された共有リンクのパラメーターを認識できなかったり、サブスクリプションサービスの現在の応答形式を処理できなかったりする場合があります。ただし、サブスクリプションの解析は通常クライアントが行い、ノードへの接続は主にコアが行います。これは別の処理です。XrayやV2Flyのコアを切り替えても、ログインページがダウンロードされる問題やトークンの期限切れは、通常解決しません。

更新が成功したのにリストが空の場合は、まず検索文字列を消し、対象のサブスクリプショングループに切り替えて、絞り込みが有効になっていないか確認します。特定のグループだけに問題がある場合は、一時的なテスト用グループで新しいURLを検証してください。確認後に古いグループを整理すれば、重複ノードによる誤判定を避けられます。

問い合わせ前の確認リスト

役立つ問い合わせには、「どの処理で失敗したか」と「どのような比較を行ったか」が分かる情報をまとめます。設定全体を送ったり、時刻やグループが分からない空のリストのスクリーンショットだけを送ったりしないでください。以下の項目は、自分で確認するときにも、プロバイダーやクライアントのサポートに状況を伝えるときにも使えます。

確認する順番は、URLと権限、ダウンロード経路、応答形式、クライアントの互換性です。前の項目を確認できるまで、後の設定をいくつも同時に変更しないでください。問題の範囲を絞り込めるうえ、復旧後にどの変更が解決につながったかも判断しやすくなります。

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