v2rayN・v2rayNGの設定を複数端末で同期する方法|サブスクリプション・QRコード・設定ファイル

サブスクリプションの共有、共有リンクやQRコード、設定ファイルのインポート・エクスポートを比較し、PCとAndroidでノードやルールをそろえる手順を解説します。

この記事の概要

PCとAndroidで同じノードを使うなら、v2rayNとv2rayNGの両方に同じサブスクリプションを登録するのが基本です。ノードを1つだけ一時的に渡す場合は共有リンクやQRコード、独自のコア設定を移行する場合はファイルのインポートを検討します。サブスクリプションで更新できるのは通常ノードだけで、システムプロキシ、AndroidのVPN権限、DNS、ルーティング全体は同期されません。この記事ではこの違いを踏まえた手順と、更新後の確認方法を紹介します。

同期される範囲:ノードが同じでも動作は同じとは限らない

「PCでは使えるのに、スマートフォンにインポートすると使えない」場合でも、ノードのコピーに失敗したとは限りません。ノード設定には接続先アドレス、ポート、プロトコル、認証情報、通信方式、TLSパラメーターが含まれます。一方、クライアント設定では、端末での通信の受け付け方、ドメイン名の解決方法、通信の出口を決めます。この2つは分けて確認しましょう。

v2rayNはデスクトップ向けクライアント、v2rayNGはXrayコアを採用したAndroid向けクライアントです。両者で共通対応するノード共有形式は利用できますが、クライアントのデータベース、ウィンドウ設定、Androidアプリのプロキシ対象リストは別の設定です。V2flyNGはV2Flyコアを使用するため、インポートできたからといってXray専用機能に対応しているとは限りません。

設定内容サブスクリプションまたはノード共有端末間での扱い
サーバーと認証パラメーター通常は含まれる更新後にノードの詳細を確認
通信方式とTLSのパラメーター共有形式とパーサーによるSNIやパスなどの項目を個別に確認
ルーティングとDNS通常のノードサブスクリプションには含まれない各端末で個別に設定してテスト
ローカル待ち受けポート通常のノード共有では同期されない各端末のローカル設定を使用
システムプロキシとアプリの対象リスト含まれないPCとAndroidでそれぞれ有効化

方法の選び方:継続利用ならサブスクリプション、一時共有ならQRコード

まず管理したい内容を決め、それに合った受け渡し方法を選びます。継続的に同期する場合は、各端末から個別に更新できる安定した設定元が必要です。一時的な共有ならノードのスナップショットで足ります。設定ファイル全体の移行は、コア設定の構造を理解している人に向いています。方法を区別せずに使うと、同じ名前なのに設定が異なるノードが残りやすくなります。

同じサブスクリプションリンク

おすすめ

両方の端末に同じ設定元を登録し、それぞれで更新します。設定元のサーバーアドレスが変わっても、ノードを1つずつ送り直す必要はありません。ただし、更新内容はリアルタイムで配信されず、ローカルのルーティング設定も同期されません。

おすすめの用途:継続利用、複数ノード、定期的なメンテナンス

共有リンクとQRコード

現在のノード情報をシリアライズして、別の端末に渡します。QRコードはテキストを伝えるための手段の1つです。インポートされるのはその時点の設定で、元のノードの変更が自動で反映されるわけではありません。

おすすめの用途:単一ノードのテスト、一時的な共有、対面でのインポート

設定ファイルのインポート

独自のアウトバウンド、ルーティング、DNSを保持したい場合に向いています。ただし、クライアントのバックアップとコア用JSONは区別が必要です。ファイルを読み込めても、端末ごとのパスやすべての項目がそのまま動作するとは限りません。

おすすめの用途:独自のコア設定、同じクライアント間の移行、オフラインバックアップ

サブスクリプションの共有:両端末で個別に登録・更新

サブスクリプションを使う前に、サービスの利用条件で複数端末が許可されているか、同時接続台数に制限があるかを確認してください。同じサブスクリプションリンクは、同一アカウントの認証情報として機能する場合があります。他の人にそのまま転送しないでください。vmess://やvless://で始まる単一ノードの共有リンクとは異なり、サブスクリプションは複数の設定を取得するためのものです。

  1. 設定元を整理する

    管理された場所にサブスクリプションリンク、設定元のメモ、最終更新日を保存します。両端末で「普段使いのサブスクリプション」など同じグループ名を使いましょう。手動ノードは別のグループに分け、更新時に一時的なテスト設定がサブスクリプション一覧に混ざらないようにします。

  2. デスクトップで登録

    v2rayNで「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、グループを追加して「備考」と「アドレス」を入力し、保存します。その後、「サブスクリプショングループ」メニューから「すべてのサブスクリプションを更新(プロキシを使用しない)」を実行します。バージョンによっては選択中のグループだけを更新できます。

  3. Androidで登録

    v2rayNGでサイドメニューから「サブスクリプショングループ設定」→「+」を開き、同じサブスクリプションアドレスと備考を入力して保存します。メイン画面に戻り、右上のメニューから「サブスクリプションを更新」を実行してください。ノード一覧の更新後、デスクトップ側と同じノードを選びます。

  4. タイムアウトへの対処

    直接接続で更新できない場合は、まず既存ノードでインターネットに接続できることを確認します。v2rayNでは「すべてのサブスクリプションを更新(プロキシを使用)」を試せます。v2rayNGでは「設定」に「プロキシ経由でサブスクリプションを更新」があるか確認し、有効にして接続を開始してから再試行してください。項目の場所はバージョンによって異なります。

  5. 更新結果を確認

    両端末のノード数を比較し、同じノードの編集画面を開いて、アドレス、リモートポート、プロトコル、通信方式、TLSを確認します。最後にそれぞれで接続テストを行います。ノード名は識別の目安にすぎず、設定項目の確認の代わりにはなりません。

サブスクリプションの更新でノード一覧が再生成されることがあります。サブスクリプションノードのアドレスや通信パラメーターを直接編集すると、次回更新時に設定元の内容で上書きされる可能性があります。変更を長期保存する場合は手動グループにコピーし、変更理由を記録してください。元のサブスクリプショングループは、上流設定の参照用として残します。自動更新の可否はクライアント設定とバックグラウンド動作の条件によります。スマートフォンがスリープ中でも更新されているとは限りません。

QRコードで共有:コピーされるのはノードで、実行環境は含まれない

QRコードは、デスクトップで接続を確認した単一ノードをAndroidに渡すのに便利です。v2rayNでノードを選び、右クリックして共有機能を開き、QRコードを表示するか共有リンクをコピーします。v2rayNGではメイン画面の「+」→「QRコードをスキャン」で画面上のコードを読み取るか、「クリップボードからインポート」でコピーしたノードテキストを取り込めます。Androidからデスクトップへ渡す場合はノードメニューの共有機能を使い、デスクトップでは「サーバー」→「クリップボードからURLを一括インポート」でテキストを取り込みます。

  • スキャン後に内容を確認:長いリンクから生成したQRコードは細かくなります。大きく表示し、周囲に余白を確保してください。スクリーンショットで端が切れないようにします。読み取りに失敗した場合は元のテキストを使い、認証パラメーターを手入力しないでください。
  • 通信パラメーターを一致させる:WebSocketのパスとHost、TLSのサーバー名、VLESSのフロー制御パラメーターは接続に影響することがあります。VMessの共有形式とVLESSリンクのパラメーター形式も異なるため、プロトコルの接頭辞だけを置き換えることはできません。
  • REALITYは個別に確認:REALITYを使用する場合は、移行先のコアが対応していることを確認し、サーバー名、公開鍵、Short ID、フィンガープリントなどの項目を確認してください。V2FlyコアとXrayでは機能の範囲が異なります。この設定を汎用的な方法としてV2flyNGにそのまま移さないでください。
  • ノードの重複を防ぐ:同じQRコードを再度読み取ると、既存のノードが上書きされず、新しい項目として追加されることがあります。詳細を比較してから古いスナップショットを削除してください。確認せずにノード名だけで一括削除するのは避けましょう。

ファイル移行:クライアントのバックアップとコア用JSONを区別する

「設定をエクスポート」が指す内容は、ノード共有テキスト、クライアント自体のバックアップファイル、コアの実行に使うJSONの3種類に分かれることがあります。クライアントをまたいでノードを直接共有するのに適しているのは、通常1つ目だけです。2つ目は同じクライアントでの復元が主な用途で、3つ目は実行環境全体の確認が必要です。v2rayNのプログラムデータフォルダー全体をv2rayNGにコピーしないでください。

v2rayNGの「+」メニューで「設定ファイルをインポート」を探します。独自のコア設定を取り込む前に、現在動作している設定をバックアップし、ファイル形式が移行先のコアに対応していることを確認してください。独自設定では通常のノード画面が生成するルーティング方式を使わない場合があります。画面上でDNSやルーティングを変更したときの反映状況は、実際に生成された設定とログで確認してください。

項目またはリソース移行時のリスク対処方法
inboundsデスクトップのローカル受け入れ設定はAndroidのVPNインターフェースと異なる移行先クライアントの動作方式に合わせて調整
routingルールが存在しないアウトバウンドタグを参照しているoutboundTagを1つずつ確認
dns名前解決の経路が現在のネットワークに合わないWi-Fiとモバイルネットワークの両方で確認
ログと証明書のパスデスクトップの絶対パスはAndroidに存在しない不要なファイル出力を削除するか、アクセス可能なパスに変更
カテゴリデータファイルカテゴリ名またはデータのバージョンが異なるルールが参照するデータを実際に利用できるか確認

コアJSONのoutboundsには認証情報が含まれる場合があります。クライアントのバックアップにもサブスクリプションアドレスが含まれることがあります。バックアップはアクセス制御された場所に保管してください。復元時はまず1つのノードをテストし、その後にほかの設定を移行します。ノード、DNS、ルーティングを同時に変更すると、問題の原因を特定しにくくなります。

ルーティングの同期:方針をそろえ、端末ごとの違いは残す

端末間で目指すべきなのは、すべての設定を一字一句同じにすることではなく、「同じ種類の通信を同じ出口へ送る」ことです。デスクトップのシステムプロキシが影響するのは、その設定に従うアプリだけです。v2rayNGは通常AndroidのVPNインターフェース経由で通信を受け付け、アプリごとに対象を選べる場合があります。通信の入口が異なるため、同じスイッチを相互にコピーすることはできません。

127.0.0.1
ループバックアドレスは端末自身を指し、別の端末ではない
10808
ローカルプロキシポートの例。実際の値は設定を確認してください
3種類
出口を確認:プロキシ、直接接続、ブロック

たとえばデスクトップアプリに127.0.0.1:10808を設定すると、デスクトップ端末自身の待ち受けポートに接続します。このアドレスをスマートフォンに入力しても、PCには接続されません。スマートフォンのループバックアドレスが指すのはスマートフォン自身です。スマートフォンでVPNモードを使う場合、デスクトップのシステムプロキシポートをWi-Fiのプロキシ設定に入力する必要もありません。

  1. 方針を記録する。どのドメインをプロキシ経由にするか、どのLANアドレスを直接接続にするか、どの通信をブロックするかを整理します。クライアント内部のファイル一式を先にコピーしないでください。
  2. ルールの順序を確認する。コアのルーティングルールは通常、上から順に評価されます。広い範囲に一致するルールを先に置くと、後続の例外ルールが適用されないことがあります。両端末で個別ドメインのルールとデフォルトの出口を確認してください。
  3. カテゴリデータを確認する。geositeとgeoipのルールはローカルデータに依存します。ルール名が同じでもデータが異なれば、マッチ結果も変わる可能性があります。
  4. DNSを確認する。名前解決のリクエストがどの出口を通るか、どのタイミングでドメイン名が解決されるかを記録します。IPアドレス分類に関わるルールでは、DNSサーバーのアドレスだけでなく、ドメイン名の解決方針も確認してください。
  5. プラットフォームごとの差を残す。デスクトップアプリのプロキシ設定とAndroidの対象アプリ一覧は、それぞれ個別に設定します。LAN内のサービスも別途テストし、ローカル通信が誤ってリモートプロキシに送られないようにしてください。

ルールとDNSの関係については、使い方ガイドのDNS設定を参照してください。サブスクリプションを初めて設定する場合は、サブスクリプションのインポート手順をご覧ください。移行後は、プロキシ経由にする通信、LAN内のサービス、明示的にブロックするテスト対象をそれぞれ試し、ログで実際の出口を確認します。

よくある質問:インポート後の確認リスト

同じサブスクリプションなのに、ノード数が異なるのはなぜ?

まず両端末で同じグループを手動更新し、エラーがないことを確認します。次にサブスクリプションアドレスが完全か、フィルターが設定されているか、未対応のノード形式が含まれていないかを調べてください。それでも一覧が異なる場合は、接続元クライアントによって設定元の応答が変わっていないか確認します。QRコードでノードを何度も追加するのは避けてください。

QRコードのインポートには成功したのに、スマートフォンが接続できないのはなぜ?

ノードの編集画面を開き、アドレス、ポート、通信方式、TLS、フロー制御を確認します。次にv2rayNGを起動し、AndroidのVPN権限が許可されていることを確認して、コアのログを確認してください。ログに不明な項目や未対応のフロー制御が表示された場合は、サブスクリプションの設定元を変更するのではなく、移行先のコアとバージョンを確認します。

サブスクリプションを更新したら、手動で変更した設定が消えたのはなぜ?

更新時に、設定元の内容でサブスクリプションノードが再生成されることがあります。カスタマイズが必要なノードは手動グループにコピーして変更し、接続テストを行ってください。サブスクリプショングループには元の設定を残します。接続時に選び間違えないよう、2つのノードには異なる備考を付けましょう。

スマートフォンにインポートしたのに、ルーティングルールが反映されないのはなぜ?

通常のノード共有には、ルーティング全体やDNS設定は含まれません。方針の一覧に沿って両端末に個別設定し、アウトバウンドタグとカテゴリデータを確認してください。コアJSONを移行する必要がある場合は、まず移行先コアとの互換性を確認し、その後に受け入れ設定、ログのパス、端末固有の設定を調整します。

クライアントを再インストールした後、サブスクリプションだけで復元できる?

サブスクリプションで復元できるのは、通常、設定元が提供するノードです。手動ノード、アプリの対象リスト、ローカルルールは復元されません。移行前に、サブスクリプションの設定元、手動ノードの共有テキスト、ルーティング方針の記録をそれぞれ保存してください。同じクライアントのバックアップも補助として保管し、復元後はシステムプロキシやVPN権限を改めて確認します。

安定した管理方法は、サブスクリプションをノードの設定元とし、手動グループに例外を保存し、方針の記録でルーティングとDNSを管理し、通信の受け入れは各端末のローカル設定で行うことです。一度に変更するのは1つの層だけにして、動作を確認してから次へ進みます。こうすればv2rayNとv2rayNGのノードをそろえながら、問題が設定元、プロトコルの互換性、ローカルの実行環境のどこにあるかを素早く切り分けられます。

v2rayNをダウンロード対応プラットフォームとインストーラーを見る