vmess://・vless://共有リンクの使い方|単一ノードリンクとサブスクリプションURLの違い

vmess://・vless://リンクの仕組みと、単一ノードリンク・サブスクリプションURLの違いを解説。v2rayN・v2rayNGでのインポート方法や更新手順も紹介します。

この記事の要点

まずリンクの接頭辞を確認し、種類に合った方法でインポートしましょう。vmess://・vless://は通常、単一ノードを表すためクリップボードからインポートします。サービス提供元のHTTPSサブスクリプションURLは、サブスクリプショングループに登録してから更新します。v2rayNやv2rayNGを初めて設定する方向けに、リンクの見分け方や主要項目の確認方法、「インポート成功」と「通信可能」の違いを解説します。

単一ノードリンクとサブスクリプションURLの違い

単一ノードの共有リンクには、接続に必要な設定がテキスト形式でまとめられています。通常、サーバーアドレス、ポート、ユーザーID、通信方式、安全設定などが含まれます。vmess://またはvless://のリンクを1つコピーすると、通常はノード設定が1件インポートされます。対応する共有リンクを複数まとめてコピーすれば、クライアントによっては一括インポートできますが、サブスクリプションが作成されるわけではありません。

サブスクリプションURLは、設定の一覧を取得するためのネットワーク上の窓口です。クライアントがURLにアクセスし、提供元から返された内容を解析してノード一覧を作成します。ノードが1件だけの場合も複数の場合もあります。違いは件数ではなく、あとから再取得できる更新元があるかどうかです。

サブスクリプションURL

おすすめ

サブスクリプショングループに登録すると、更新時にノードを再取得できます。提供元がアドレスやポートを変更しても、通常は再更新するだけで反映でき、ノードを1件ずつ作り直す必要はありません。

おすすめの用途:互換性のあるサブスクリプションが提供され、ノード一覧を継続的に管理したい場合。

単一ノードの共有リンク

クリップボードから現在の設定をインポートします。提供元が設定を変更しても自動では変わりません。古い設定が使えなくなった場合は、新しいリンクを取得するか手動で修正してください。

おすすめの用途:一時的なテスト、自分で構築したノード、固定の接続設定を1つだけ保存したい場合。

https://で始まるURLがすべてサブスクリプションとは限りません。ログインページやプラン案内、説明ページもHTTPSを使用しますが、返されるのはウェブページであり、クライアントが必要とする設定データではありません。提供元のページで「サブスクリプションURL」と明記され、使用中のクライアントに対応したURLをコピーしてください。ブラウザーのアドレスバーから直接コピーするのは避けましょう。

結論:ノード数ではなく、リンクの種類に合った方法を選ぶ

vmess://またはvless://を受け取ったら、クリップボードからのインポートを試します。提供元がサブスクリプションURLとして案内している場合は、サブスクリプショングループを作成してください。サブスクリプションURLを単一ノード用の画面に貼り付けると、「設定を認識できない」と表示されることがあります。

vmess://の仕組み:Base64は形式の変換であり、暗号化ではない

一般的なVMess共有形式では、vmess://に続く文字列がBase64でエンコードされており、デコードすると通常はJSONになります。これはクライアント間で設定を受け渡すための形式で、V2Rayコアの完全な設定ファイルではありません。また、実装によって細部が異なる場合があります。接頭辞だけで通信方式を判断することはできません。Base64もアカウント情報を保護する暗号化ではありません。

以下は、一般的な形式をデコードした学習用の例です。予約済みのサンプルドメインを使用しており、接続先としては使えません。項目を確認するためのもので、このJSONをそのままvmess://リンクとして貼り付けてインポートすることはできません。

{
  "v": "2",
  "ps": "VMess-WS-TLS サンプル",
  "add": "node.example.com",
  "port": "443",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "node.example.com",
  "path": "/gateway",
  "tls": "tls",
  "sni": "node.example.com"
}

インポートできても接続できない場合は、まずノードの編集画面でこれらの項目を確認してください。リンクの欠落や途中の改行、引用符が全角に置き換わっていることなどが、解析エラーの原因になります。実際のリンクを公開オンラインデコードツールに入力しないでください。確認する際はクライアント内で設定を表示し、他の人に相談するときはユーザーIDや実際のサーバー情報を隠しましょう。

vless://の仕組み:クエリパラメーターで通信方式と安全設定を指定

VLESS共有リンクは、URLに似た形式が一般的です。ユーザーIDは@の前、接続先アドレスとポートはその後に記載され、疑問符の後に通信パラメーター、シャープ記号の後にメモが続きます。以下も実際には接続できない学習用アドレスで、VLESS、TCP、TLSの組み合わせを示しています。

vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=node.example.com#VLESS-TLS-demo
項目値の例確認ポイント
接続先ポート443サーバーの待ち受けポートと一致している必要があります。よく使われるポート番号に、独自の判断で置き換えないでください。
encryptionnoneこの例ではVLESSプロトコル自体の暗号化を使用していませんが、TLSが無効という意味ではありません。
securitytlsTLSの有効化を表します。他のセキュリティ方式を使う場合は、対応するパラメーターを設定してください。
typetcpこの共有形式で指定されている通信方式を表します。名称だけを変更しても、サーバー側の通信方式は切り替わりません。
sninode.example.comTLSサーバー名を指定します。サービス提供元が案内する値と一致させてください。

リンクでWebSocketを使う場合は、pathやhostなどのパラメーターも関係します。REALITYを使う場合は、公開鍵、サーバー名、short IDなどの設定とクライアントの対応状況を確認してください。TLSの例にあるパラメーターを、別のセキュリティ方式へそのまま流用しないでください。特殊文字を含むパラメーターは通常URLエンコードされます。たとえばパスのスラッシュが%2Fと表示されることがあります。クライアントが解析できるよう、元の文字列を省略せずに保ってください。

v2rayNでインポートする:クリップボードとサブスクリプショングループを使い分ける

デスクトップでは、完全なリンクを取得してからクライアントを操作します。バージョンによって画面の表記は多少異なりますが、ここでは一般的なメニューを紹介します。「クリップボードからインポート」と「サブスクリプショングループの設定」という2つの入口を使い分けることがポイントです。

  1. 単一ノードをインポート:vmess://またはvless://のリンク全体をコピーし、v2rayNの「サーバー」→「クリップボードから一括URLをインポート」を選択します。メイン画面でこのコマンドにCtrl+Vのショートカットが表示されているか確認する方法もあります。
  2. ノードを確認:一覧にノードが追加されたことを確認し、編集画面でアドレス、接続先ポート、通信方式、TLS設定をチェックします。メモの表示だけで判断しないでください。
  3. サブスクリプションを追加:「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、新しいグループを追加します。メモを入力し、提供元のサブスクリプションURLをアドレス欄に貼り付けて保存します。
  4. 一覧を取得:「サブスクリプショングループ」メニューから対象グループの更新コマンドを選択します。一般的なバージョンでは、「現在のサブスクリプションを更新(プロキシを使用しない)」と「現在のサブスクリプションを更新(プロキシを使用)」が分かれています。現在のネットワークからサブスクリプションサービスにアクセスできるかに応じて選んでください。
  5. 接続を開始:使用するノードを選択してアクティブサーバーに設定し、必要に応じてシステムプロキシを設定します。インポートや更新が完了しただけでは、アプリの通信がプロキシ経由になったとは限りません。

プロキシ経由で更新するには、ローカルに動作中のプロキシ経路が必要です。初回設定でノード一覧が空の場合、プロキシ経由の更新を選んでも解決しないことがあります。まず現在のネットワークからサブスクリプションURLにアクセスできるか確認し、必要に応じて使用可能なノードを経由して更新してください。エラーを消すために設定をすべて何度も削除するのは避けましょう。

443
この記事の例における接続先TLSポート
10808
ローカルの待ち受けポートの例。実際の値はクライアント設定を確認
0
この記事のVMess例で使用するalterId

この3つの数値はそれぞれ異なる階層の設定です。接続先の443はサーバーへの接続に使い、ローカルの待ち受けポートはローカルアプリからの接続に使います。alterIdはVMessの設定項目です。アプリでローカルプロキシを手動指定する場合は、「設定」→「パラメーター設定」で実際の待ち受けポートとプロトコルを確認してください。例にある10808が、すべてのバージョンで変わらない既定値だと思い込まないでください。

v2rayNGでインポートし、両方の端末でサブスクリプションを管理する

Android版のv2rayNGはXrayコアを使用しますが、共有リンクを完全にインポートできるかどうかは、バージョン、パラメーター形式、機能の対応状況によって異なります。v2flyNGはv2flyコアを使用するため、Xray固有のパラメーターすべてに対応しているとは限りません。リンクを受け取ったら、提供元が案内するクライアントの対応範囲を確認してください。

  1. 単一ノードをインポート:リンクをコピーしてv2rayNGを開き、右上の「+」→「クリップボードからインポート」をタップします。一覧にノードが追加されたことを確認してください。
  2. サブスクリプションを追加:サイドメニューから「サブスクリプショングループの設定」を開き、「+」をタップします。グループのメモとサブスクリプションURLを入力して保存してください。
  3. 更新を実行:メイン画面に戻り、右上のメニューから「サブスクリプションを更新」を選択します。完了後、対象グループにノードが表示されたことを確認してください。すべてのグループを更新する機能がある場合は、更新対象の範囲を確認しましょう。
  4. 接続を確立:ノードを選択して開始ボタンをタップします。初回はシステムの案内に従ってVPN接続を許可してください。その後、アイコンの変化だけで判断せず、実際に使用するアプリで通信を確認します。

管理方法:同じサブスクリプションを端末ごとに更新

デスクトップ:v2rayN
  • サブスクリプショングループの設定に配布元URLを保存します。
  • 更新後、使用中のノードが引き続き一覧にあるか確認します。
  • アプリの用途に合わせてシステムプロキシなどの通信経路を設定します。
Android:v2rayNG
  • サービス提供元が複数端末での利用を許可していることと、サブスクリプション形式に互換性があることを確認します。
  • サブスクリプションを個別に追加し、端末上で更新します。
  • VPNの権限とアプリごとの設定が意図どおりか確認します。

同じサブスクリプションURLを使っても、リアルタイムに同期されるわけではありません。更新するタイミング、使用中のノード、ルーティング、プロキシ設定は端末ごとに異なります。

サブスクリプション更新の仕組み:一覧を再取得する機能で、接続を自動修復するものではない

サブスクリプションを更新すると、サーバーから内容が再取得され、クライアント側のグループ設定に応じてノード一覧が更新されます。既存ノードが置き換わったり、名前が変わったり、削除されたりする場合があります。サブスクリプション内のノードを手動で編集しても、次回の更新で上書きされることがあります。自分で構築した設定を長期保存する場合は、独立した手動グループに登録し、元のパラメーターもバックアップしておきましょう。

よくある問題への対処:インポート、更新、通信の順に確認

「リンクの認識」「ノードの取得」「接続の確立」「アプリ通信のプロキシ経由化」は別々の段階です。まずどの段階で止まっているか特定し、該当する設定を確認しましょう。プロトコル、DNS、ポート、プロキシモードを一度に変更するより、原因を見つけやすくなります。

リンクをコピーしたのに、インポート可能な設定がないと表示されるのはなぜ?

まずリンクがvmess://またはvless://で始まっているか確認し、引用符、説明文、省略記号が混ざっていないかチェックしてください。HTTPSのサブスクリプションURLをコピーした場合は、「サブスクリプショングループの設定」に追加して更新します。単一ノード用の画面に貼り付けないでください。

サブスクリプションの更新に成功したのに、必要なノードが見つからないのはなぜ?

まず対象のグループに切り替えるか、一覧の絞り込みを解除し、更新ログに表示された解析件数を確認してください。内容が空の場合は、アカウントの状態とサブスクリプション形式を提供元に確認しましょう。ログインページのURLをサブスクリプションURLと間違えたり、一覧が空だからといって接続先ポートを変更したりしないでください。

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

まず、選択中のノードが有効で、コアが正常に起動していることを確認します。デスクトップではシステムプロキシの設定と、アプリがその設定に従うかを確認してください。AndroidではVPN接続の確立状況と、アプリごとのルールで対象アプリが除外されていないかを確認します。そのうえで、ログに表示されるDNS、TLS、接続タイムアウトのエラーを確認しましょう。

QRコードとテキストリンクは別のノード?

QRコードはテキストを載せる方法の一つで、中身は単一ノードのリンクの場合も、サブスクリプションURLの場合もあります。読み取ったあとも内容に合った方法でインポートしてください。うまく読み取れない場合は、提供元から元のテキストを入手しましょう。解像度の低いスクリーンショットでは内容が欠けることがあります。

VLESSにすればVMessより必ず速くなる?

プロトコル名だけでは判断できません。まずサーバー設定に合った完全な構成で接続し、同じネットワーク上で近い時間帯に実際の通信を比較してください。回線の混雑、通信方式、サーバーの負荷などが結果に影響します。リンクの接頭辞を書き換えても、これらの条件は改善しません。

設定後は、リンクの種類が正しいこと、ノードのパラメーターが揃っていること、アプリに通信を適用する方法が明確であることの3点を確認してください。ノードの変更を継続的に反映するならサブスクリプションを管理し、固定の接続を使うなら単一ノード設定を保存します。両方を併用することもできますが、更新時に古い記録と取り違えたり、手動変更を上書きしたりしないよう、グループを分けて管理しましょう。

V2Rayクライアントをダウンロード