この記事のポイント

リンクの先頭を確認して、適切なインポート方法を選びましょう。HTTPまたはHTTPSのサブスクリプションURLはサブスクリプショングループに登録し、VMess・VLESSの共有リンクはクリップボードからインポートします。初めてクライアントを設定する方、追加後にノードが表示されない方、更新時に形式エラーが出る方に向けて、URLと購読データの違い、更新手順、通信とデータ解析の切り分け方を説明します。

1. サブスクリプションURLとノード共有リンクの違い

「V2Rayリンク」は特定の形式を指す言葉ではありません。サブスクリプションURLは設定一覧を取得するためのもので、通常は https:// で始まります。一方、ノード共有リンクには接続パラメーターが含まれ、一般的な形式は vmess:// または vless:// です。クライアントでの取り込み方は異なります。サブスクリプションURLをノードとしてインポートしても、通常は有効な設定を取得できません。

受け取ったデータ見分け方使うメニュー
サブスクリプションURL通常はHTTPSのURL。提供元がサブスクリプション用として案内サブスクリプショングループに登録し、保存後に更新
VMess共有リンクvmess:// の後ろには、通常エンコードされたパラメーターが続きますクリップボードからインポート
VLESS共有リンクvless:// の後ろには、ユーザーID、アドレス、ポート、クエリパラメーターが含まれますクリップボードからインポート
サブスクリプションデータ複数行の共有リンク、またはリンク一覧全体をエンコードしたテキストサブスクリプションURLを使います。データ本文のみの場合は、対応形式でインポートしてください

HTTPSで始まるからといって、サブスクリプションURLとは限りません。アカウント管理ページや決済ページ、ログインページもHTTPSを使用します。ブラウザーのアドレス欄にあるアカウントページのURLではなく、提供元が「サブスクリプションURL」と明記したアドレスをコピーしてください。URLにアクセストークンが含まれる場合があるため、完全なアドレスは秘密情報として扱いましょう。

サブスクリプションURLを保存サブスクリプションデータを取得リンク一覧をデコードノードパラメーターを解析サブスクリプショングループに登録

2. v2rayNデスクトップ版:グループを追加してサブスクリプションを更新

v2rayNのサブスクリプション管理は、メインウィンドウの「サブスクリプショングループ」メニューにあります。日本語表示での一般的な操作手順は「サブスクリプショングループ」→「サブスクリプショングループ設定」です。バージョンによってメニュー名が多少異なる場合がありますが、名前・URL・更新方法を設定するグループ一覧を探してください。サーバーを手動追加する画面ではありません。

  1. URL全体をコピーします。提供元からサブスクリプションURLをコピーし、クエリパラメーターを含めてください。前後に引用符や説明文を付けたり、改行を含めたりしないでください。
  2. サブスクリプショングループを新規作成します。「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、「追加」を選択します。名前は「普段使い」などとし、URL欄にアドレス全体を貼り付けます。特に指定がない項目は、まず初期値のままにしてください。
  3. 設定を保存します。確定してメインウィンドウに戻ります。この時点ではサブスクリプションの登録先を作成しただけなので、一覧が空でも故障とは限りません。
  4. 設定を取得します。「サブスクリプショングループ」→「すべてのサブスクリプションを更新(プロキシを使用しない)」を選択します。特定のグループだけを更新する場合は、画面に表示される対象グループの更新項目を選び、ほかの登録先を誤って変更しないようにしてください。
  5. 更新結果を確認します。作成したグループに切り替え、ノード名とプロトコルが表示されているか確認してから、使用するノードを選択します。「更新成功」と表示されても、すべてのノードに接続できるとは限りません。

サブスクリプションサーバーへのアクセスにプロキシが必要で、すでに利用可能なノードがある場合は、「すべてのサブスクリプションを更新(プロキシを使用)」を試せます。必須ではありません。使えるプロキシがない状態でプロキシ経由の更新を行うと、失敗することがあります。まずプロキシなしで試し、エラー内容に応じて更新方法を切り替えてください。一度に変更する条件は一つにしましょう。

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

v2rayNGはXrayコアを使用します。インポートはクライアント画面で行い、その後の接続はコアが処理します。サブスクリプションを追加する段階で接続サービスを起動したり、VPN接続の権限を許可したりする必要はありません。プロキシ接続を開始するときに、システムから必要な許可を求められます。

  1. サブスクリプション管理を開きます。メイン画面右上の「⋮」メニューから「サブスクリプション設定」を選択します。バージョンによっては「サブスクリプショングループ設定」と表示されます。
  2. サブスクリプションを追加します。サブスクリプション画面で「+」をタップし、メモとサブスクリプションURLを入力して、確定または保存アイコンをタップします。単独の vless:// リンクをサブスクリプションURL欄に入力しないでください。
  3. メイン画面に戻って更新します。「⋮」→「サブスクリプションを更新」をタップします。「サブスクリプションを更新(プロキシを使用しない)」と「サブスクリプションを更新(プロキシを使用)」が表示される場合は、サブスクリプションサーバーに直接接続できるかどうかで選んでください。
  4. 設定を選んで接続します。ノード一覧が表示されたことを確認して一つ選び、接続ボタンをタップします。初回接続時は、システムのVPN許可画面を確認して承認してください。

VMessまたはVLESSの単独の共有リンクを受け取った場合は、リンクをコピーしてからメイン画面で「+」→「クリップボードからインポート」を選択します。QRコードからのインポートは、コードにノードリンクが含まれている場合に利用できます。アカウントページのQRコードがノード設定とは限りません。

サブスクリプションURLをインポート

データの先頭
通常は https://
デスクトップ版のメニュー
サブスクリプショングループ → サブスクリプショングループ設定
Android版のメニュー
⋮ → サブスクリプション設定
次の操作
保存後にサブスクリプションを更新

同じ提供元から設定変更を継続して取得する場合に適しています。

ノードリンクをインポート

データの先頭
vmess:// または vless://
デスクトップ版のメニュー
メインウィンドウ → クリップボードからインポート。一般的なショートカットは Ctrl+V
Android版のメニュー
+ → クリップボードからインポート
次の操作
インポートしたノードを選択して接続をテスト

一度だけインポートする場合に適しています。更新可能なサブスクリプションの登録先は作成されません。

4. Base64形式のサブスクリプション:外側の一覧と内側のパラメーターは別物

一般的なサブスクリプションの応答では、複数の共有リンクを行ごとに連結し、テキスト全体をBase64でエンコードします。クライアントがURLにアクセスすると、外側のテキストをデコードしてリンク一覧を取得し、各行のプロトコルを判別します。デコードせず、URI一覧をそのまま返すサービスもあります。また、特定のクライアント専用形式もあるため、すべてのサブスクリプションがBase64形式とは限りません。

3バイト
Base64の完全な入力ブロックあたり
4文字
対応するBase64エンコード後の長さ
443
HTTPSのデフォルトポートであり、ノード固有のポートではありません

Base64はエンコード方式であり、暗号化ではありません。標準形式では +、/、末尾のパディング文字 = が使われることがあります。URLセーフ形式では、前者2文字を - と _ に置き換え、実装によってはパディングを省略します。イコールの有無だけでは、データが有効かどうか判断できません。コピー時に文字を置き換えたり、末尾を削除したりしないでください。

確認の順序:まず本文を確認し、その後エンコードを調べる

「有効なノードがありません」と表示されたら、まず提供元がv2rayNまたはv2rayNGで読み込める形式を提供しているか確認してください。リンク一覧を取得できたと確認できてから、データの欠落やエンコード、プロトコルの対応状況を調べましょう。同じテキストに何度もBase64デコードを試すのは避けてください。

5. VMess・VLESS共有形式:失ってはいけない項目

一般的なVMess共有リンクは、vmess:// の後ろにBase64でエンコードしたJSONを含みます。以下はデコード後の説明用サンプルです。予約済みのサンプルドメインと架空のIDを使用しているため、実際の接続には使えません。v はこの共有形式のバージョンを表し、クライアントやサーバーコアのバージョンではありません。

{
  "v": "2",
  "ps": "サンプルノード",
  "add": "node.example.invalid",
  "port": "443",
  "id": "12345678-1234-4234-8234-123456789abc",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "node.example.invalid",
  "path": "/ws",
  "tls": "tls",
  "sni": "node.example.invalid"
}

add と port はサーバーのアドレスとポート、id はユーザーID、net は通信方式を指定します。サンプルのWebSocketパスは /ws、TLSのサーバー名は node.example.invalid です。これらの値はサーバーの実際の設定と一致させる必要があります。「よくある書き方」を根拠に変更しないでください。

VLESSの一般的な共有形式は、通常のURIに近い構造です。以下も構造を確認するための例にすぎません。実際の設定には、提供元が生成した完全なリンクを使用してください。

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=node.example.invalid&path=%2Fws&sni=node.example.invalid#サンプルノード

同じプロトコル名でも、どの組み合わせでも使えるとは限りません。v2rayNGはXrayコア、v2flyNGはV2Flyコアを使用し、v2rayNで利用できる機能も選択したコアによって異なります。パラメーターが非対応の場合は、セキュリティ項目を削除して無理にインポートするのではなく、クライアントとコアの対応状況を確認してください。

6. サブスクリプションの更新失敗・ノードが空・接続できない場合の対処

原因を調べるときは、「サブスクリプションの取得」「ノードの解析」「サーバーへの接続」の3段階に分けてください。タイムアウトなら、まずリクエスト経路を確認します。更新成功と表示されてもノードがない場合は、応答形式を確認してください。ノードが表示されても接続できない場合は、サーバーのパラメーターとネットワークを調べます。URLを変更しても、すべての接続障害が解決するわけではありません。

サブスクリプションを保存したのに、一覧が空なのはなぜですか?

保存すると登録先が記録されますが、設定はまだ取得されていません。v2rayNではメインウィンドウに戻り、「サブスクリプショングループ」メニューから更新します。v2rayNGではメイン画面に戻り、「⋮」メニューからサブスクリプションを更新します。その後、現在のグループの絞り込み設定を確認してください。別のグループに登録されたノードが表示されていない場合があります。

更新時にタイムアウトします。プロキシ経由に切り替えるべきですか?

まずプロキシを使わずに更新してください。現在のネットワークからサブスクリプションサーバーに接続できず、利用可能なノードがすでにある場合は、プロキシ経由に切り替えます。使えるノードがない場合は、ネットワーク、システム時刻、URL全体が正しく入力されているかを確認してください。空のプロキシ経路だけに頼って更新しようとしないでください。

リクエストは成功したのに、読み込めるノードがないと表示されるのはなぜですか?

コピーしたのがアカウントページではなく、サブスクリプション用のURLであることを確認し、使用するクライアントに合った形式を提供元から選び直してください。クライアントのログに、非対応プロトコルや解析失敗の表示がないかも確認します。ログインページや期限切れの案内、空の本文が返されている場合、再エンコードしても有効なサブスクリプションにはなりません。

ノードをインポートできたのに、Webページが開けないのはなぜですか?

まずノードを選択して接続を開始し、実行ログを確認します。デスクトップ版では、アプリからシステムプロキシまたは設定済みの別の通信制御方法を利用できるようにしてください。Android版ではVPNサービスが起動していることを確認します。続けてサーバーアドレス、ポート、TLSのサーバー名、通信パスを確認してください。遅延テストの結果だけで、すべての通信が使えると判断しないでください。

確認を頼むために、サブスクリプションURLを他人に送ってもよいですか?

完全なURL、ユーザーID、ノード共有リンクを公開しないでください。問い合わせるときは、クライアントのバージョン、更新方法、個人情報を伏せたエラー情報だけを伝えます。サブスクリプションURL全体を公開してしまった場合は、提供元のリセット機能でトークンを再発行し、クライアントに保存したURLも更新してください。

更新前に現在使える設定を記録し、更新後はまずグループの内容を確認してから、一つずつ接続をテストしてください。ログはDNS名前解決の失敗や接続タイムアウト、TLSハンドシェイクの異常などの特定に役立ちます。スクリーンショットを共有する前に、サブスクリプショントークン、サーバー情報、ユーザーIDを隠してください。詳しい手順はサブスクリプションのインポートガイド、接続に関する問題はトラブル対処FAQをご覧ください。