まず、サブスクリプションのダウンロード失敗、内容の解析失敗、ノードへの接続失敗を切り分け、リンクの有効性、更新経路、端末の時刻を確認します。手動更新が成功したら自動更新を設定しましょう。デスクトップ版ではグループの間隔(分)、Android版では自動更新機能の有無と単位を確認し、実際に更新が実行されるか確かめます。
サブスクリプション更新はどの段階で失敗する?
サブスクリプション更新とプロキシ接続は別の処理です。クライアントがサブスクリプションURLにリクエストを送り、ノード情報を取得してローカル設定に変換します。v2rayNのサブスクリプションダウンロードはクライアントが処理するため、Xrayコアが動作中というだけでは、更新リクエストがプロキシ経由だとは限りません。システムプロキシ、サブスクリプション更新コマンド、クライアント内のダウンロード設定も、それぞれ別の設定です。
更新ログがどの段階で止まるかによって、対処方法は異なります。接続タイムアウトなら、まずネットワーク経路を確認します。HTTP 403なら、認証情報やサーバー側のポリシーを確認します。ダウンロードできてもノードが追加されない場合は、応答の形式を確認してください。これらをまとめて「ノードが使えない」と判断すると、まだ使えるローカル設定まで誤って削除しかねません。
| 表示される症状 | まず確認する項目 | まだ変更しない項目 |
|---|---|---|
| リクエストがタイムアウトする、または接続を拒否される | 直接接続とプロキシ経由の経路、現在のノード、ローカルの待ち受けポート | ノードのUUID、トランスポート方式 |
| HTTP 401、403、410 | アカウントの状態、URLトークン、サブスクリプションURLがリセットされていないか | ルーティングルールとDNSの振り分け |
| 内容は受信したが、インポート件数が0件 | ログインページが返されていないか、形式がクライアントでサポートされているか | 自動更新間隔 |
| インポートは成功したが接続できない | ノードの接続ログ、サーバーの状態、トランスポート設定 | 正常にダウンロードできたサブスクリプションの経路 |
まずURLとアカウントの状態を確認する
サブスクリプションURLにはアクセス用トークンが含まれていることが多いため、パスワードと同じように管理してください。サービス提供元のアカウントページからURL全体をコピーしましょう。ページのURL、QRコード画像のURL、チャットアプリで途中が切れた文字列をサブスクリプションURLとして使わないでください。トークンをリセットすると、古いURLはすぐに無効になることがあります。クライアント内に古いノードが残っていても、古いURLが有効だとは限りません。
-
現在の設定を残しておく
まず、現在使えるノードとグループ名を記録します。原因を調べている間は、グループ全体を何度も削除したり、サーバー一覧をすべて消去したりしないでください。必要に応じてクライアントのエクスポート機能でバックアップし、認証情報を含むファイルは安全に保管します。
-
URLをコピーし直す
サービス提供元のアカウントページからサブスクリプションURLをコピーし、グループに登録された古いURLと置き換えます。先頭・末尾の空白や改行、クエリパラメーターの欠落がないか確認してください。トークンやパラメーターを手動で削除・変更しないでください。
-
対象のグループだけを更新する
v2rayNのメイン画面で対象グループを選び、「サブスクリプショングループ」→「現在のサブスクリプションを更新(プロキシを使用しない)」を実行します。更新時刻、ステータスコード、エラー内容を記録してください。メニューの括弧や空白は、バージョンによって多少異なる場合があります。
-
アカウントの状態を確認する
アカウントの有効期限、データ通信量の上限、サブスクリプションの一時停止を確認します。HTTP 403はアクセス制限やリクエスト頻度の制限によって返されることもあるため、ステータスコードだけでアカウント切れと判断しないでください。
直接接続での更新とプロキシ経由の更新を区別する
現在のネットワークからサブスクリプションのドメインに直接アクセスできない場合は、接続できることを確認済みのノードを使って更新できます。v2rayNでそのノードを起動し、「サブスクリプショングループ」→「現在のサブスクリプションを更新(プロキシを使用)」を実行してください。システムプロキシを何度も切り替えるより、今回の更新経路を明確にできます。使えるノードが一覧にない場合、プロキシ経由の更新だけで接続を復旧することはできません。
- 直接接続では成功し、プロキシ経由では失敗する:現在のノード、クライアントのローカルプロキシ待ち受け、サブスクリプションサービスによる接続元IPの制限を確認します。直接接続で問題がないなら、そのまま直接接続を使えばよく、すべてのサブスクリプションを強制的にプロキシ経由にする必要はありません。
- 直接接続では失敗し、プロキシ経由では成功する:2つのアクセス経路に違いがあることを示しています。自動更新に使うダウンロード設定も確認しましょう。手動更新で一度選んだ方法が、バックグラウンド処理にも恒久的に適用されるとは限りません。
- どちらの方法でも同じHTTPエラーが返される:まずURLとサーバーからの応答を確認します。DNSやポートを変更しても、認証の問題は通常解決しません。
- どちらの方法もタイムアウトする:ネットワークに接続できているか、ノードが使えるか、端末がWebログインを必要とするネットワークに接続されていないかを確認します。
ローカルポートは実際の設定を確認してください。たとえば、HTTPプロキシが実際には127.0.0.1:10809で待ち受けているのに、127.0.0.1:10808へリクエストを送ると、別のプロトコル用ポートに接続したり、接続を拒否されたりすることがあります。この2つのポート番号は確認方法を示す例であり、すべてのバージョンのデフォルト値ではありません。v2rayNの「設定」→「パラメーター設定」でローカルの待ち受け設定を確認し、実行ログと照合してください。
エラーの文面から原因を絞り込む
クライアントの情報またはログ画面を開き、今回のサブスクリプション更新前後に出たエラー行を省略せずに確認します。「更新失敗」という通知だけでは不十分です。以下は発生する可能性のある低レベルのエラー例です。実際の表現は実行環境やクライアントのバージョンによって異なるため、文面が完全に一致することを求めず、エラーの種類から判断してください。
Response status code does not indicate success: 403 (Forbidden).
原因と対処:サーバーが現在のリクエストを拒否しています。トークン、アカウントの状態、アクセス制限などが原因として考えられます。アカウントページに表示されたサブスクリプションURLをコピーし直し、連続した再試行は避けて、サービス提供元に拒否の理由を確認してください。
The operation has timed out.
原因と対処:許容時間内にリクエストが完了しませんでした。まず直接接続とプロキシ経由の両方で更新を試し、現在のノードとネットワークを確認します。タイムアウト時間を延ばすだけでは、到達できないURLは使えるようになりません。
No such host is known.
原因と対処:ドメインを名前解決できません。サブスクリプションのドメイン名、端末のDNS、ネットワーク接続を確認してください。更新リクエストがコアを経由していない場合、コアのdns.serversを変更しても今回の名前解決には反映されないことがあります。
The remote certificate is invalid because of errors in the certificate chain: NotTimeValid
原因と対処:証明書の有効期間を検証できませんでした。端末の時刻が誤っている場合も、サーバー証明書が期限切れの場合もあります。まず端末の日付と時刻を同期して再試行してください。時刻が正しいのにエラーが続く場合は、サブスクリプションサービスの運営元に証明書の確認を依頼します。
Connection refused
原因と対処:接続先が接続を受け付けませんでした。ログの接続先がローカルの場合は、コアが動作中か、ポートが一致しているかを確認します。接続先がサブスクリプションサーバーの場合は、サーバーの稼働状況を確認してください。ノードの認証情報をすぐに変更しないでください。
Windowsでは「設定」→「時刻と言語」→「日付と時刻」で時刻の自動設定を有効にし、同期を実行できます。Androidでは通常「設定」→「システム」→「日付と時刻」から設定しますが、端末によっては別のシステム設定項目に含まれます。証明書エラーは、ネットワーク上のHTTPS検査や不正な証明書チェーンが原因の場合もあります。証明書の検証を無効にして回避しないでください。
- エラーが発生した現地時刻と更新方法を記録しておくと、サーバーのログとの照合に役立ちます。
- 応答がHTMLのログインページ、認証ページ、メンテナンスページなら、HTTPステータスが200でも有効なノードサブスクリプションではありません。
- ダウンロードはできてもVMessまたはVLESSの項目を解析できない場合は、サービス提供元が現在のクライアントに対応したサブスクリプション形式を提供しているかを確認し、クライアントのバージョンも確認してください。
v2rayNの自動更新間隔を設定する
まず手動更新が一度成功することを確認してから、定期更新を有効にします。v2rayNの一般的なデスクトップ画面では、「サブスクリプショングループ」→「サブスクリプショングループ設定」でサブスクリプションを管理できます。対象グループを編集し、「自動更新間隔(分)」を確認してください。この記事では、その項目が表示される画面を例に説明します。現在のバージョンで項目名が異なる場合は、実際の表示名と単位に従ってください。時間単位の数値を分単位の欄にそのまま入力しないでください。
-
対象グループを開く
「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、定期更新したいグループを編集します。別の同名グループを変更しないよう、メモとサブスクリプションURLを確認してください。
-
分単位で入力する
「自動更新間隔(分)」に、まず
360(6時間)を設定できます。あくまで初期設定の目安であり、共通のデフォルト値ではありません。サービス提供元がリクエスト間隔の上限を定めている場合は、その制限に従ってください。 -
ダウンロード経路を確認する
現在のバージョンに「プロキシ経由で更新」などの項目があれば、先ほど更新に成功した方法に合わせて設定します。個別の項目がない場合は、そのバージョンのサブスクリプションダウンロード設定を確認し、バックグラウンド更新が成功するかログで確かめてください。
-
保存して動作を確認する
グループ設定を保存し、プログラムを起動したまま次回実行時のサブスクリプションログを確認します。ノード数だけで判断しないでください。内容に変更がなければ、更新に成功しても件数は変わらないことがあります。
| 設定したい間隔 | 分単位の入力値 | 設定時の目安 |
|---|---|---|
| 6時間 | 360 | ノードの変更をできるだけ早く反映したい場合 |
| 12時間 | 720 | ノードの変更が少ない場合にリクエストを減らす |
| 24時間 | 1440 | 1日ごとに変更を確認する場合。プログラムの稼働時間も考慮する |
自動更新はプログラムの稼働状況とシステムのスケジューラーに依存し、サーバーからのプッシュ通知ではありません。v2rayNを終了した場合や、端末の電源が切れている・スリープ中の場合、壁時計どおりに更新が実行されるとは限りません。0を「すぐに更新」と解釈しないでください。多くの画面では定期更新を無効にする値です。保存前に項目の説明を確認してください。
v2rayNGの更新とバックグラウンド動作の制限
Android版v2rayNGはXrayコアを使用しますが、サブスクリプションの管理はクライアントの画面で行います。まずメイン画面のメニューから「サブスクリプショングループ設定」を開き、対象グループが有効でURLが正しいことを確認します。メイン画面に戻り、メニューから「現在のグループのサブスクリプションを更新」を実行します。画面上の項目が「サブスクリプションを更新」など別の名称の場合は、現在のグループだけを更新するのか、すべてのグループを更新するのかを確認してください。
-
まず手動で更新する
使えるノードに接続してから対象グループを更新し、更新結果の通知とノード一覧を確認します。Android版で現在のプロキシを通じてダウンロードするかどうかは、バージョンや設定によって異なるため、実際の更新結果で判断してください。
-
機能の設定項目を確認する
「設定」と対象グループの編集画面を開き、自動更新のオン・オフと間隔を設定できるか確認します。v2rayNGはバージョンによって機能や設定項目が異なるため、v2rayNのグループにある分単位の項目をそのまま当てはめないでください。
-
間隔の単位を確認する
現在のバージョンに間隔設定がある場合は、表示に従って6時間または相当する数値を指定します。項目の単位が「分」の場合に限り、
360を入力してください。保存後は実際に更新が実行されるまで待ち、設定が保存されただけで終わっていないか確認します。 -
バックグラウンド動作の権限を確認する
システムの「設定」→「アプリ」→「v2rayNG」→「バッテリー」で、バックグラウンド動作の制限を確認します。項目名は端末のシステムによって異なります。バックグラウンド実行を許可しても、画面ロック中に分単位で正確に更新されるとは限りません。
更新後の確認とよくある質問
サブスクリプションの更新成功は、ノード情報がローカルに保存されたことを示すだけで、すべてのノードに接続できることを保証しません。更新後はグループ、選択中のノード、ログを確認してから実際の通信をテストしてください。サービス提供元がノードを削除または改名した場合は、現在の選択先を確認し、削除済みの項目を選んだままにしないようにしましょう。
更新に成功したのに、ノード数が変わらないのはなぜ?
サーバー側の内容に変更がない可能性があります。まず更新成功の通知を確認し、グループ内のノードアドレスやメモが更新されたかを確認してください。「件数が増えること」を成功の条件にせず、確認のために何度も連続で更新しないでください。
360分に設定した場合、電源を切っていても更新されますか?
停止中のクライアントが更新を実行することはありません。起動後にv2rayNを起動し、必要に応じて手動で更新してください。実行できなかったタスクを後から処理するか、次回の間隔をいつから数えるかは、バージョンの実装によって異なります。
プロキシ経由の手動更新は成功するのに、自動更新に失敗するのはなぜ?
定期更新が実行されたときにノードが動作していたか、バックグラウンド更新も同じ経路を使っているかを確認します。実行時刻のログを照合してください。その時点で接続が確立していなかった場合は、使えるノードに接続してから手動で更新します。
429が返されたら、間隔を1分に短縮すべきですか?
短縮しないでください。HTTP 429はリクエスト頻度が制限されたことを示します。連続した再試行をやめ、サーバーの案内に従って待ちます。応答にRetry-Afterが含まれている場合は、その指定に従ってから再リクエストし、自動更新の間隔も適切に延ばしてください。
自動更新でノードも自動的に切り替わりますか?
サブスクリプションの更新とノードの選択は別の処理です。更新では主にノード情報が新しくなりますが、遅延が最も小さいノードが自動選択されるわけではありません。現在の項目が削除されている場合は対象グループに戻って使えるノードを選び、接続ログを確認してください。
最後に、発生時刻、対象グループ、直接接続かプロキシ経由か、HTTPステータス、更新前後の項目数を記録しておきましょう。何度も再インストールするより、こうした情報をそろえるほうが問題の解決に役立ちます。システムプロキシとコアのルーティングの役割については、使い方ガイドと設定リファレンスもご覧ください。