複数デバイスでV2Ray設定を同期する方法:サブスクリプションURL・設定のエクスポート・QRコード共有

パソコン、スマートフォン、予備端末でノードを揃える方法を解説。サブスクリプション、設定ファイル、QRコードの違いと、クロスプラットフォームでの互換性を比較します。

「V2Ray設定の同期」といっても、実際には三つの異なる作業を指す場合があります。複数のデバイスで同じノード一覧を使うこと、特定ノードの接続パラメータ一式をコピーすること、さらにルーティング規則やDNS、システムプロキシの設定まで移行することです。三者では対象となるデータ範囲が異なるため、「インポート成功」だけで同期完了とは判断できません。Windowsのv2rayN 7.x、Androidのv2rayNG 1.10.xおよびv2flyNG 1.10.xを例にすると、ノード接続用の項目は概ね相互利用できますが、クライアントの環境設定やルーティング規則は個別に調整が必要です。

この記事の要点

複数デバイスを長期運用するならサブスクリプションURL、ノードをまとめて一時移行するなら設定のエクスポート、1つのノードだけ共有するならQRコードが便利です。三つの方法で何がコピーされるのかを整理し、VLESS、VMess、Reality、WebSocket、TLS、本体の待受ポートなどが移行先で正しく反映されているか確認できます。

まず同期するデータ範囲を決める

ノード一覧は設定の一部にすぎません。接続可能なノードには少なくともアドレス、ポート、プロトコルの認証情報、トランスポート設定が含まれます。さらに端末側にはグループ、速度測定結果、ルーティング、DNS、待受ポート、システムプロキシの制御状態なども保存されます。サブスクリプションは通常ノード更新を担い、QRコードは通常1ノードだけを運び、設定一式のエクスポートは形式とクライアントの実装に左右されます。

サブスクリプションURL

おすすめ

1か所でノードの配布元を管理し、複数のデバイスから個別に更新します。ノードの追加・削除、ポートや証明書ドメインの変更後も、端末ごとにQRコードを読み直す必要がありません。

向いている用途:パソコンとスマートフォンで同じノード構成を長期間維持する

設定のエクスポート

複数ノードを一度に移行する場合に適しています。ファイルやテキストをオフラインで受け渡せますが、クライアントが異なるとグループやルーティングまで引き継げるとは限りません。

向いている用途:パソコンの買い替え、再インストール前のバックアップ、一括移行

QRコード共有

VMess、VLESSなどの単一ノード用共有リンクをQRコード化し、移行先のデバイスで読み取るとノード記録をすぐ作成できます。

向いている用途:Android端末へ一時的に1つのノードをコピーする

「ノードが同じ」ことと「動作が同じ」ことも分けて考える必要があります。たとえばWindows版v2rayNはローカルのSOCKSポート10808、HTTPポート10809を使用し、LANアドレス向けの直接接続規則を有効にしている場合があります。一方、Android端末に同じノードをインポートしても、この二つの待受ポートやデスクトップ側のシステムプロキシ状態が自動的に引き継がれるわけではありません。モバイル端末は通常、システムが提供する通信制御機構でトラフィックを転送し、デスクトップ端末はシステムプロキシやTUNを使うことがあるため、入口の仕組みが異なります。

方法1:サブスクリプションURLでノード一覧を統一する

複数デバイスを長期的に管理するなら、サブスクリプションが最も安定した方法です。各デバイスに同じURLを登録し、更新時に配布元からノード一覧を再取得します。ノードのアドレス、ポート、トランスポート設定が変更されても、配布元が更新済みであれば、各クライアントで再更新するだけで新しい値を取得できます。サブスクリプションURLにはアクセス利用者を識別するパスパラメータが含まれることが多いため、アカウント認証情報と同じように管理し、公開ページへの掲載や関係者以外への転送は避けてください。

  1. サブスクリプションを追加

    v2rayNのメイン画面で「サブスクリプショングループ」→「サブスクリプショングループ設定」→「追加」と進み、別名とサブスクリプションURLを入力して保存します。

  2. ノードを更新

    「サブスクリプショングループ」に戻り、「すべてのサブスクリプションを更新(プロキシを使用しない)」を実行します。現在のネットワークから配布元へ直接アクセスできない場合は、プロキシ経由で更新します。

  3. コアを確認

    「設定」→「パラメータ設定」→「Coreタイプ」を開き、プロトコルに合ったコアが選択されているか確認します。v2rayNでは、VLESSとRealityの設定は通常Xrayコアで処理します。

  4. スマートフォンへインポート

    v2rayNGまたはv2flyNGで右上の「+」をタップし、「クリップボードからサブスクリプションをインポート」を選ぶか、「サブスクリプション設定」からURLを追加して更新します。

  5. 一括確認

    各端末でノード数、グループ名、更新時刻を確認します。たとえばデスクトップに24ノード、モバイルに19ノードしか表示されない場合は、プロトコルの対応状況やグループの絞り込みを確認してください。

サブスクリプションの更新はリアルタイム配信ではありません。パソコンが09:00、スマートフォンが17:00に更新した場合、その8時間は両端に異なるノード一覧が表示される可能性があります。日常運用では、複数ノードへの接続に失敗したら古いノードを1件ずつ編集するのではなく、まずサブスクリプションを更新するなど、決まった手順を設けるとよいでしょう。自動更新の間隔も短くしすぎないでください。配布元に変更がない状態で頻繁にリクエストしても、接続品質は改善しません。

デスクトップ版の例

クライアント
v2rayN 7.x
SOCKS
127.0.0.1:10808
HTTP
127.0.0.1:10809
更新方法
すべてのサブスクリプションを更新

ポートは端末側の待受設定であり、通常のノードサブスクリプションに含まれて別のデバイスへコピーされるものではありません。

Android版の例

クライアント
v2rayNG 1.10.x
コア
Xray
インポート入口
サブスクリプション設定
更新操作
サブスクリプションを更新

v2rayNGは、VLESSやRealityなどXrayの機能を必要とするノード構成に適しています。

同じサブスクリプションがv2rayNGでは正常に動作するのに、v2flyNGで一部のノードが表示されない場合は、サブスクリプションを何度も削除する前に、プロトコルとセキュリティ層を確認してください。v2flyNGはv2flyコアを使用するため、VMess、WebSocket、TLSなどv2flyが対応する設定に適しています。Reality、特定のFlow、Xray独自の拡張項目を含むノードは、該当項目に対応したクライアントで使用してください。

方法2:設定のエクスポートとファイル移行

継続的なサブスクリプションを使わず、端末の買い替えや現在のノード状態の保存が必要な場合は、エクスポートが適しています。ただし、何をエクスポートしたのかを先に確認してください。共有リンクの一覧、クライアントが読み取る設定ファイル、完全なデータディレクトリでは意味が異なります。共有リンクの一覧はクロスプラットフォームで取り込みやすい一方、速度測定結果、アクティブノード、ウィンドウ配置、システムプロキシ状態は通常含まれません。完全なデータディレクトリは端末全体のバックアップに近いものの、同じクライアント、近いバージョン、同じOS間での復元にしか適さないことが多いです。

  1. 少数のノードを移行:v2rayNのノード一覧で対象を選択し、右クリックメニューから選択したサーバーの共有リンクをコピーして、テキストを移行先のクライアントへインポートします。
  2. 複数のノードを移行:まずグループで絞り込み、一時的なテストノードがエクスポート内容に混ざっていないことを確認します。移行先で総数を比較し、各プロトコルから少なくとも1件を抜き打ち確認します。
  3. v2rayNのローカルデータをバックアップ:クライアントと実行中のコアプロセスを終了してから、プログラムのデータディレクトリをコピーします。データベースや設定ファイルの書き込み中に操作しないでください。復元時は近い7.xバージョンを優先します。
  4. クロスプラットフォーム移行:標準的なVMess、VLESS共有リンクを優先してエクスポートし、Windowsクライアントの完全な設定ファイルをAndroidクライアントが直接読み取れるとは考えないでください。
移行確認記録
移行元のノード数: 24
移行先のノード数: 24
確認するプロトコル: VMess、VLESS
確認するトランスポート: TCP、WebSocket
確認するセキュリティ層: TLS、Reality
ローカル待受: 個別に設定
ルーティング規則: 個別に確認

設定ファイルでは項目名も異なる場合があります。たとえば画面に「偽装ドメイン」と表示される項目が、内部ではHostに対応することがあります。画面上の「SNI」がserverNameとして保存される場合もあります。Realityの公開鍵、短い識別子、ブラウザフィンガープリントも、publicKey、shortId、fingerprintとして保存されることがあります。インポーターは項目のマッピングを行う必要があり、移行先のクライアントが古い、またはコアが項目に対応していない場合、一覧に表示されても接続を確立できない可能性があります。

方法3:QRコードで単一ノードを共有する

QRコードは新しいプロキシプロトコルではなく、共有テキストを視覚的に符号化したものです。v2rayNはノード記録をVMessまたはVLESS共有リンクに変換し、そのリンクを画像として符号化します。v2rayNGはスキャン後に同じテキストを解析してノードを作成します。QRコードは1回につき1つの設定を扱うため、一時的なノード追加には向いていますが、継続的に変化する数十件のノード一覧の管理には適しません。

VLESS + Reality

トランスポート
TCP
セキュリティ層
Reality
Flow
xtls-rprx-vision
必須項目
公開鍵、短い識別子
フィンガープリント
chrome

スキャン後はSNI、publicKey、shortId、fingerprintを必ず確認してください。1項目でも欠けるとハンドシェイクに失敗する可能性があります。

VMess + WS + TLS

トランスポート
WebSocket
パス
/ws
Host
サーバー設定と一致
セキュリティ層
TLS
ポート
443

WSパス、Host、SNIを重点的に確認し、サーバーアドレスとポートだけを比較しないでください。

QRコードは画面の鮮明さにも左右されます。長いVLESS Realityリンクは密度の高い画像になるため、遠距離からの撮影や画像圧縮後は読み取りに失敗しやすくなります。デスクトップのQRコードを約400×400ピクセル以上に拡大し、画面を明るくして、カメラを垂直に保ってください。それでも読み取れない場合は、共有リンクをコピーする方法に切り替えます。URLを短くするためにクエリパラメータを削らないでください。削除したSNI、Flow、公開鍵、フィンガープリントが接続に必須の場合があります。

クロスプラットフォームの項目互換性を確認する方法

互換性は「プロトコル層→トランスポート層→セキュリティ層→クライアントの機能」の順に確認します。VMessまたはVLESSが認証情報と基本プロトコルを決め、TCPまたはWebSocketがトランスポートを決め、TLSまたはRealityが安全なハンドシェイクを担います。最後に、クライアントとコアがすべての項目を解釈できるかを確認します。同じ名前のノードでも設定が同一とは限りません。ノード名はラベルであり、実際の接続には影響しません。

設定項目 サブスクリプション エクスポートまたは共有リンク QRコード 確認ポイント
アドレスとポート 通常含まれる項目 通常含まれる項目 含まれる ドメイン名が完全か、ポートが443または実際のサービスポートのままか
ユーザーID 通常含まれる項目 通常含まれる項目 含まれる コピー時に空白や文字の欠落が混ざらないようにする
WSパスとHost 形式による 標準リンクに含められる項目 リンクに含めて符号化 パス先頭のスラッシュ、Host、SNIを混同しない
Realityパラメータ 形式の対応が必要 VLESSリンクに含められる項目 リンクに含めて符号化 publicKey、shortId、fingerprint、serverName、Flow
ルーティング 通常、ノードサブスクリプションには含まれない 単一ノードのリンクには含まれない 含まれない ドメイン規則、IP規則、インバウンドタグは個別に設定する必要があります
ローカルポート 含まれない 単一ノードのリンクには含まれない 含まれない たとえばv2rayNの10808と10809は端末側で設定します

VLESS Realityは「インポートには成功したのに接続できない」状態が最も起きやすい組み合わせです。移行元がxtls-rprx-visionを使用している場合、移行先でもFlowを保持する必要があります。フィンガープリントがchromeだったのに、インポート後に空欄になるとハンドシェイクで失敗することがあります。短い識別子は空の場合も、サーバー指定値の場合もあるため、経験だけで補わないでください。公開鍵とユーザーIDも別の項目であり、コピー時に入れ替えてはいけません。

VMess WebSocket TLSは比較的互換性を確認しやすい構成ですが、WebSocketパス、Host、SNI、TLSの有効化を同時に確認する必要があります。たとえばサーバーアドレスが203.0.113.10、ポートが443でも、Hostに同じアドレスを入力するとは限りません。HostとSNIには、サーバー側で指定されたドメインを使う場合があります。例示のアドレスは項目の関係を説明するためのものであり、実際の設定ではサブスクリプションまたは共有リンクに記載された元の値を維持してください。

ルーティングは独立した設定として扱います。v2rayNでドメイン、IP、プロセス、インバウンドタグに基づいて作成した規則は、ノードを1つQRコードで読み取っただけではv2rayNGに自動追加されません。複数デバイスの動作を近づけたい場合は、「LANは直接接続、特定ドメインも直接接続、それ以外はアクティブノード経由」のように共通の目的を先に定め、各クライアントが対応するルール編集画面で個別に実装します。デスクトップ版とAndroid版では保存構造が異なる可能性があるため、規則ファイルのテキストを直接比較しないでください。

再現可能な同期手順を作る

複数デバイスの管理で重要なのは、毎回より多くのデータをコピーすることではありません。ノードの配布元を一つにし、端末固有の設定は端末側に残し、切り戻せる記録を保つことです。普段使うパソコンをサブスクリプション内容の確認担当にしても、パソコン上の速度測定順を全デバイスの固定順序にしないことをおすすめします。スマートフォンと予備端末は同じサブスクリプションを定期的に更新し、それぞれのネットワークで再測定します。

同じサブスクリプションなのに、両端末でノード数が違うのはなぜ?

まず両端末で更新時刻を記録し、次にサブスクリプショングループの絞り込みを確認します。v2rayNが24件、v2flyNGが19件の場合は、表示されない5件がRealityなど移行先のコアで解釈できない項目を使っていないか確認してください。

QRコードを読み込めたのに、なぜ接続できない?

ノードの編集画面を開き、アドレス、ポート、ユーザーID、トランスポート、セキュリティ層、SNIの順に確認します。VLESS RealityではFlow、publicKey、shortId、fingerprintも確認し、その後コアのログでハンドシェイクエラーを確認してください。

v2rayNの設定一式をv2rayNGへ直接インポートできる?

設定一式として移行しないでください。まずサブスクリプションまたは共有リンクでノードをインポートし、その後v2rayNGでルーティング、DNS、接続モードを個別に設定します。Windowsのシステムプロキシ、ローカル待受ポート、ウィンドウ状態はモバイル版のノードパラメータではありません。

サブスクリプション更新後も古いノードが残る場合は?

古いノードが手動グループまたは別のサブスクリプションに属していないか確認します。まずグループ別に出所を確認してから、該当するサブスクリプションを更新してください。ノード名だけで一括削除すると、手動保存した緊急用設定まで削除するおそれがあります。

パソコンを替えた後もポートは10808を使う必要がある?

必須ではありません。10808と10809は一般的なローカル待受の例で、「設定」→「パラメータ設定」から変更できます。変更後は、ブラウザーや他のアプリで手動指定したプロキシポートも変更し、古い値を参照し続けないようにしてください。

最終確認は3段階で行えます。第1段階はノード記録が完全か、第2段階はコアが接続を確立できるか、第3段階は実際のアプリ通信が想定どおりルーティングされるかです。インポートだけでは第1段階にすぎません。遅延値が表示されても、通常は測定経路が応答したことしか示しません。Webページ、更新サービス、指定アプリがすべて規則どおり動作して初めて、ノード、システムの入口、ルーティングが連携して機能していると判断できます。

多くの利用シーンでは結論は明確です。サブスクリプションURLはノード一覧の長期同期、設定のエクスポートは端末交換とオフライン保存、QRコードは単一ノードの一時共有に使います。ルーティング、DNS、ローカルポート、システムによる通信制御はプラットフォームごとに管理します。これらの境界を整理すれば、複数デバイスの設定ファイルを完全に同一にする必要はありません。接続項目が一致し、コアの機能が対応し、各端末で動作確認ができていれば十分です。

V2Rayクライアントをダウンロード