vmess:// と vless:// は通常、それぞれ1つのノードを表します。一方、サブスクリプションURLは複数のノードをまとめて取得・更新するためのものです。共有リンクやサブスクリプションURLを初めて受け取り、どこから追加すればよいか分からない方に向けて、形式の見分け方、デスクトップ・Androidでのインポート、購読更新、ノード切り替え、よくあるエラーへの対処法を解説します。
共有リンクとサブスクリプションURLの主な違い
vmess:// と vless:// はどちらも設定を伝える形式ですが、含まれるプロトコル項目は異なります。VMessの共有情報は通常エンコードされており、クライアントでデコードすると、サーバーアドレス、ポート、ユーザー識別子、通信方式、TLS設定、備考などの項目になります。VLESSは標準的なURIに近く、ユーザー識別子はアドレス本体に、通信方式、セキュリティ、SNI、フィンガープリントなどのパラメータはクエリ文字列に記述されます。
この種のリンクは通常、1つのノードに対応します。リンクをクライアントにコピーすると、クライアントがローカルにサーバー設定を1件作成します。後から元のリンクが変更されても、ローカル設定は自動更新されません。新しいリンクを取得して再度インポートするか、既存の設定を直接編集する必要があります。
サブスクリプションURL自体は、通常、特定のノードを直接記述するものではありません。クライアントがURLにアクセスすると、複数の設定を含むレスポンスを受け取り、それをノード一覧に変換します。以後「サブスクリプションを更新」を実行すると、クライアントがURLへ再度リクエストを送り、サブスクリプションのグループに属するノード名、サーバーパラメータ、利用可能な項目を更新します。
単一ノードの共有リンク
VMessまたはVLESSの設定を1件ずつインポートし、ノードのパラメータを現在のクライアントに直接保存します。
向いている用途:一時的なテスト、単一ノードの移行、手動管理
サブスクリプションURL
おすすめ複数のノードをまとめて取得し、その後は更新操作でサーバー一覧やパラメータの変更を同期できます。
向いている用途:日常利用、複数デバイスでの同期、頻繁なノード調整
QRコードの内容
QRコードは通常、共有リンクを画像化したものにすぎません。スキャン後はVMess、VLESS、または対応する別の設定として解析されます。
向いている用途:PC画面からAndroid端末へのインポート
| 比較項目 | 共有リンク | サブスクリプションURL |
|---|---|---|
| 代表的な先頭部分 | vmess://、vless:// |
https:// |
| 1回のインポート結果 | 通常は1ノード | 1ノードまたは複数ノードの場合がある |
| 後からパラメータが変更された場合 | 再インポートまたは手動編集 | サブスクリプションを更新 |
| クライアント内での所属先 | ローカルのサーバー一覧 | 指定したサブスクリプショングループ |
形式を確認してからインポート先を選ぶ
最も簡単な確認方法は、文字列の先頭を見ることです。vmess:// または vless:// で始まる完全な文字列は、「クリップボードからインポート」などの入口を使用します。通常のHTTPSアドレスは「サブスクリプショングループ設定」に追加します。サブスクリプションURLを単一ノードのインポート欄に貼り付けたり、VLESSの共有リンクをサブスクリプションURLとして保存したりしないでください。
リンクは完全な状態でコピーしてください。VLESSのクエリパラメータは通常 & で区切られ、末尾の # 以降にはノードの備考が入る場合があります。チャットアプリによる自動改行や、テキストの一部だけを選択する操作によって、インポート後に通信方式やセキュリティ項目が欠落することがあります。VMessの内容は直接読みにくい場合でも、末尾の文字を削除してはいけません。
単一ノードの構造例。接続には使用できません:
vmess://BASE64_ENCODED_CONFIG
vless://[email protected]:443?encryption=none&security=tls&type=ws&host=edge.example.com&path=%2Fconnect#サンプルノード
サブスクリプションURLの構造例:
https://sub.example.com/client/list
例のVLESS項目は、いくつかの部分に分けて確認できます。ユーザー識別子は @ の前、サーバーとポートはその後ろにあります。security=tls はセキュリティ層、type=ws はWebSocket通信を示し、host と path は対応する通信パラメータです。実際の設定ではTCP、gRPCなど別の組み合わせが使われる場合もあります。クライアントはリンクの内容に従って解析し、通信方式を別の値へ勝手に変更しないでください。
- 先頭が
vmess://:VMessの単一ノードとしてインポートします。 - 先頭が
vless://:VLESSの単一ノードとしてインポートします。 - 先頭が
https://で、サブスクリプションと明記されている:サブスクリプショングループに追加します。 - 複数行の共有リンクが含まれるテキスト:クライアントの一括クリップボードインポートを使用します。
- サーバー、ポート、ユーザー識別子などの項目だけが個別に渡された場合:手動でサーバーを追加し、URIを自分で組み立てないでください。
v2rayNでVMess・VLESSリンクをインポートする
以下はv2rayN 7.xのデスクトップ画面に基づく手順です。マイナーバージョンによってメニュー名が変わる場合がありますが、操作の流れは同じです。まず完全な共有リンクをシステムのクリップボードにコピーし、クライアントにクリップボードの内容を解析させます。複数のリンクを一度にコピーする場合は、各リンクを1行ずつにしてください。
- 完全な
vmess://またはvless://リンクをコピーし、リンクの前後に説明文を付けないでください。 - v2rayNを開き、「サーバー」→「クリップボードから一括URLインポート」に進みます。
- サーバー一覧に追加されたプロトコル、別名、アドレス、ポートを確認し、インポート件数がコピーしたリンク数と一致することを確認します。
- 使用するノードを選択し、Enterキーを押すか、右クリックメニューからアクティブサーバーに設定します。
- 「システムプロキシ」に進み、「システムプロキシを自動設定」を選択してから、インターネット接続が必要なプログラムでテストします。
インポートに成功しても、利用が開始されたとは限りません。v2rayNのサーバー一覧には複数の設定を保存できますが、現在のコアで動作するのはアクティブサーバーだけです。ブラウザなどシステムプロキシに従うプログラムでは、システムプロキシも適切な状態にする必要があります。パラメータ設定でローカルポートを変更した場合は、「設定」→「パラメータ設定」に表示されるポートを使用し、10808と決めつけないでください。
ノードをインポートしてすぐエラーが出た場合は、まず「更新を確認」ではなくコアのログ領域を開き、アドレス解決、接続タイムアウト、認証失敗、ポート競合などの情報を確認します。VMessのユーザー識別子、alterId、セキュリティパラメータはサーバー側と一致させる必要があります。VLESSの通信方式、TLS、SNI、Reality公開鍵などの項目も完全に一致していなければなりません。ノードの備考だけを変更しても接続には影響しませんが、これらのプロトコル項目を勝手に変更すると接続結果が変わります。
v2rayNにサブスクリプションを追加してノードを更新する
サブスクリプションのインポートは「クリップボードから一括URLインポート」から始めるのではなく、まずサブスクリプショングループを作成します。グループには名前、サブスクリプションURL、更新オプションを保存でき、更新後のノードの所属先も明確になります。デスクトップとAndroidで同じサブスクリプションを使う場合も、更新結果を照合しやすいよう、同じグループ備考を設定することをおすすめします。
- 完全なサブスクリプションURLをコピーし、v2rayNの「サブスクリプショングループ」→「サブスクリプショングループ設定」を開きます。
- グループを追加し、備考に識別しやすい名前を入力します。URLをサブスクリプションURL欄に貼り付けて保存してください。
- メイン画面に戻り、「サブスクリプショングループ」→「すべてのサブスクリプションを更新」に進みます。ネットワーク環境上、既存のプロキシが必要な場合は、プロキシ経由で更新する入口を選択します。
- ステータスバーに更新結果が表示されるまで待ち、新しいノードが先ほど作成したグループに入っていることを確認します。
- 更新後の一覧からアクティブサーバーを選び、必要に応じてシステムプロキシまたはTUNを有効にします。
サブスクリプション更新では、クライアントがリモートの一覧をリクエストします。タイムアウトが表示された場合は、現在のネットワークからURLにアクセスできるか確認してください。レスポンスを解析できないと表示された場合は、URLのコピー漏れ、現在のバージョンが認識できない形式、ログインページが返されたことなどが考えられます。同じURLを何度も追加しないでください。サーバー一覧に同名のグループや重複ノードが増える原因になります。
おすすめ構成:デスクトップとAndroidで同じサブスクリプションを使用
デスクトップ版 v2rayN
- 「サブスクリプショングループ設定」でURLを保存
- 更新後にレイテンシを測定してアクティブノードを選択
- 用途に応じてシステムプロキシまたはTUNを選択
Android版 v2rayNG
- 同じサブスクリプションURLとグループ備考を保存
- 必要に応じてノード一覧を手動更新
- アプリごとの要件に合わせてアプリ別プロキシを設定
両端末は同じソースからノードを取得しますが、アクティブノード、ルーティングルール、ローカルプロキシの状態はそれぞれの端末に個別保存され、サブスクリプション経由では同期されません。
サブスクリプションの更新によって、ノードが追加、削除、名前変更される場合があります。更新前にサブスクリプションのノードのサーバーパラメータを手動変更しても、次回の更新でリモートの内容に上書きされる可能性があります。実験用の設定を残したい場合は、ローカルノードとして複製して備考を変更してください。ルーティングルール、システムプロキシモード、クライアントの環境設定は通常、一般的なノードサブスクリプションには含まれないため、個別に設定する必要があります。
v2rayNGでクリップボードからインポートし、サブスクリプションを追加する
v2rayNGはXrayコアで一般的なVMess・VLESS設定を処理します。v2rayNG 1.10.xの画面を例にすると、単一ノードのリンクとサブスクリプションURLは引き続き別の入口から追加します。初回接続時には、システムからローカルVPN接続の確立を求められます。これはトラフィックをクライアントの処理経路に通すために必要な権限手順です。
共有リンクを1件インポートする
- 別のアプリで完全な共有リンクをコピーします。
- v2rayNGを開き、右上の「+」をタップして「クリップボードから設定をインポート」を選択します。
- インポートが完了したら、追加されたノードをタップして現在の設定にします。
- メイン画面の接続ボタンをタップし、システムの権限確認で承認します。
- 接続状態とリアルタイム通信量を確認します。アクセスできない場合はログを開き、具体的なエラーを確認してください。
サブスクリプションを追加して更新する
- 左上のメニューを開き、「サブスクリプショングループ設定」に進みます。
- 「+」をタップし、グループ備考を入力してサブスクリプションURLを貼り付け、保存します。
- メイン画面に戻り、右上のメニューを開いて「サブスクリプションを更新」を実行します。
- 更新後にノード数を確認し、ノードを1つ選択してから接続を開始します。
クリップボードに説明文とリンクが同時に含まれていると、自動認識に失敗する場合があります。いったん内容をプレーンテキストの編集欄に貼り付け、プロトコルの先頭からリンク末尾までだけを残して再度コピーしてください。VLESSリンクのクエリパラメータは勝手に削除できません。特に security、type、sni、pbk、sid、path など、サーバー側の通信設定に関わる項目に注意してください。
v2flyNGはv2flyコアを使用するため、VMessなど互換性のある既存設定に適しています。インポート前に、プロトコルと通信パラメータが現在のコアでサポートされているか確認してください。新しいVLESS拡張パラメータを含む設定は、まずv2rayNGで元のリンクをそのままインポートすることをおすすめします。解析を通すために未知の項目を削除しないでください。
サブスクリプション、ノード、ルーティングは別の設定階層
共有リンクは「サーバー設定をどう記述するか」を解決し、サブスクリプションは「設定をまとめて取得・更新する方法」を解決します。ルーティングは「どのリクエストをどの出口へ渡すか」を決めるものです。3つは異なる階層にあります。VLESSノードをインポートしてもグローバルプロキシは自動的に有効にならず、サブスクリプションを更新しても新しいノードが自動的にアクティブサーバーになるわけではありません。
v2rayNでは、システムプロキシは主にOSのプロキシ設定に従うプログラムに影響します。TUNはより広い範囲のトラフィックを取り込みますが、追加のシステム権限が必要になる場合があります。v2rayNGはローカルVPNインターフェースでトラフィックを受け取り、アプリ別プロキシと組み合わせて処理経路に入れるアプリを決められます。モードはVMessやVLESSの名称ではなく、実際に対象とするアプリの範囲に応じて選択してください。
ルーティングルールは通常、ドメイン、IP、ポート、プロトコルなどで照合し、直結、プロキシ、ブロックのいずれかを決定します。ノードへの接続に成功しても、それはクライアントとサーバー間の経路が確立したことを示すだけです。特定のWebサイトがそのノードを経由するかどうかは、現在のルーティングモード、DNSの結果、ルールの照合順序にも左右されます。
- ノードを起動できない:サーバーアドレス、ポート、ユーザー識別子、通信層、セキュリティ層のパラメータを確認してください。
- ノードは起動したのにブラウザがプロキシを通らない:システムプロキシ、TUN、またはAndroid側の接続状態を確認してください。
- 一部のドメインだけアクセスできない:ルーティングルール、DNS設定、ルールの順序を確認してください。
- サブスクリプション更新は成功したのにノードが変わらない:現在のグループを更新しているか確認し、ノード名と件数を比較してください。
- 更新後に元のノードが消えた:そのノードがサブスクリプション管理の対象か確認してください。リモート一覧から項目が削除されると、ローカルグループも更新に合わせて変わります。
問題を切り分ける際は、一度に1つの変数だけを変更してください。まずルーティングを基本モードに保ち、パラメータが完全なノードを1つ選んで接続をテストします。経路が正常だと確認できてから、カスタムルーティング、リモートDNS、アプリ別プロキシを有効にします。ノード、コア、DNS、ルーティングを同時に変更すると、ログのエラーと具体的な変更を結び付けにくくなります。
よくある疑問とエラー対処
インポートの問題の多くは、形式に合わない入口を使った、リンクのコピーが不完全、サブスクリプションのリクエスト失敗、ノードは取り込めたが有効化されていない、の4種類に分類できます。まずテキストの種類とメニューの経路を確認し、次にクライアントの状態とコアのログを確認すると、何度も削除や再インストールを繰り返すより早く解決できます。
vless://をサブスクリプション設定に貼り付けると、なぜ更新に失敗しますか?
通常、それはサブスクリプションURLではなく単一ノードの共有リンクだからです。誤ったグループを削除し、完全なリンクをコピーして、v2rayNでは「サーバー」→「クリップボードから一括URLインポート」、v2rayNGでは「+」→「クリップボードから設定をインポート」を使用してください。
サブスクリプションの更新は成功したのに、なぜ元のノードのままなのですか?
まず対象のグループを更新しているか確認し、ノード数、備考、サーバーポートを比較してください。リモートの内容に変更がなければ、ローカル一覧も変わりません。同名のグループがある場合は重複項目を削除してから再度更新してください。
インポートは成功と表示されるのに、Webページを開けない場合はどうすればよいですか?
まず新しいノードをアクティブサーバーに設定し、システムプロキシ、TUN、またはAndroid側の接続ボタンが有効か確認します。続いてログに接続タイムアウト、ドメイン解決失敗、ローカルポートの競合がないか確認してください。
サブスクリプションの更新がタイムアウトしました。URLを再追加する必要がありますか?
通常は必要ありません。まずURLに余分な空白がないか確認し、現在利用できるプロキシ経由での更新を試してください。それでもタイムアウトする場合は、レスポンスの状態と発生時刻を記録し、同じサブスクリプションを連続して追加して重複グループを作らないようにしてください。
同じサブスクリプションをv2rayNとv2rayNGで使用できますか?
レスポンス形式と含まれるプロトコル設定が各クライアントでサポートされていれば、それぞれに追加できます。両端末はアクティブノード、ルーティング、DNS、プロキシ状態を個別に保存するため、一方の端末を更新しても、もう一方が自動更新されることはありません。
長期間使うVMessまたはVLESS設定を1件だけ受け取った場合は、クリップボードから直接インポートできます。ノードが継続的に追加・停止されたり、パラメータが変更されたりする場合は、サブスクリプショングループのほうが管理しやすくなります。どちらの方法でも、インポート後はアクティブノード、プロキシモード、ルーティング範囲を確認してください。この3つが、実際のトラフィックが目的の経路に入るかどうかを決めます。