vmess://、vless://、またはサブスクリプションURLを受け取ったものの、インポート方法が分からない方に向けた記事です。単一ノードリンクとサブスクリプションURLの違い、主要フィールド、v2rayN・v2rayNGでの正しい入口、更新頻度に応じた保存方法を確認できます。
まず単一ノードリンクとサブスクリプションURLを区別する
vmess://またはvless://で始まる文字列は、通常1つのノードを共有するリンクです。サーバーのアドレス、ポート、ユーザー識別子、トランスポート方式、セキュリティ設定を含みます。クライアントにインポートすると設定が1件作成されますが、後からサーバー側の設定が変わっても自動更新されません。
サブスクリプションURLは通常https://で始まり、リクエスト可能なリモートリソースです。クライアントがURLにアクセスすると1件以上のノード情報を取得し、サブスクリプションのグループとして保存します。サーバー側でノード、ドメイン、ポートなどが変更された場合は、サブスクリプションを更新して一覧をローカルへ再同期できます。
単一ノードの共有リンク
明確な設定を1件だけインポートします。パラメータはリンク内に固定されるため、テスト、移行、一時的なノード追加に便利です。
適しているケース:1つのノードだけ使う、各パラメータを個別に確認する
サブスクリプションURL
おすすめクライアントがリモートの一覧を定期的に取得し、ノード名、サーバーアドレス、ポート、トランスポート設定をまとめて管理できます。
適しているケース:長期利用、複数デバイスでの同期、複数ノードの切り替え
手動で設定を入力
プロトコル、アドレス、ポート、トランスポート層の項目を1つずつ入力します。共有リンクの解析結果が正しいか確認したい場合に適しています。
適しているケース:フィールドのデバッグ、少数のパラメータ修正
| 比較項目 | 共有リンク | サブスクリプションURL |
|---|---|---|
| 一般的な先頭 | vmess://、vless:// | https:// |
| 含まれる内容 | 1つのノードの接続パラメータ | リモートのノード一覧を指すURL |
| 更新方法 | 再取得して再インポート | サブスクリプショングループで更新を実行 |
| インポート結果 | サーバー設定を1件作成 | サーバー設定の一覧を作成または更新 |
結論:プロトコルの接頭辞を確認してからインポート先を選ぶ
文字列がvmess://またはvless://で始まる場合は「クリップボードからインポート」を使います。https://で始まり、提供元がサブスクリプションと明記している場合はサブスクリプショングループに追加してください。2種類のURLを同じ入力欄で何度も試すのは避けましょう。
vmess://とvless://に保存される情報
一般的なVMess共有リンクでは、JSON設定をエンコードしてvmess://の後ろに付加します。エンコードは複数のフィールドをコピーしやすくするためのもので、パラメータを隠すものではありません。クライアントはデコード後、サーバーアドレス、ポート、ユーザーID、トランスポートネットワーク、パス、TLS、サーバー名などを読み取ります。
以下は構造を説明するためのVMessデコード例です。例に使うドメインとユーザーIDは文書専用で、実際の接続には使えません。addはサーバーアドレス、portはリモートポート、netとpathはWebSocketトランスポートを表し、tlsとsniはTLS接続に使用されます。
{
"v": "2",
"ps": "ドキュメント用サンプルノード",
"add": "edge.example.com",
"port": "443",
"id": "00000000-0000-4000-8000-000000000000",
"aid": "0",
"scy": "auto",
"net": "ws",
"type": "none",
"host": "edge.example.com",
"path": "/ray",
"tls": "tls",
"sni": "edge.example.com"
}
VLESS共有リンクは標準URIに近い形式です。ユーザーIDは@の前、サーバーアドレスとポートはその後ろに記述され、トランスポートとセキュリティのパラメータはクエリ文字列に入ります。ハッシュ記号の後ろの文字列はノード名として使われます。フィールドが直接見えるため、ポート、トランスポート種別、パスの確認もしやすい形式です。
vless://[email protected]:443?encryption=none&security=tls&type=ws&host=edge.example.com&path=%2Fray&sni=edge.example.com#ドキュメント用サンプルノード
| フィールド | 意味 | 主な確認ポイント |
|---|---|---|
| address / add | サーバーのドメインまたはIPアドレス | 余分な空白が入っていないか、ドメインを解決できるか |
| port | リモートの待受ポート | 1~65535の範囲で、サーバー側と一致している必要があります |
| id | VMessまたはVLESSのユーザー識別子 | 文字列が完全か、チャットツールで途中切れしていないか |
| type / net | TCP、WebSocket、gRPCなどのトランスポート種別 | 種別を変更した場合はパスやサービス名なども合わせて変更します |
| security | TLS、Realityなどのセキュリティ方式 | サーバーの実際の設定と一致させる必要があります |
| sni | TLSハンドシェイクで使うサーバー名 | ノードのメモだけで判断せず、提供元の値を使用してください |
v2rayNとv2rayNGに正しくインポートする
インポート前に元の文字列全体をコピーしてください。チャットメッセージに表示された一部だけを選択するのは避けます。リンクには疑問符、等号、パーセント記号、ハッシュ記号が含まれることがあります。一部でも欠けると解析に失敗したり、トランスポート設定の不足した構成が作られたりします。以下のメニュー名は、v2rayN 7.14.3とv2rayNG 1.10.31の一般的な画面を例にしています。
v2rayNに単一ノードリンクをインポート
vmess://またはvless://のリンク全体をコピーします。- v2rayNのメインウィンドウを開き、「サーバー」→「クリップボードから一括URLをインポート」を選択します。
- サーバー一覧から新しい設定を見つけ、プロトコル、アドレス、リモートポート、ノード名を確認します。
- 設定を選択してアクティブサーバーに指定し、下部のログウィンドウに設定解析エラーやコア起動エラーがないか確認します。
- ローカルの待受を確認する場合は、「設定」→「パラメータ設定」を開き、ローカルポートが他のプログラムと重複していないことを確認します。
v2rayNにサブスクリプションURLを追加
- 「サブスクリプショングループ」→「サブスクリプショングループ設定」を開きます。
- グループを追加し、分かりやすい別名を入力して、完全なHTTPSサブスクリプションURLをアドレス欄に貼り付けます。
- 保存後、「サブスクリプショングループ」メニューを開き、そのグループで「サブスクリプションを更新」を実行します。
- 更新後、ノード数と更新時刻を確認します。既存の手動ノードがサブスクリプションノードに変わることは通常ありません。
v2rayNGにリンクまたはサブスクリプションをインポート
- 単一ノードリンク:リンクをコピーし、右上のプラスメニューを開いて「クリップボードから設定をインポート」を選択します。
- サブスクリプションURL:左上のメニューを開き、「サブスクリプショングループ設定」に進み、グループを追加してURLを入力します。
- メイン画面に戻ってサブスクリプションを更新し、ノード一覧が更新されるのを待ってから設定を1件選び、接続を開始します。
- ローカル接続サービスの作成許可を求められた場合は、システムの指示に従って確認してください。許可しないと、クライアントは転送が必要なトラフィックを処理できません。
結論:インポート成功はパラメータの有効性を意味しない
一覧にノードが表示されるのは、リンクが解析されたことを示すだけです。リモートポート、トランスポート種別、TLSまたはRealityのパラメータを確認し、コアのログでハンドシェイク時のタイムアウト、ドメイン解決失敗、ポート競合がないことを確認してください。
共有リンクとサブスクリプションを使い分ける場面
基準はノード数そのものではなく、誰がパラメータを管理し、どの程度の頻度で変わるかです。自分で管理するサーバーでアドレスが長期間固定されるなら、共有リンクで明確な設定を保存できます。ノードをリモート側で一元管理し、接続先が変更される可能性があるなら、長期利用にはサブスクリプションが適しています。
おすすめの運用:長期サブスクリプションと一時ノードを分けて保存
デスクトップ版 v2rayN
- 長期利用のノードは専用サブスクリプショングループに入れる
- 一時的なテストリンクは手動ノードとしてインポートする
- 更新後、遅延とログを確認して利用可能か再確認する
Android版 v2rayNG
- 同じ有効なサブスクリプションURLを使う
- 一時リンクはクリップボードから個別にインポートする
- グループに分かりやすい名前を付け、提供元を誤って削除しないようにする
サブスクリプションの設定と手動設定を分けて管理すると、更新後に一時ノードが上書きされたと誤解するのを防げます。また、各設定の取得元も確認しやすくなります。
新しいノードを1つだけ確認したい場合は、共有リンクを直接インポートするのが早い方法です。テストでは元のノード名を残し、サーバーアドレス、ポート、トランスポート設定を確認してください。利用できることを確認した後はローカル名を変更できますが、ノード名をプロトコルパラメータと混同しないでください。「TLS」や「高速」と書かれた名前でも、実際の設定フィールドの代わりにはなりません。
複数のデバイスで使う場合、サブスクリプションは入力の重複を減らせます。v2rayNとv2rayNGには同じサブスクリプションURLをそれぞれ保存できますが、ローカルルーティング、システムプロキシ、アプリの通信を引き受ける設定は端末ごとに独立しています。サブスクリプションが同期するのはノード一覧であり、「LANをバイパス」「アプリごとのプロキシ」「ローカル待受ポート」などのクライアント設定ではありません。
| 利用シーン | 推奨方法 | 理由 |
|---|---|---|
| 新しい設定を一時的に1件テストする | 共有リンク | インポート手順が短く、各パラメータを直接確認できる |
| ノードが一元管理され、追加・削除やポート変更が行われる | サブスクリプションURL | 更新を実行するだけで新しいリモート一覧を取得できる |
| 固定サーバーを自分で管理する | 共有リンクまたは手動設定 | パラメータの変更頻度が低く、細かく管理できる |
| デスクトップ版とAndroid版で同じノード群を使う | サブスクリプションURL | 1件ずつコピーする手間を減らせるが、ローカル設定はそれぞれ必要 |
| 特定のノードが接続できない原因を調べる | 単一ノード設定 | サブスクリプション更新や他のノードによる影響を切り分けられる |
解析失敗、一覧が空、重複ノードのトラブルシューティング
解析の問題は、コアを次々に切り替えるのではなく、元の入力から確認します。まずノードリンクかサブスクリプションURLかを見分け、リンクが完全か、クライアントのバージョンがプロトコルとトランスポート方式に対応しているかを確認してください。ブラウザーで開けるサブスクリプションでも、クライアントが認識できるノード一覧を返すとは限りません。ログインページ、エラーページ、期限切れの通知が通常のWebページとして返される場合もあります。
vmess://を貼り付けると形式エラーになる場合は?
リンク全体をコピーし直し、先頭、末尾、途中の文字がすべて同じ行にあることを確認します。それでも失敗する場合は、クライアントを更新してから再度インポートし、設定の提供元にリンクを再生成してもらってください。エンコードされた内容を手動で書き足すのは避けます。
vless://はインポートできたのに、起動直後にエラーが出る場合は?
ノードの編集画面を開き、security、type、sni、path、serviceNameを1つずつ確認します。VLESSのリンク構文が認識されたからといって、現在のコアがリンクに指定されたすべてのトランスポートパラメータに対応しているとは限りません。
サブスクリプション更新後にノード一覧が空になった場合は?
まずサブスクリプションURLの有効期限を確認し、更新メッセージとクライアントログを確認します。ログインページやエラーページが返っている場合は、サブスクリプションにアクセスできる状態へ戻してから再更新してください。そのURLを単一ノードとしてインポートするのは避けます。
更新するたびに重複ノードが表示される場合は?
同じURLを複数のサブスクリプショングループに追加していないか、またはサブスクリプション内のノードを先に手動インポートしていないか確認します。有効なサブスクリプショングループを1つだけ残し、重複を確認した手動設定を削除してから、もう一度更新します。
ノードは起動するのにWebページを開けない場合は?
v2rayNではシステムプロキシのモードを、v2rayNGでは接続状態を確認し、DNS、ハンドシェイクのタイムアウト、ローカルポートの競合がログにないか確認します。10808を例にすると、そのローカルポートが他のプログラムに使用されている場合は、「設定」→「パラメータ設定」で変更してからコアを再起動します。
- まず入力の種類を確認します。プロトコルリンクはクリップボードから、HTTPSサブスクリプションはサブスクリプショングループからインポートします。
- 次に解析結果を確認します。プロトコル、アドレス、ポート、ユーザーID、トランスポート層のフィールドが欠けていないことを確認します。
- 続いてコアの起動を確認します。ログに未対応の設定フィールドやローカルポートの競合がないことを確認します。
- 最後に接続経路を確認します。DNS解決、TCP接続、TLSハンドシェイク、アプリのプロキシ設定を切り分けて確認します。
保存、更新、共有時の注意点
共有リンクとサブスクリプションURLには、サーバーへの接続に使えるアクセス情報が含まれる場合があります。アカウントの認証情報と同じように扱ってください。完全な内容を公開スクリーンショット、ログ投稿、検索可能な文書に載せないでください。他人にトラブルシューティングを依頼する場合は、プロトコル名、トランスポート種別、エラーメッセージを残しつつ、ユーザーID、ドメイン、サブスクリプションURLなどの識別情報を隠します。
サブスクリプションを更新する前に、現在利用できるノード名、リモートポート、更新時刻を記録しておくと便利です。更新後に大量のノードが消えた場合は、まずグループの選択が正しいか、リモートから正常な内容が返っているかを確認してください。同じURLをすぐに何度も追加するのは避けます。サブスクリプショングループを削除する前には、残しておきたいローカル設定が含まれていないか確認してください。
- 受け取った内容の接頭辞を確認し、提供元と用途を把握します。
- 対応する入口からインポートし、プロトコルリンクをWebブラウザーのアドレス欄で開こうとしないでください。
- インポート後に主要フィールドを確認し、コアを起動してログを読みます。
- 長期利用のノードはサブスクリプショングループに、一時ノードは単独の設定として保存します。
- 定期的にクライアントを更新し、新しいプロトコルフィールドやトランスポートパラメータの解析に対応できるようにします。
最終判断:更新の有無で保存方法を決める
リモート側で設定が継続的に管理される場合はサブスクリプションを使います。パラメータが固定され、1回のインポートで足りる場合や項目ごとに調整したい場合は共有リンクを使います。どちらの方法でも、インポート後はプロトコル、ポート、トランスポート、セキュリティのフィールドを確認してください。ノード名や一覧への表示だけで利用可能と判断してはいけません。