「更新に失敗する」「サブスクリプションが空になる」「インポート後にサーバーが表示されない」といった場合に役立ちます。まずURLとHTTPステータスを確認し、次に直接接続とプロキシ経路、レスポンス形式、最後にグループと自動更新設定を確認します。
まず、どの段階で失敗しているかを確認する
サブスクリプション更新は一つの処理ではありません。クライアントはURLを読み込み、HTTPまたはHTTPSリクエストを送り、サーバーのレスポンスを受け取り、その内容をVMess、VLESS、Trojanなどのサーバー設定に解析します。リクエストは成功したものの解析に失敗したケースと、リクエストがサーバーに到達していないケースは別の問題です。
まずクライアントのログを開き、更新時刻、ステータスコード、最初に出たエラーを記録します。最初からすべての設定を削除するのは避けてください。以前のサーバーがまだ接続できるなら、「プロキシ経由でサブスクリプションを更新する」予備経路のテストに使えます。
ステータスコード200はサーバーが内容を返したことを示すだけで、有効なサブスクリプションとは限りません。ログインページ、期限切れの案内、ゲートウェイのエラーページでも200が返る場合があります。解析エラーが出たら、更新ボタンを繰り返し押すのではなく、レスポンスの先頭を確認してください。
結論:リクエスト失敗か解析失敗かを切り分ける
タイムアウト、名前解決失敗、接続拒否はネットワーク段階の問題です。不正な文字、Base64デコード失敗、有効な設定がないといったエラーは内容解析段階の問題です。段階ごとに対処するほうが、クライアントを何度も बदलえるより効果的です。
よくある4つの原因と対処法
1つ目はサブスクリプションURLの無効化です。リンクのリセット、アクセストークンの期限切れ、プラン状態の変更、コピー時に末尾のパラメータが欠落したケースなどがあります。ブラウザでプロバイダーのトップページを開けても、元のサブスクリプションURLが有効とは限りません。
2つ目はネットワーク経路の遮断です。DNSで名前解決できない、システム時刻が大きくずれている、利用中のネットワークが対象ドメインを制限しているなどの原因でHTTPSリクエストが失敗します。直接接続はできなくても、既存のプロキシサーバー経由なら更新できる場合もあります。
エラー:The operation has timed out
原因と対処:リクエストが制限時間内に完了しませんでした。ネットワークを切り替え、システムのDNSと時刻を確認したうえで、「プロキシを使わずに更新」と通常の更新をそれぞれ試してください。
エラー:The remote server returned an error: (403) Forbidden
原因と対処:サーバーが現在のURLまたはリクエストを拒否しています。サブスクリプションURLを完全な形でコピーし直し、アカウント状態を確認してください。403が続く場合は、新しい有効なURLを取得します。
エラー:No such host is known
原因と対処:ドメインの名前解決に失敗しています。ドメインの入力ミスがないか確認し、信頼できるDNSへ切り替え、クライアントを終了して再起動してから再度試してください。
エラー:base64: illegal base64 data at input byte
原因と対処:レスポンスが完全なBase64形式のサブスクリプションではないか、エラーページに置き換わっています。レスポンスがHTMLタグから始まっていないか確認し、サーバーの出力形式が現在のクライアントに対応しているか確認してください。
エラー:invalid character '<' looking for beginning of value
原因と対処:クライアントがJSONを期待しているのに、「<」で始まるWebページを受信しています。ログインページ、認証ページ、ゲートウェイのエラーページが一般的な原因です。まずURLまたはアクセス制限を解決してください。
3つ目は形式の非互換です。サブスクリプションには、行ごとの共有リンク、Base64エンコードされたテキスト、クライアント専用のJSONなどがあります。ネイティブV2Ray JSONは完全な実行設定を表すもので、複数サーバーを含む汎用サブスクリプションとは異なります。Webページ、完全な設定ファイル、別ソフト専用形式をそのままクライアントに渡すと、「有効な設定がありません」と表示されることがあります。
4つ目はクライアント設定の誤りです。サブスクリプションを誤ったグループに追加している、グループが無効になっている、更新方法を間違えている、ローカルプロキシポートとシステムプロキシ設定が一致していない、といった例があります。v2rayNの旧設定ではSOCKSポートが10808、HTTPポートが10809であることが多いですが、実際の値は「設定」→「パラメーター設定」に表示されるローカル設定を確認してください。
| 症状 | 優先して確認する項目 | 先にしないこと |
|---|---|---|
| 401または403がすぐ返る | サブスクリプションURL、トークン、アカウント状態 | コアを何度も切り替える |
| しばらく待つとタイムアウトする | DNS、ネットワーク、直接接続とプロキシ経路 | 古いサーバーをすべて削除する |
| ダウンロードは完了するがインポート数が0 | レスポンス形式、グループの絞り込み条件 | ステータスコードだけで成功と判断する |
| 手動更新は成功するが自動更新に失敗する | 更新間隔、起動時更新、バックグラウンド制限 | 更新間隔を頻繁に短くする |
v2rayNの手動切り分けと復旧手順
v2rayNでは、まず状況を確認しやすい手動更新を1回行います。操作前に現在のサブスクリプショングループ名を控え、以前使えたサーバーを少なくとも1台残しておきます。7.xの各マイナーバージョンではメニュー名が多少異なる場合がありますが、入口は主に「サブスクリプショングループ」と「設定」にあります。
サブスクリプションURLを確認する
「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、対象グループを選択します。URLの前後に空白、改行、重複文字がないことを確認し、グループが有効になっているか確認してください。
直接接続で更新する
「サブスクリプショングループ」から「すべてのサブスクリプションを更新(プロキシを使用しない)」を選択します。成功すれば、URLと形式は基本的に有効で、元の問題はローカルプロキシ経路にある可能性が高いです。
プロキシ経由で更新する
まず、利用できることを確認したサーバーに接続し、通常の「すべてのサブスクリプションを更新」を実行します。プロキシ経由では成功して直接接続では失敗する場合、現在のネットワークとDNSをさらに確認してください。
最初のエラーをログで確認する
メイン画面のログ領域を開き、今回の更新時刻付近で最初に出たエラーを探します。後続の連鎖エラーは参考度が低く、最初のタイムアウト、ステータスコード、解析エラーのほうが根本原因に近い傾向があります。
グループの結果を更新する
更新完了後にサーバー一覧へ戻り、サブスクリプショングループで絞り込みます。サーバーが保存されているのに表示されない場合は、検索語とプロトコルの絞り込みを解除して一覧を再読み込みしてください。
VMess、VLESS、Trojanはサーバーのプロトコル種別であり、サブスクリプションリクエストの成否を決めるものではありません。更新時に403やタイムアウトが出る場合、通常は選択中のXrayまたはV2Flyコアとは直接関係ありません。サブスクリプションが正常に保存され、サーバー起動時に「この設定項目はサポートされていません」と表示された場合に限り、コアの対応機能を確認してください。
結論:2つの更新経路を残す
直接接続での更新はローカルネットワークの確認に使い、プロキシ経由の更新は対象URLへ既存のプロキシを通してのみアクセスできる場合に使います。少なくともどちらか一方を使える状態にしておくと、古いサーバーが使えなくなった後も新しいサブスクリプションを取得できます。
v2rayNGの手動更新と形式確認
v2rayNGはXrayコアでサーバー設定を実行しますが、サブスクリプションのダウンロードはクライアント画面から行われます。切り分けでは「サブスクリプションのダウンロード失敗」と「サーバーの起動失敗」を分けて考えます。前者は更新通知、後者は個別設定を起動した後の実行ログを確認します。
モバイルネットワークとWi-Fiでは、DNSやアクセス方針が異なる場合があります。一方のネットワークで更新に失敗したら、まず別のネットワークへ切り替えて比較してください。結果がネットワークによって変わるなら、優先すべきは経路の問題であり、すべてのサブスクリプションを作り直す必要はありません。
グループ設定を開く
メインメニューの「サブスクリプショングループ設定」を開き、既存のグループを選択するか新規作成します。完全なサブスクリプションURLを貼り付け、識別しやすい名前を入力してください。
有効状態を確認する
対象グループが有効になっていることを確認します。複数のグループがある場合は、現在の更新操作がすべての有効なグループを対象としているか確認し、別のURLだけを更新していないか注意してください。
サブスクリプションを更新する
メイン画面に戻り、メニューから「サブスクリプションを更新」を実行します。結果が表示されるまで待ってから画面を切り替え、リクエスト完了前にシステムがクライアントの処理を一時停止しないようにしてください。
インポート数を確認する
更新成功の通知が出たら設定一覧を確認します。件数が0の場合は、レスポンスがBase64の共有リンク一覧か、別クライアント専用形式になっていないかを重点的に確認してください。
個別設定を起動する
新しくインポートされた設定を1つ選んで起動します。サブスクリプションの取得は成功したのに接続できない場合は、サーバーアドレス、ポート、通信方式、TLS、ルーティング設定を確認してください。
エラー:no valid profile found
原因と対処:レスポンスに認識可能な共有リンクまたは設定オブジェクトがありません。サブスクリプションの出力先がV2Ray/Xrayクライアント向けであることを確認し、グループの形式フィルターを解除して再試行してください。
エラー:connection refused
原因と対処:対象ホストが接続を明示的に拒否しています。ポートが開いていない、またはアドレスが誤っている可能性があります。サブスクリプションリクエスト中に発生した場合は、サブスクリプションのドメインとポートを再確認してください。
同じURLがv2rayNでは解析でき、v2rayNGでは解析できない場合は、まずクライアントのバージョンとレスポンス形式を比較してください。解析済みの単一サーバーをサブスクリプションの代わりに登録するのは避けます。単一の共有リンクで復旧できるのは1つの設定だけで、グループの更新関係は維持できません。
自動更新で確認すべき項目
自動更新の目的は既存グループを定期的に更新することであり、頻繁に実行すればよいわけではありません。短すぎる間隔は失敗ログを増やし、サーバー側のアクセス頻度制限を招く可能性があります。まずは1440分、つまり24時間ごとを推奨します。サーバーの変更が多い場合は360分または720分に調整できます。
自動更新には、クライアントが動作中であることも必要です。デスクトップ版を完全に終了していたり、モバイル版のタスクがシステムによって停止されていたりすると、スケジュールどおりに実行できません。そのため、起動時更新または手動更新の入口も残しておきます。
v2rayNの自動更新設定
パラメーター設定を開く
「設定」→「パラメーター設定」に進み、サブスクリプション更新または自動更新に関する項目を探します。7.xのバージョンによっては、v2rayN設定のタブ内に配置されています。
更新間隔を設定する
まず1440分を入力して保存します。数分単位に短縮すると、同じサブスクリプションURLへ短時間に繰り返しリクエストすることになるため避けてください。
更新経路を選択する
手動テストの結果に応じて、通常の更新またはプロキシを使用しない更新を選択します。古いサーバー経由でサブスクリプションへアクセスする必要がある場合は、起動後にまず利用可能な接続を確立できるようにしてください。
実行履歴を確認する
予定時刻を1回迎えたらログを確認し、対象グループの更新時刻が記録されているか確認します。サーバー一覧の変更時刻も変化しているか確認してください。
v2rayNGの自動更新設定
サブスクリプション設定を開く
「設定」にあるサブスクリプション関連の設定を開き、自動更新を有効にします。現在のバージョンに起動時更新がある場合は、補助機能として同時に有効にできます。
適切な間隔を設定する
更新間隔はまず24時間に設定します。より早く同期する必要がある場合のみ12時間へ調整し、短時間に繰り返しテストするのは避けてください。
バックグラウンド実行を許可する
クライアントの実行中にシステムがネットワークタスクを停止していないことを確認します。自動更新は、クライアントのプロセスが実行可能で、ネットワークも利用できる状態で行われます。
翌日に結果を確認する
グループの更新時刻とサーバー一覧を確認します。タイムスタンプが変わり、新しい設定を起動できて初めて、自動更新経路が正常に完了したと判断できます。
更新成功後の確認リスト
クライアントに「更新完了」と表示されても、結果が実際に使えるか確認する必要があります。レスポンスが解析され、グループへの保存が成功し、サーバーを起動でき、ルーティングが想定どおりに分流することを確認してください。サーバー名が増えただけでは、接続経路が正常とは限りません。
- 対象サブスクリプショングループの更新時刻が変わっていることを確認します。別のグループが更新されただけではないか注意してください。
- 検索とプロトコルの絞り込みを解除し、VMess、VLESS、Trojanの設定が正常に表示されるか確認します。
- 異なる地域のサーバーを2台ランダムに選んで起動し、単一サーバーの障害による誤判定を避けます。
- ログを開き、名前解決失敗、ポート競合、コア設定エラーがないことを確認します。
- ルーティングモードを確認し、「更新は成功したのにアクセス結果がおかしい」原因がルールの誤った適用ではないことを確認します。
- 最後に利用できた設定を残し、新しいサブスクリプションが安定して動作してから古い記録を整理します。
ブラウザではサブスクリプションURLを開けるのに、なぜクライアントでは失敗するのですか?
ブラウザにはログイン状態、認証情報、独自のプロキシ設定が保持されている場合があり、クライアントのリクエストが同じ条件になるとは限りません。クライアントログに表示されるステータスコードとレスポンス形式を基準に判断してください。
サブスクリプションの更新は成功したのにサーバーが増えない場合は?
まずグループとプロトコルの絞り込みを解除し、サーバーから返された内容が前回と同じか確認します。レスポンスに有効な共有リンクがなければ、クライアントはダウンロードを完了しても設定を保存できない場合があります。
XrayまたはV2Flyコアを変更すればサブスクリプションのタイムアウトは直りますか?
通常は直りません。サブスクリプションのタイムアウトはURLへのリクエスト段階で発生するため、まずDNS、ネットワーク、プロキシ経路を確認してください。コアの選択は主に設定の起動とプロトコル機能の対応に影響します。
最終判断:一連の流れを完了させて復旧を確認する
手動更新が成功し、グループの時刻が変わり、少なくとも2つの新しい設定を起動でき、次回の自動タスクも正常に実行される。この4項目をすべて満たして初めて、サブスクリプション更新の問題が解決したと判断できます。