この記事の概要

まず「サブスクリプションURL」と「ノード共有リンク」を区別し、それぞれに合った方法でインポートしましょう。サブスクリプションURLを取得済みで、PCまたはAndroidに追加したい方向けに、グループの作成、更新手順、失敗時の切り分けを解説します。原因はURL、通信、内容の解析の3段階に分けて確認できます。インポートできても接続が使えるとは限らないため、別途動作確認が必要です。

サブスクリプションURLと共有リンクの違い

サブスクリプションURLは、クライアントが定期的にアクセスする取得先です。通常は https:// で始まります。クライアントがURLにアクセスして複数のノード設定を取得し、サブスクリプショングループに登録します。一方、ノード共有リンクは1つのノードの接続情報を直接表し、vmess://、vless://、trojan:// などで始まります。どちらも長い文字列だからといって、同じ方法でインポートできるわけではありません。

HTTPSのURLがすべてサブスクリプションURLとは限りません。アカウントのトップページや購入ページ、ログインが必要な管理画面では、ノード一覧ではなくWebページが返されることがあります。サービス提供元がクライアント用として案内しているサブスクリプションURLをコピーし、v2rayNまたはv2rayNGが対応する形式か確認してください。

サブスクリプションURL

一般的な先頭部分
https://
含まれる内容
サーバーから返される複数のノード設定
インポート先
サブスクリプショングループのURL欄
更新方法
URLに再アクセスしてグループを更新

URLを保存しただけではノードは取得されません。保存後にサブスクリプションを更新してください。

ノード共有リンク

一般的な先頭部分
vmess://、vless://
含まれる内容
1つのノードの接続パラメーター
インポート先
クリップボードから設定をインポート
更新方法
共有リンクを再取得してインポート

複数の共有リンクをまとめてコピーすることはできますが、それだけでサブスクリプションの更新機能が使えるようになるわけではありません。

v2rayN:サブスクリプショングループを作成して更新

PC版では、先にグループを作成してから更新します。ここではv2rayNの日本語UIで一般的なメニュー名を使います。クロスプラットフォーム版とWPF版ではボタンの位置が異なる場合があり、バージョンによって追加ボタンが「追加」または「+」と表示されます。「サブスクリプショングループ設定」画面の備考欄とURL欄を使い、個別サーバーの編集画面には進まないでください。

  1. グループ設定を開く

    メイン画面で「サブスクリプショングループ」→「サブスクリプショングループ設定」を選び、グループ管理画面を開きます。すでにグループがある場合は名前を確認し、新しいサブスクリプションを既存のグループに上書きしないようにしてください。

  2. サブスクリプションURLを追加

    「追加」または「+」を選び、備考欄に見分けやすい名前を入力します。URL欄にサブスクリプションURL全体を貼り付けてください。説明文や引用符、改行を一緒にコピーしないようにします。

  3. 保存してグループを選択

    保存後にメイン画面へ戻り、作成したサブスクリプショングループを選択します。バージョンに有効化の設定がある場合は、グループが無効になっていないことも確認してください。

  4. 現在のサブスクリプションを更新

    「サブスクリプショングループ」→「現在のサブスクリプションを更新(プロキシを使用しない)」を選びます。現在のネットワークからURLへ直接アクセスできる場合に適した方法です。更新後は画面下部のログや通知を確認し、ノードを取得してインポートできたか確認してください。

  5. ノード一覧を確認

    検索条件を解除し、選択中のグループにノードが表示されているか確認します。PCで使えるプロキシがすでにあり、サブスクリプションURLへのアクセスにプロキシが必要な場合は、「現在のサブスクリプションを更新(プロキシを使用)」も試してください。接続手段がない状態で、この設定を何度も切り替えるのは避けましょう。

「すべてのサブスクリプションを更新」では複数のグループにアクセスするため、初回インポートの問題を特定しにくくなります。まず1つのグループが正常に更新できることを確認してから、一括更新してください。プロキシ経由で更新するには、プロキシが正常に動作している必要があります。サブスクリプションへの唯一の接続手段が使えなくなった場合は、接続を復旧するか、直接アクセスできる取得先を利用してください。

v2rayNG:サブスクリプション設定とクリップボードからのインポート

Androidでも、サブスクリプションを保存してから更新します。v2rayNGはXrayコアで接続を処理しますが、サブスクリプションの取得と一覧の解析はクライアントが行います。そのため、一覧が空のときは転送パラメーターを変更したりVPN権限を何度も確認したりする前に、まず更新結果を確認してください。

  1. サブスクリプション設定を開く

    メイン画面左上のメニューをタップし、「サブスクリプショングループ設定」を開きます。旧バージョンでは「サブスクリプション設定」と表示される場合があります。どちらもサブスクリプションの名前とURLを管理する画面です。

  2. 追加して保存

    「+」をタップし、備考とURLを入力します。貼り付けた内容に空白、欠落、余分な記号がないことを確認し、チェックマークをタップして保存します。ノードのQRコードから取得した共有リンクをサブスクリプションURL欄に入力しないでください。

  3. サブスクリプションを更新

    メイン画面に戻り、右上のメニューから「サブスクリプションを更新」を選びます。使用中のバージョンで現在のグループとすべてのグループを選べる場合は、作成したグループを先に更新し、結果の通知を確認してください。

  4. ノードを選択して接続

    ノードが表示されたら設定を1つ選び、接続ボタンをタップします。システムのVPN接続要求が表示されたら必要に応じて許可してください。この許可は端末の通信をVPNに通すためのもので、サブスクリプションの内容が正常に使えることを保証するものではありません。

手元にあるのが vless:// などの共有リンクだけなら、内容全体をコピーし、メイン画面の「+」→「クリップボードからインポート」から設定を追加します。この操作にサブスクリプショングループの作成は必要ありません。QRコードは情報を伝える手段にすぎません。読み取った結果が共有リンクかサブスクリプションURLかによって、使う手順が決まります。

同じサブスクリプションを各端末で個別に管理

PC版 v2rayN
  • サブスクリプショングループ設定でURLを保存します。
  • まず現在のサブスクリプションを更新し、必要に応じてプロキシ経由かどうかを選びます。
  • ノードをインポートしてから、システムプロキシまたはTunモードを確認します。
Android版 v2rayNG
  • サブスクリプショングループ設定でURLを保存します。
  • メイン画面に戻ってサブスクリプションを更新します。
  • ノードを選択して接続し、対象アプリの通信を確認します。

両方の端末で同じURLを使えますが、更新はそれぞれ個別に行います。更新時刻、形式の互換性、フィルター条件が異なるため、一覧が完全に一致するとは限りません。

Base64形式のサブスクリプション、共有URI、設定ファイルの違い

従来型のサブスクリプションでは、共有リンクを複数行に並べたテキスト全体をBase64でエンコードする形式が一般的です。クライアントは外側のテキストをデコードし、各行からノードを読み取ります。共有リンクの一覧をそのまま返すサービスもあります。インポートできるかどうかは文字列の長さではなく、クライアントが対応する形式か、各リンクのパラメーターを読み取れるかで決まります。

「サブスクリプション全体のエンコード」と「個々のプロトコルリンク内のエンコード」は区別が必要です。たとえば一般的なVMess共有リンクでは、vmess:// の後にBase64エンコードされたJSONが続きます。一方、VLESS共有リンクは通常、URIのユーザー情報、ホスト、ポート、クエリパラメーターで設定を表します。デコードした文字列を、そのまま別のプロトコルのリンクとして使うことはできません。

受け取った内容実際の意味使い方
HTTPSのサブスクリプションURLリモート設定を取得するためのURLであり、設定データそのものではないサブスクリプショングループに追加してから更新
Base64エンコードされたテキスト共有リンク一覧をまとめてエンコードした形式が一般的サブスクリプションURLからクライアントに取得・解析させる
複数行の共有URI通常は1行につき1つのノードを表すクライアントの対応状況に応じて、クリップボードからまとめてインポート
JSON設定ファイル全体インバウンド、アウトバウンド、ルーティングなどを含む場合がある対応するカスタム設定のインポート画面を使い、通常のサブスクリプションURLとして扱わない
Webページまたはその他の設定形式ログイン画面、エラーページ、非対応の出力形式などの可能性がある現在のクライアントに対応した形式で再取得

更新後にノードが表示されない場合:3段階で切り分け

まず更新時の通知を記録してから設定を変更してください。接続タイムアウト、HTTPエラー、解析後にノードが0件となる場合は、それぞれ問題が起きている段階が異なります。以下の数字はHTTPステータスコードの説明であり、接続速度の測定結果ではありません。ログまたはサーバーの応答にステータスコードが記録されている場合に限り、判断材料として使ってください。

200
リクエスト成功。返された内容は要確認
401
通常は有効な認証情報が必要
403
アクセス拒否。権限を確認

第1段階:URLが完全か確認

第2段階:リクエストが完了したか確認

第3段階:返された内容を解析できるか確認

HTTP 200はリクエストが正常に処理されたことを示すだけで、ノードが返されたことを保証しません。ログイン画面、アクセス確認ページ、エラー説明のテキストでも、このステータスコードが返される場合があります。ブラウザーでページが開けても、クライアントが対応するサブスクリプションデータを取得できたとは限りません。ブラウザーにはログインCookieがあり、クライアントにはない可能性があります。

  1. まずクライアントの更新ログを読み、ダウンロード失敗、デコード失敗、非対応プロトコル、インポート成功・0件を区別してください。
  2. サービス提供元が形式を選べる場合は、v2rayNまたはv2rayNG向けの出力を選びます。ファイル拡張子だけで互換性を判断しないでください。
  3. 一部のノードだけ表示されない場合は、クライアントがプロトコルやパラメーターに対応しているか確認し、公式のダウンロードページからクライアントを更新してください。解析を通すためにTLS、Reality、転送パラメーターを削除しないでください。
  4. 検索条件を解除し、正しいグループに切り替えます。ログにノードのインポート完了と表示されているのに一覧が空の場合は、まずグループの選択状態と表示フィルターを確認してください。

インポート後の接続確認とメンテナンス

ノードが一覧に表示されたら、次は接続確認です。ノードを選んで接続を開始し、実接続による速度テストと対象アプリからのアクセス確認を行ってください。TCPingで確認できるのは通常、対象ポートへのTCP接続状況です。認証、TLS、転送のハンドシェイク、最終的なネットワークアクセスまで成功したことを単独で証明するものではありません。実接続による速度テストも、そのときのテスト対象に対する結果であり、すべてのサイトへのアクセスを保証するものではありません。

サブスクリプションを更新すると、最速のノードに自動で切り替わりますか?

そうとは限りません。サブスクリプションの更新は設定の取得、速度テストは接続状況の確認、使用するノードの選択は実際に使う設定を決める操作です。自動選択の仕組みを明示的に設定していない限り、更新に成功してもノードは自動で切り替わりません。更新後は現在選択されている項目を確認してください。特に、使用中のノードがサブスクリプションから削除された場合は注意が必要です。

同じURLをPCではインポートできるのに、Androidでは一覧が空になる場合は?

まず両端の更新ログと実際のネットワーク経路を比較し、クライアントが対応する形式か確認してください。サーバーがリクエストの特徴に応じて異なる内容を返す場合や、パラメーターの対応状況が端末ごとに異なる場合があります。ノードのパスワードを先に手動変更せず、Androidでノード一覧を取得できているか、エラーページが返されていないかを確認してから、プロトコルの互換性を調べてください。