複数デバイスを継続的に管理するならサブスクリプションURL、クライアントのデータを丸ごと移行するなら同じクライアントのエクスポート/インポート、VMess または VLESS のノードを一時的に共有するならQRコードが適しています。ここでは各方法で同期できる項目とローカル設定の範囲、v2rayN と v2rayNG の連携後に確認すべき手順を説明します。
同期前に設定の範囲を整理する
「V2Ray 設定の同期」には、異なる3種類のデータが含まれる場合があります。1つ目はサーバーパラメータで、アドレス、ポート、ユーザーID、トランスポート方式、TLS、SNI、Reality 公開鍵、Flow などです。2つ目はクライアント管理データで、サブスクリプショングループ、ノード名、並び順、更新間隔などが含まれます。3つ目はデバイス固有のローカル設定で、システムプロキシ、ルーティングルール、DNS、ログレベル、LAN待受、ローカル受信ポートなどです。
3つの同期方法では、これらのデータを扱える範囲が異なります。サブスクリプションは主にサーバー一覧を管理し、QRコードは通常1つのノードだけを保持します。グループやアプリ設定まで含められるのは、同じクライアントのバックアップを使う場合です。2台のデバイスにまったく同じノードを読み込んでも、システムプロキシ、ルーティングモード、ローカルポートまで自動的に一致するわけではありません。
移行を始める前に、現在使用中のノード、ルーティングモード、ローカル待受ポートを記録しておきましょう。10808 はよく使われる例であり、すべてのバージョンやデバイスがこのポートを使うわけではありません。別のアプリが同じポートを使用している場合、クライアントはコア起動時に待受失敗を報告します。その際は、リモートサーバーのポートではなく、このデバイス側のポートを変更してください。
方法1:サブスクリプションURLでノードを一元管理する
サブスクリプションURLは、ノードの追加・削除、ドメインの変更、パラメータの定期更新がある環境に適しています。2台のデバイスに同じURLを登録すれば、どちらも同じ配信元から一覧を取得できます。サーバーパラメータが変わっても、サブスクリプション側を更新するだけで済み、各デバイスでQRコードを読み直す必要はありません。
サブスクリプションはリアルタイム配信ではありません。v2rayN と v2rayNG はそれぞれ設定された間隔で更新し、手動更新もできます。一方のデバイスにだけ新しいノードが表示される場合は、まず最終更新時刻を比較し、次にサブスクリプションURLが完全に一致しているか確認してください。URL末尾の余分な空白、途中で欠けたクエリパラメータ、期限切れの認証情報が結果の違いを引き起こすことがあります。
サブスクリプションを追加
v2rayN で「サブスクリプショングループ」→「サブスクリプショングループ設定」→「追加」を開き、別名と完全なサブスクリプションURLを入力して保存します。
一覧を更新
メイン画面に戻り、「サブスクリプショングループ」→「すべてのサブスクリプションを更新」を実行します。ノード一覧の再構築が完了したら、ノードを1つ選び、実際の接続遅延を測定してください。
Android側に追加
v2rayNG の右上にあるメニューから「サブスクリプション設定」を開き、同じURLを追加します。メイン画面に戻ったら「サブスクリプションを更新」を実行してください。
コアを確認
デスクトップ版では「設定」→「パラメータ設定」→「Core タイプ」を開き、ノードで使用するコアを確認します。Android版の v2rayNG では、対応するノードプロトコルを Xray コアが処理します。
ルーティングは個別に設定
2台のデバイスで、ルーティングモード、DNS、ローカルプロキシの動作をそれぞれ設定します。サブスクリプションは通常、これらのクライアント側オプションを同期しません。
サブスクリプションで同期される内容
- サーバーアドレス
- サブスクリプション更新時に反映
- リモートポート
- ノード情報として配信
- プロトコルパラメータ
- VMess、VLESS など
- ノードの追加・削除
- 更新後に反映
複数デバイスで同じサーバー群を長期利用する場合に適しています。
デバイス固有のローカル設定
- システムプロキシ
- デバイスごとに個別に有効化
- ルーティングルール
- クライアント内にローカル保存
- ローカルポート
- デバイス環境に応じて設定
- 更新スケジュール
- クライアントごとに独立して実行
サブスクリプションを追加した後も、動作設定は各デバイスで個別に行う必要があります。
方法2:エクスポート/インポートで移行とオフラインバックアップを行う
エクスポート/インポートは、端末の買い替え、再インストール前のバックアップ、または2台のデバイスから同時にサブスクリプションへアクセスできない場合に適しています。ここでは「アプリデータのバックアップ」と「単一ノードのエクスポート」を区別してください。アプリデータのバックアップは同じクライアント向けで、サブスクリプション、グループ、環境設定を含む場合があります。単一ノードのエクスポートは通常、VMess、VLESS などの共有リンクを作成し、クライアントをまたいでサーバーパラメータを渡す用途に向いています。
v2rayN のデータフォルダー全体を、v2rayNG 用の汎用インポートファイルとして扱わないでください。両者では画面設定、ルーティングの保存形式、動作環境が異なります。プラットフォームをまたいで移行する場合は、標準共有リンクのエクスポートまたは同じサブスクリプションURLの利用を優先します。同じクライアント間で、かつ近いバージョンへ復元する場合に限り、そのクライアントが作成したバックアップデータを使ってください。
同じクライアント間の移行
- 移行元
- アプリデータまたはバックアップファイル
- 移行先
- 同じ名前のクライアント
- 対象範囲
- ノード、グループ、一部の設定
- バージョン要件
- 近いメジャーバージョンを優先
復元前に、移行先にある既存データのコピーを保存し、誤上書きを防ぎます。
異なるクライアント間の移行
- 移行元
- 標準共有リンク
- 移行先
- v2rayN または v2rayNG
- 対象範囲
- 単一サーバーのパラメータ
- 再設定が必要
- ルーティング、DNS、ローカルポート
複雑なカスタム設定は、画面上の項目へ完全に変換できない場合があります。
インポート後は、プロトコル、アドレス、リモートポート、ユーザーID、トランスポート層、安全性に関するパラメータを項目ごとに比較してください。VLESS + Reality では、SNI、Public Key、Short ID、Fingerprint、Flow も確認します。VMess + WebSocket + TLS では、Host、パス、TLSサーバー名を確認してください。項目が1つ欠けるだけでも、接続タイムアウトやハンドシェイク失敗につながることがあります。
- 同じクライアントへ復元する前に、現在の接続を終了してください。動作中のコアが古い設定ファイルを使い続けるのを防げます。
- 複数ノードを含むデータをインポートしたら、まず名前やアドレスで重複を整理し、その後に遅延テストを実行します。
- 旧デバイスでカスタムルーティングルールを使用している場合は、ルールの内容を個別にエクスポートし、並び順も記録してください。
- 移行完了後もしばらくは旧デバイスの設定を残し、サブスクリプション更新と自動起動が正常に動作することを確認してから削除します。
方法3:QRコードは近距離で単一ノードを渡す場合に適している
QRコードは通常、共有URIを画像としてエンコードしたものです。デスクトップ版でQRコードを表示し、Android側で読み取ると、VMess または VLESS の共有情報からノードを作成できます。長いユーザーIDを手入力する必要がなく、検証済みのノードを別のデバイスへ一時的に渡す用途に適しています。
QRコードは「ノードを1つコピーする」方法であり、継続的な同期ではありません。移行元でアドレス、ポート、Reality パラメータを変更しても、移行先には自動反映されません。ノードが頻繁に変わる場合はサブスクリプションを使い、固定ノードの一時テストやその場での引き渡しに限ってQRコードを使うとよいでしょう。
サブスクリプションURL
推奨複数ノードを一元管理し、更新後にノードの追加・削除やパラメータ変更を反映できます。
適した用途:2台以上のデバイス、長期管理
エクスポート/インポート
既存の設定一式を保存でき、同じクライアント間の移行やオフライン復元に適しています。
適した用途:端末変更、再インストール、定期バックアップ
QRコード共有
標準ノードを1つすばやく渡し、インポート後は移行先のデバイスで個別に保存します。
適した用途:一時テスト、近距離での単一ノード共有
- v2rayN のメイン画面で対象ノードを選択し、サーバー関連メニューから共有QRコードを開きます。
- v2rayNG で右上の「+」をタップし、「QRコードをスキャン」を選んで、今回必要なカメラ権限を許可します。
- インポート後すぐに元のノードを削除せず、名前、アドレス、ポート、トランスポート方式、TLS項目を照合してください。
- 新しいノードを起動して実際の接続テストを行い、Webリクエストがプロキシ経由になったことを確認してから切り替えます。
QRコードの情報量が多すぎる、画面が反射する、拡大時に端が切れているといった場合は、スキャンに失敗することがあります。デスクトップ画面の明るさを上げ、QRコード全体の枠を表示し、カメラを画面と平行に保ってください。それでも認識できない場合は、「共有リンクをコピー」と「クリップボードからインポート」を使います。渡されるノード内容はQRコードと同じです。
v2rayN と v2rayNG の連携時に確認すべき項目
標準プロトコルの項目は通常そのまま連携できますが、デフォルト値の扱いはクライアントによって異なる場合があります。たとえば共有リンクに Fingerprint が明記されていない場合、バージョンによって異なるデフォルト動作が選ばれることがあります。複雑なルーティング、チェーンプロキシ、カスタムコア設定も、1本の共有リンクだけでは完全に表現できません。インポートが成功したことはデータが解析されたことを示すだけで、接続条件がすべて満たされたとは限りません。
コアの対応能力も結果に影響します。v2rayNG は Xray コアを使用するため、対応する VLESS、Reality、VMess 設定のインポートに適しています。v2flyNG で v2fly コアを使う場合は、そのコアが実際に対応するプロトコルとトランスポートの組み合わせを選んでください。ノードに特定の Xray 拡張項目が含まれる場合、アドレスとポートが同じというだけで両者が同等だと判断することはできません。
| 項目の種類 | インポート後の確認項目 | よくある症状 |
|---|---|---|
| 基本接続 | アドレス、リモートポート、ユーザーID | 接続タイムアウト、認証失敗 |
| トランスポート層 | TCP、WebSocket、gRPC、パス、Host | ハンドシェイク直後に切断 |
| TLS と Reality | SNI、ALPN、フィンガープリント、公開鍵、Short ID | TLSハンドシェイク失敗 |
| VLESS Flow | xtls-rprx-vision かどうか | ノードは保存できるが接続を確立できない |
| クライアントのローカル項目 | ルーティング、DNS、システムプロキシ、ローカルポート | コアは起動しているがアプリの通信がプロキシを通らない |
テストでは「ノードに接続できるか」と「システム通信をプロキシへ流せるか」を分けて確認します。まずコアのログでアウトバウンド接続が確立しているかを確認し、次にデスクトップのシステムプロキシまたはAndroidの接続スイッチが有効かを確認してください。コアが 127.0.0.1:10808 の待受に成功しているのにブラウザーが直接接続する場合、原因は通常、システムプロキシ、ブラウザー独自のプロキシ設定、またはルーティングルールにあり、サブスクリプションの同期そのものではありません。
よくある同期トラブルと確認の順番
2台のデバイスで同じサブスクリプションを使っているのに、なぜノード数が違うのですか?
まず両方でサブスクリプションをすべて手動更新し、更新時刻とサブスクリプショングループが有効かを比較します。それでも一致しない場合は、失敗しているグループの古いキャッシュを削除し、完全なサブスクリプションURLを保存し直してから更新してください。
QRコードのインポートには成功したのに、接続がずっとタイムアウトするのはなぜですか?
ノード編集画面を開き、アドレス、リモートポート、SNI、トランスポートパス、Reality の項目を順番に確認します。その後、モバイル回線または別のLAN接続へ切り替え、現在のネットワークによる遮断を切り分けてください。
インポート後、すべてのアプリがネットワークに接続できない場合は?
まずシステムプロキシを無効にするか、Androidの接続を停止して、基本的なネットワークが復旧するか確認します。続いてローカルポートの競合、ルーティングで全通信を誤って遮断していないか、コアログの最初のエラーを確認してください。
サブスクリプションでルーティングの振り分けルールも同期できますか?
通常のノードサブスクリプションが提供するのは、主にサーバー一覧です。ルーティングルールは各クライアントがローカルで管理するため、v2rayN と v2rayNG で個別に設定し、ドメイン、IP、プロセスのルールをテストする必要があります。
単一ノードを共有した後に名前を変更した場合、もう一方のデバイスも更新されますか?
いいえ。QRコードと共有リンクは、その時点の設定をコピーするだけです。移行先には独立した記録が作成されるため、後からパラメータを変更した場合は再共有するか、更新可能なサブスクリプションURLへ切り替えてください。
確認の順番は「データがインポートされたか、コアが起動したか、ノードに接続できるか、通信がプロキシを通っているか」に固定しましょう。ノード項目を確認する前にDNSやルーティングを何度も変更すると、複数の変数が同時に変わってしまいます。設定は一度に1つだけ変更し、再接続後に結果を記録すると、差異がサブスクリプション内容によるものかデバイス環境によるものかを特定しやすくなります。
利用シーンに合わせて同期方法を選ぶ
日常の基本構成は「サブスクリプションを中心に、エクスポートでバックアップし、一時ノードにはQRコードを使う」方法がおすすめです。サブスクリプションはサーバー一覧を継続的に更新し、同じクライアントのバックアップはグループやローカル設定を保持します。QRコードは特定ノードの素早い検証に使います。3つは互いの代替ではなく、一元管理、完全移行、即時共有をそれぞれ担います。
- デスクトップ1台とAndroid端末1台だけ:両方に同じサブスクリプションを追加し、ルーティングとDNSはそれぞれ設定します。
- デスクトップを再インストールする予定:v2rayN のクライアントデータを保存し、現在の Core タイプ、ローカルポート、自動起動設定も記録します。
- 新しいノードを一時的にテストする:まずQRコードで v2rayNG にインポートし、プロトコル項目と回線の利用可否を確認します。
- 複数デバイスをまとめて更新する必要がある:1台ずつQRコードを読み直さず、統一管理できるサブスクリプショングループを使います。
- ノードに Reality または特定の Flow が含まれる:インポート後に Xray 関連項目を確認し、ノード名が同じかどうかだけで判断しないでください。
同期完了後は、少なくとも3つの検証を行います。サブスクリプションを1回更新し、クライアントを1回再起動し、ネットワークを1回切り替えてください。更新テストではサブスクリプションの認証情報が有効かを確認し、再起動テストでは設定が永続化されているかを確認します。ネットワーク切り替えテストでは、特定のLANにだけ存在するDNS、ポート競合、回線制限を見つけられます。3つすべてに問題がなければ、複数デバイスへの移行は完了です。