設定情報を受け取ったら、まず単体のノード共有リンクか、オンラインで内容を取得するサブスクリプションURLかを見分けましょう。形式の確認、適切なメニューの選択、インポート、更新確認の順に、v2rayN・v2rayNGでの操作を解説します。クリップボードからのインポートとサブスクリプション更新の違いに加え、形式エラーやリストが空になる問題、パラメーターの不一致への対処も紹介します。
共有リンクとサブスクリプションURL:設定のスナップショットと更新方法
vmess:// と vless:// は、ノード共有リンクのスキームです。単体のリンクには通常、アドレス、ポート、ユーザー識別子、通信方式、安全設定など、サーバー設定一式が含まれています。クライアントで読み込むと、設定はローカルに保存されます。リンクの送信元が後からサーバーを変更しても、保存済みの設定は自動では更新されません。
サブスクリプションURLは通常、https:// で始まります。リモートの設定取得先を示すURLで、クライアントがアクセスしてノード一覧を取得・解析します。サブスクリプションは第三のプロキシプロトコルではありません。同じURLからVMessやVLESSなど複数のプロトコルの設定が返される場合も、1件だけの場合もあります。インポートできるかどうかは、返却形式とクライアントの対応状況によります。
サブスクリプションURL
おすすめ設定提供元がノード一覧を継続的に管理する場合に適しています。サブスクリプションURLを保存して更新すると、最新の一覧を取得できます。ノードの追加・削除や認証情報の変更も、更新時に反映されます。グループを追加しただけではノードは取得されていません。
向いている用途:継続利用、複数ノード、設定変更の反映が必要な場合。
単体の共有リンク
クリップボードから直接読み込めるため、通常はサブスクリプションサーバーへのリクエストは不要です。設定のスナップショットなので、変更や差し替えは手動で行います。クリップボードに複数の共有リンクを含めることもできます。
向いている用途:一時的なテスト、自前サーバー、個別設定の確認。
使うメニューの見分け方:先頭を確認し、入手元もチェック
vmess:// または vless:// で始まる場合は「クリップボードからインポート」を使います。提供元がサブスクリプションURLとして明示したURLなら「サブスクリプション設定」を使います。通常のウェブページ、ログインページ、クライアントのダウンロードページは、HTTPSで始まっていてもサブスクリプションURLではありません。
リンクの構造:VMessのエンコードデータとVLESSのクエリパラメーター
一般的なVMess共有リンクは、vmess:// に続いてBase64エンコードされたJSONが含まれます。エンコードは設定を受け渡しやすい文字列にまとめるものであり、暗号化ではありません。また、公開しても安全という意味でもありません。生成ツールによって形式が異なるため、すべてのVMessリンクを同じ構造として分解できるわけではありません。
以下は、一般的なVMessリンクをデコードした設定例です。インポート用の共有リンクではありません。example.com はドキュメント用の例示ドメインで、UUIDもサンプル値のため、利用できるサービスには対応していません。実際の設定には、サーバーから提供されたパラメーターをすべて使用してください。
{
"v": "2",
"ps": "VMess サンプル",
"add": "example.com",
"port": "443",
"id": "550e8400-e29b-41d4-a716-446655440000",
"aid": "0",
"scy": "auto",
"net": "ws",
"type": "none",
"host": "example.com",
"path": "/ws",
"tls": "tls",
"sni": "example.com"
}
VLESS共有リンクでは、通常、ユーザー識別子が @ の前に、サーバーアドレスとポートが後ろに配置され、クエリパラメーターで通信方式やセキュリティ設定を指定します。以下も接続には使えない構造例です。%2Fws はデコードするとパス /ws になり、#以降は表示用のメモです。
vless://[email protected]:443?encryption=none&security=tls&type=ws&host=example.com&path=%2Fws&sni=example.com#VLESS-example
| 項目 | 説明 | 確認ポイント |
|---|---|---|
id / UUID | ユーザー識別子 | サーバー側のアカウント情報と一致している必要があります。任意の値を生成して置き換えることはできません。 |
add / アドレス | リモートサーバー | ローカルの待ち受けアドレスを入力しないよう注意してください。 |
port / ポート | リモートサーバーのポート | 例は443です。実際の値はサーバー側で指定されています。 |
net / type | 通信方式 | 例の ws はWebSocketを表します。サーバー側の設定と一致させてください。 |
host / path | WebSocketのリクエストパラメーター | Host、パス、パスの大文字・小文字は元の値を維持してください。 |
sni | TLSサーバー名 | 証明書とサーバー側の要件に合わせます。接続先アドレスと同じとは限りません。 |
VLESSの encryption=none は、VLESSプロトコル自体の暗号化項目を示します。外側の通信にTLSが使われていないという意味ではありません。そのため、security=tls を削除しないでください。REALITYを使うリンクには公開鍵やShort IDなどのパラメーターも含まれます。上記のTLS例を少し書き換えただけでREALITY設定として使うことはできません。
v2rayN:クリップボードからのインポートとサブスクリプション追加
以下では、v2rayNの中国語UIでよく使われるメニューを説明します。配布版によってボタンの位置が異なる場合があるため、「サーバー」「サブスクリプショングループ」などのメニュー名や項目名を目印にしてください。インポート前に元のテキストを保存し、チャットアプリによる改行や末尾への句点の追加、コピー漏れを防ぎましょう。
VMess・VLESSリンクを個別にインポート
- リンクのスキームから末尾のメモまで、全文をコピーします。複数のリンクを一度にインポートする場合は、1行に1件ずつ記載し、説明文を混ぜないでください。
- v2rayNを開き、「サーバー」メニューから「クリップボードから一括URLインポート」を選択します。Windowsでは通常、
Ctrl + Vでもインポートできます。先にメインウィンドウをアクティブにしてください。 - インポート結果の通知と、メインリストに追加された項目を確認します。項目の編集画面を開き、プロトコル、アドレス、ポート、通信方式、TLS設定をチェックしてください。
- 使用する項目を選択し、右クリックメニューから「アクティブサーバーに設定」を選びます。インポート成功はクライアントが設定を解析できたことを示すだけで、接続確認が完了したわけではありません。
サブスクリプションの追加と更新
- 「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、新しいグループを追加します。「エイリアス」に識別しやすい名前を入力し、「任意のアドレス」または「サブスクリプションアドレス」欄にURL全体を貼り付けます。
- グループを保存し、メイン画面に戻って対象のグループを選択します。サブスクリプションURLをサーバーの「アドレス」欄に入力しないでください。
- 「サブスクリプショングループ」メニューから「現在のサブスクリプションを更新(プロキシ経由なし)」を実行します。サブスクリプションサーバーに直接接続できず、利用可能なプロキシがある場合は、「プロキシ経由」の更新操作を選びます。
- 更新結果とグループ内のノード一覧を確認します。ダウンロード成功と表示されてもインポート数が0件なら、同じグループを追加し直すのではなく、返却内容の形式を確認してください。
v2rayNG:Androidでのインポート・更新・接続
v2rayNGはXrayコアを使用します。特定のプロトコルに対応していても、すべてのバージョンがそのプロトコルの新しいパラメーターを認識できるとは限りません。通信設定を認識できない場合は、まずクライアントのバージョンと設定要件を確認してください。以下ではメイン画面の「+」メニューとサイドメニューを使います。共有リンクを先にブラウザーで開く必要はありません。
クリップボードからインポート
- Android端末で
vmess://またはvless://のリンク全体をコピーします。 - v2rayNGを開き、右上の「+」→「クリップボードからインポート」をタップします。クリップボードが空と表示された場合は、リンクをコピーし直してアプリに戻り、もう一度試してください。OSのクリップボードアクセス通知も確認します。
- 追加された設定をタップして選択します。パラメーターを確認するには、その項目の編集ボタンをタップし、アドレス、ポート、UUID、通信レイヤーの設定をチェックしてください。
- メイン画面の接続ボタンをタップします。初回起動時はAndroidのVPN接続許可が表示されるので、許可した後に接続状態とログを確認します。
サブスクリプショングループを追加
- サイドメニューを開き、「サブスクリプショングループ設定」に進みます。バージョンによっては「サブスクリプション設定」と表示されます。
- 「+」をタップし、「備考」と「アドレス」を入力します。アドレスにはサブスクリプションURL全体を貼り付けて、保存ボタンをタップしてください。
- メイン画面に戻り、右上のメニューから「サブスクリプションを更新」を実行します。グループを指定して更新できる場合は、対象のグループを確認し、別のグループを更新しないよう注意してください。
- ノードが一覧に表示されるまで待ち、いずれかを選んで接続します。サブスクリプションの取得失敗とノードへの接続失敗は別の問題です。更新通知と実行ログを分けて確認してください。
2台で設定:同じ提供元から個別に確認
デスクトップ:v2rayN
- 同じ提供元の設定は、専用のサブスクリプショングループで管理します。
- 更新後、使用中のサーバーが目的の項目のままか確認します。
- ブラウザーでローカルプロキシを使う場合は、システムプロキシを設定します。
Android:v2rayNG
- 提供元が複数端末でのサブスクリプション利用を許可しているか確認します。
- 端末ごとに更新し、すべてのパラメーターが対応しているか確認します。
- VPN接続を許可し、アプリごとのプロキシ対象範囲を確認します。
サブスクリプションで同期されるのは、提供元が返すノード設定です。システムプロキシ、ルーティングルール、アプリごとの設定、現在選択中のノードは同期されません。
インポート後の確認:リモートポート、ローカルの接続口、更新結果
ノードの保存後は、まず各項目を確認し、次に通信経路を確認します。リモートポートはサーバー側の設定、ローカルの待ち受けポートはクライアントの接続口であり、同じ値である必要はありません。以下のポート番号は方向の違いを説明するための例です。既存の設定を変更する指示ではなく、すべてのバージョンのデフォルト値を示すものでもありません。
- 設定:提供元の情報と照らし合わせ、サーバーアドレス、リモートポート、ユーザー識別子を確認します。VLESSではsecurity、flow、関連するセキュリティパラメーターも確認し、不確かな値を独自に追加しないでください。
- 通信:WebSocketのパスとHostがチャットアプリで途中まで切れていないか、TLSのSNIがサーバー側の要件と一致しているか確認します。項目の誤りを、証明書検証を無効にしてごまかさないでください。
- クライアントの接続口:v2rayNではシステムプロキシの設定に従うアプリがローカルの接続口を使います。v2rayNGではVPNが起動しているか、対象アプリがプロキシの対象に含まれているか確認してください。
- ルーティング:通信がコアに届いた後、ルーティングルールに従って処理されます。あるウェブサイトに直接接続できても、選択中のプロキシノードが使える証明にはなりません。
- サブスクリプション:更新前後のノード数と更新日時を記録します。サーバー側で古いノードが削除されたり、アカウントの状態に応じて空の一覧が返されたりすることがあります。グループ名が残っているかだけで判断しないでください。
確認する順番:設定の解析、ノードの接続、アプリの通信経路
まず設定を保存できることを確認し、実行ログで接続を調べ、最後に各アプリの通信経路を確認します。1回の遅延テストに成功しても、すべての通信が完了するとは限りません。ノード、ルーティング、DNSを同時に変更するより、設定を1つに固定して調べるほうが原因を特定しやすくなります。
よくある問題:空のリスト、失われたパラメーター、サブスクリプションURLの取り扱い
リンクをコピーしたのに「有効な設定が見つかりません」と表示されるのはなぜ?
まずスキームが最後まで含まれているか確認し、引用符、日本語の句読点、チャットの説明文が混ざっていないかチェックします。VLESSリンクの & はクエリパラメーターの区切りです。ウェブページのソースからコピーすると、エスケープされた文字列を誤って取得することがあります。提供元の「リンクをコピー」から取得し直してください。VMessのエンコードデータは手動で文字を追加・削除しないでください。
ブラウザーでは開けるサブスクリプションを、クライアントが1件もインポートできないのはなぜ?
ブラウザーに表示されるのは、ログインページやエラーページ、または別の形式用のパーサーが必要な内容かもしれません。URLが提供元の互換性のあるサブスクリプション用URLであり、アカウント管理画面ではないことを確認してください。ステータスコード200は応答があったことを示すだけで、解析可能なノードが含まれるとは限りません。クライアントの更新ログで形式や解析に関するメッセージを確認してください。
サブスクリプションの更新がタイムアウトしたら、「プロキシ経由」に切り替えるべき?
まず端末がインターネットに接続できること、サブスクリプションのドメインを名前解決できること、URLの有効期限が切れていないことを確認します。利用可能なノードがあれば、プロキシ経由で更新を試せます。使えるプロキシがない場合、この設定だけで接続を復旧することはできません。v2rayNGではバージョンによって更新時のプロキシ設定の場所が異なるため、実際の設定を確認してください。ノードの速度測定結果だけでサブスクリプションURLへの接続可否を判断しないでください。
インポート後に一部のパラメーターが消えた場合、プロトコルを直接変更してもいい?
VLESSの項目をVMessに変更したり、意味が分からないセキュリティパラメーターを削除したりしないでください。まずクライアントのバージョンを確認し、提供元が求めるコアの機能要件を調べてから、クライアントのダウンロードページで適切なクライアントを確認します。パーサーが共有リンクの形式に対応していない場合は、項目を推測するのではなく、対応する設定を提供元に依頼してください。
トラブル調査のためにサブスクリプションURLを他人に送ってもいい?
サブスクリプションURLに含まれるトークンには、通常、アクセス権限があります。共有リンクにも接続に必要なユーザー識別子が含まれます。ログを共有する場合は、サブスクリプションURL全体、UUID、トークン、アカウント情報を伏せ、必要なエラー行と項目名だけを残してください。URLが漏えいした場合は、設定提供元の管理画面で認証情報を再発行し、各端末に保存した古いURLを置き換えてください。