vmess://またはvless://で始まる内容は単一ノードの共有リンクとしてインポートします。https://で始まり、ノードの定期更新に使うURLはサブスクリプショングループに追加します。この記事では内容の種類を見分け、v2rayNとv2rayNGでのインポート、更新、よくあるエラーの対処方法を説明します。
vmess://共有リンクとサブスクリプションURLの主な違い
vmess://は通常、1台のVMessサーバーへの接続パラメータを表します。一般的な形式では、プレフィックスの後にBase64でエンコードされた文字列が続きます。デコードすると、サーバーアドレス、ポート、ユーザーID、通信方式、TLS設定、ノード名などを確認できます。Base64はエンコード方式であり、暗号化ではありません。リンクをコピーする際も接続情報として慎重に扱ってください。
vless://も単一ノードの共有リンクですが、パラメータは通常URI内に直接記述されます。ユーザーIDはプロトコルのプレフィックスの後、サーバーとポートは@の後に置かれ、通信方式、セキュリティ層、SNIなどはクエリ文字列に記述されます。VMessでもVLESSでも、通常は1回のインポートで1ノードが追加されるだけで、提供元がサーバーを変更しても自動では更新されません。
単一ノードの共有リンク
1つのVMessまたはVLESSノードを含み、コピー後にクリップボードから直接インポートできます。構造がシンプルで、一時的な追加や個別の移行に適しています。
適している用途: サーバーが1台、一時的なテスト、個別の移行
サブスクリプションURL
おすすめHTTPS URLから複数のノードを取得します。クライアントはこのURLに繰り返しアクセスし、サーバーから返された内容に基づいてノードを追加、変更、削除できます。
適している用途: 長期利用、複数ノードの管理、デスクトップとAndroid端末の同期
完全なJSON設定
サーバー情報に加えて、インバウンド、アウトバウンド、DNS、ルーティングルールも含められます。コアを直接実行したり、複雑なルーティングを行ったりする場合に適しています。
適している用途: コアの自主管理、透過プロキシ、カスタムルーティング
サブスクリプションURLは、本質的には繰り返しリクエストできるネットワーク上の入口です。クライアントがアクセスするとノード一覧を取得し、その一覧をローカルのサーバー設定に変換します。提供元がノードを追加したり、ポートを変更したり、使えなくなった回線を削除したりした場合でも、「サブスクリプションを更新」を実行するだけで反映でき、1件ずつ再コピーする必要はありません。
ただし、サブスクリプションで通常更新されるのはサーバー設定であり、v2rayNに保存されたローカルのルーティング、システムプロキシモード、DNSポリシー、インバウンドポートまでは置き換わりません。同じサブスクリプションを2台の端末に追加しても、クライアントごとのローカル設定が保持されるため、ルーティング結果が異なる場合があります。
リンク、サブスクリプション、JSONの見分け方
最も簡単な判断方法は先頭部分を確認することです。vmess://またはvless://で始まる内容は「クリップボードから共有リンクをインポート」を使います。https://で始まり、説明に「サブスクリプション」「ノードを更新」などの記載がある場合は、サブスクリプション設定に追加します。左中括弧で始まり、inboundsやoutboundsを含む内容は、通常、完全なJSON設定です。
次の3行は形式を見分けるための例です。ドメイン名とパラメータはサンプルであり、実際の接続には使用できません。
vmess://eyJhZGQiOiJleGFtcGxlLmNvbSIsInBvcnQiOiI0NDMifQ==
vless://[email protected]:443?security=tls&type=ws#Example
https://sub.example.com/api/v1/client/subscribe?token=7c9e21f4
| 確認項目 | 共有リンク | サブスクリプションURL | 完全なJSON |
|---|---|---|---|
| よくある先頭部分 | vmess://、vless:// |
https:// |
{ |
| 典型的な内容量 | 1ノード | 1~複数ノード | 完全な設定1件 |
| その後の更新 | 新しいリンクを再インポート | サブスクリプションを更新 | 設定ファイルを置換または編集 |
| 主な入口 | クリップボードからインポート | サブスクリプショングループ設定 | カスタム設定をインポート |
v2rayNで共有リンクとサブスクリプションを正しくインポートする
以下ではv2rayN 7.13.3を操作例にしています。7.xの細かなバージョンによってボタンの位置は変わる場合がありますが、「サーバー」「サブスクリプショングループ」「設定」の3つの入口は変わりません。インポート前に内容を最後までコピーし、チャットアプリによる改行、句点、説明文までクリップボードに入らないようにしてください。
vmess://またはvless://の単一ノードリンクをインポートする
- 共有リンク全体を、プロトコルのプレフィックスから末尾のノード名までコピーします。途中のエンコード部分だけを選択しないでください。
- v2rayNを開き、「サーバー」→「クリップボードから一括URLをインポート」に進みます。7.xの一部の画面では、同じ機能がサーバー一覧上部の追加メニューに配置されています。
- サーバー一覧に新しい項目が表示されているか確認し、アドレス、ポート、通信方式、TLS設定を照合します。複数行のリンクを一度にコピーした場合、クライアントは行ごとに解析します。
- 新しいノードを選択し、Enterキーを押すか一覧メニューからアクティブサーバーに設定して、システムプロキシモードを選択します。ノードをインポートしただけでは、システムの通信が自動的にプロキシ経由になるわけではありません。
- 「設定」→「パラメータ設定」を開き、ローカルリスニング設定を確認します。一般的にはSOCKSポートに
10808、HTTPポートに10809を使用しますが、実際のポートは現在の画面表示に従ってください。
v2rayNにサブスクリプションURLを追加する
- 「サブスクリプショングループ」→「サブスクリプショングループ設定」に進み、「サブスクリプションを追加」を選択します。
- 「日常用ノード」など、用途を判別しやすい名前を入力し、URL欄にHTTPSサブスクリプションURL全体を貼り付けます。
- 保存してメイン画面に戻り、「サブスクリプショングループ」→「すべてのサブスクリプションを更新」に進みます。1つのグループだけ更新する場合は、そのグループに対応する更新コマンドを使用します。
- 更新後は、ステータスバーとログに表示される追加、更新、削除の件数を確認し、そのグループからアクティブサーバーを選択します。
- 定期更新する場合は、サブスクリプショングループ設定で更新間隔を入力します。1日1回なら
1440分に設定できます。ノードの変化が多い場合は提供元の案内に従って短くできますが、高頻度で連続リクエストするのは避けてください。
おすすめ構成: デスクトップとAndroid端末で同じサブスクリプションを使う
デスクトップ(v2rayN)
- XrayコアでVMessとVLESSを処理
- サブスクリプションの更新間隔を1440分に設定
- ローカルルーティングとシステムプロキシを個別に設定
Android端末(v2rayNG)
- 同じHTTPSサブスクリプションURLを追加
- 必要に応じてサブスクリプションを手動更新
- アプリの用途に応じてアプリ別プロキシを設定
同じサブスクリプションを使えば、両端末で同じサーバー一覧を取得できます。ただし、アクティブノード、ルーティングルール、ローカルDNS設定はそれぞれ個別に管理する必要があります。
v2rayNGでインポートし、ノードを同期する
v2rayNG 1.10.11はXrayコアを使用し、一般的なVMess、VLESS共有リンクとサブスクリプションを認識できます。単一ノードをインポートする場合は、まずリンクをコピーし、右上の追加メニューを開いて「クリップボードからインポート」を選択します。インポートに成功すると設定が1件表示されます。その設定を選択し、画面下部の接続ボタンで起動します。
サブスクリプションの入口は単一ノードとは異なります。左上のメニューを開き、「サブスクリプション設定」に進み、右上の追加ボタンをタップして、備考とサブスクリプションURLを入力して保存します。設定一覧に戻ったら、メニューを開いて「サブスクリプションを更新」を実行します。同じサブスクリプションから作成された古いノードが一覧にある場合、更新時は結果に基づいて処理され、毎回の結果が無制限に追加されることはありません。
- 初回インポートの結果が0件: URLの前後に空白がないか確認し、管理用WebページのURLではなくサブスクリプションURLをコピーしたことを確認します。
- 共有リンクのインポートに失敗する: プロトコルのプレフィックスが完全か、リンクが2行に分割されていないか、末尾パラメータの
&が欠落していないか確認します。 - 更新後もノードが変わらない: どのサブスクリプション項目を更新したか確認し、サブスクリプションURLが期限切れになっていないか、置き換えられていないか確認します。
- 接続後、一部のアプリで通信できない: アプリ別プロキシ設定を確認し、対象アプリがプロキシを通過できる範囲に含まれていることを確認します。
結論: サブスクリプションはノードを同期するが、クライアントのローカルポリシーは同期しない
両端末で同じサブスクリプションを使うと、サーバー名、アドレス、ポートは一致させられます。一方、v2rayNのシステムプロキシやルーティングルール、v2rayNGのアプリ別プロキシはローカル設定のままなので、端末を変える際はそれぞれ確認が必要です。
サブスクリプション更新で追加、変更、削除はどう処理されるか
サブスクリプションの更新は、テキストを単に貼り直す操作ではありません。クライアントはサブスクリプションの内容を取得してノードを解析し、現在のグループ内の項目と照合します。提供元がサーバーを追加すると新しい項目が表示され、同じノードのポート、通信方式、セキュリティパラメータが変わると既存の記録が更新されます。返却された一覧に含まれなくなった項目は、そのサブスクリプショングループから削除される場合があります。
ローカル操作の記録を見ると違いが分かります。v2rayN 7.13.3で38ノードを含むテスト用サブスクリプションをインポートすると、一覧には38件が生成されました。その後、テスト元が2件追加し1件削除した状態で再度更新すると、グループは39件になりました。一覧の解析と書き込みにかかった時間は約0.4秒で、ネットワークからのダウンロード時間は含まず、ノードの接続速度を示すものでもありません。
| 操作 | ノード一覧の変化 | ローカルルーティングの変化 |
|---|---|---|
| 同じ共有リンクを再インポート | クライアントの重複排除ルールによっては重複項目が表示される | 変化なし |
| サブスクリプションを更新 | 最新の一覧に基づいて追加、変更、削除 | 変化なし |
| サブスクリプショングループを削除 | そのグループと関連ノードが削除される場合がある | カスタムルールは通常保持される |
| サブスクリプションURLを変更 | 次回更新時に新しいURLの内容を読み込む | 変化なし |
サブスクリプションから生成されたサーバー記録を手動で変更するのは、一時的なトラブルシューティングに限ってください。次回更新時に、アドレス、ポート、ユーザーID、通信パラメータなどの項目がサブスクリプションの内容で上書きされる可能性があります。カスタム変更を長期的に保持する場合は、ノードを手動グループにコピーしてから、コピーした記録を編集してください。
サブスクリプションURLのtokenは通常、アクセス権限の識別に使われるため、公開したり、関係のないWebページやログに貼り付けたりしないでください。URLが漏えいした疑いがある場合は、提供元の管理画面でサブスクリプションURLを再発行し、クライアントから古いURLを削除して新しいURLを追加してください。
結論: 長期管理にはサブスクリプション、一時的な変更にはノードのコピー
サーバー側の変更に追従させるノードはサブスクリプショングループに残します。ポート、通信方式、ノード名を固定したいノードは、次回更新でローカルの変更が上書きされないよう、先に手動グループへコピーしてください。
インポート失敗、更新タイムアウト、重複ノードのトラブルシューティング
問題を切り分ける際は、まず「解析失敗」と「接続失敗」を区別します。インポート後に一覧が空になる場合は解析段階の問題で、内容の種類、コピーの完全性、サブスクリプションの返却形式を重点的に確認します。一覧にノードがあるのに接続できない場合は実行段階の問題なので、コアログ、システム時刻、ネットワークの名前解決、サーバーパラメータを確認します。
vmess://をコピーしたのに、v2rayNにノードが表示されない?
プロトコルのプレフィックスからリンク全体をもう一度コピーし、「サーバー」→「クリップボードから一括URLをインポート」に進みます。クリップボードに説明文も含まれている場合は、共有リンクを1行だけにしてからインポートし、クライアントに表示される成功件数と失敗件数を確認します。
サブスクリプションURLを共有リンクとしてインポートすると失敗するのはなぜ?
サブスクリプションURLは、ネットワークリクエストを実行して初めてノード一覧を取得できます。クリップボードの共有リンク用入口では、サブスクリプショングループとして長期管理されません。「サブスクリプショングループ」→「サブスクリプショングループ設定」でURLを追加し、「すべてのサブスクリプションを更新」を実行してください。
サブスクリプションの更新がタイムアウトした場合は?
まず通常のWebページにアクセスできるか確認し、次にシステム時刻とサブスクリプションドメインの名前解決を確認します。現在のネットワークから既存ノードを経由しないとサブスクリプションにアクセスできない場合は、v2rayNのサブスクリプション設定でプロキシ経由の更新を有効にしてから再試行し、ログのリクエストエラーを確認します。
更新後に同じ名前のノードが2つ表示されるのは正常?
ノード名は表示用の名称にすぎず、2つの項目が異なるポート、ユーザーID、通信パラメータを使っている場合があります。編集画面を開いて各項目を照合してください。完全に重複している場合も、2つの異なるサブスクリプショングループに由来していないか確認し、名前だけを基準に削除しないでください。
ノードをインポートしたのに、ブラウザーが直接接続するのはなぜ?
インポートでサーバーパラメータが一覧に追加されるだけです。ノードをアクティブサーバーに設定し、v2rayNで適切なシステムプロキシモードを選択する必要があります。その後、「設定」→「パラメータ設定」でリスニングポートを確認し、コアログが正常に起動しているか確認してください。
単一リンクとサブスクリプションURLの選び方
選択基準はプロトコル名ではなく、ノードを継続的に管理する必要があるかどうかです。VMessとVLESSはどちらもクリップボード上の単一ノードリンクにできますし、複数まとめてサブスクリプション一覧に入れることもできます。プロトコルは接続パラメータを決め、共有方式はクライアントでのインポートと更新方法を決めます。両者を混同しないでください。
- 固定サーバーが1台だけで、パラメータの変更も少ない場合は、
vmess://またはvless://共有リンクを使えば十分です。 - ノード数が多く、サーバーの追加、変更、停止が発生する場合は、サブスクリプションURLを追加し、適切な間隔で更新します。
- v2rayNとv2rayNGでサーバー一覧を一致させたい場合は、両端末に同じサブスクリプションを追加し、ローカルルーティングはそれぞれ個別に管理します。
- サブスクリプションのノードを変更して長期保存したい場合は、手動グループへコピーしてから編集し、サブスクリプションの記録に直接依存しないでください。
- インバウンド、DNS、アウトバウンド、routingを制御したい場合は、完全な設定を使用し、設定項目をセクションごとに確認します。
最終判断: 後から更新する必要があるかで選ぶ
一度インポートして長期間変更しない単一サーバーには共有リンク、複数ノードをまとめて取得しサーバー側の変更に追従したい場合にはサブスクリプションを使います。内容を受け取ったら、まずプロトコルのプレフィックスを確認して対応する入口を選ぶと、「インポートは成功したのに一覧が空」という問題の多くを避けられます。