デスクトップと Android の両方で V2Ray を使うユーザー向けに、共有リンクのエクスポート、両端末で同じサブスクリプション URL を使う方法、自前の同期フォルダという 3 つの移行手段を比較し、それぞれの操作手順と向いている場面を解説します。あわせて、端末を変えたあとに確認し直すべきルーティングモード、アプリ別プロキシ、ローカルポートなどの設定項目も整理します。
端末間で設定を移す 3 つの方法と使い分け
移行の前に、何を移すのかを切り分けておきましょう。ノード一覧はサブスクリプションから再取得できますが、ローカルのルーティングルール、アプリ別プロキシのリスト、DNS 設定はサブスクリプションには含まれず、別途対応が必要です。移す対象の粒度で分けると、よく使われる方法は次の 3 つに整理できます。
共有リンクのエクスポート
v2rayN でノードを右クリックして vmess:// または vless:// リンクをエクスポートし、v2rayNG でクリップボードからインポートします。1 回につき 1 ノード、パラメータはそのまま引き継がれます。
向いている場面:ノードを一時的に 1〜2 個足したい、1 台の端末でノードを試したい
サブスクリプション URL の共用
おすすめ両端末に同じサブスクリプション URL を登録し、サーバー側でノードを追加・削除したらそれぞれ更新するだけで、ノード一覧が常に一致します。端末間でファイルをやり取りする必要はありません。
向いている場面:長期的に 2 台で使う、ノードの増減が頻繁
自前の同期フォルダ
設定ファイルを LAN の共有フォルダや自前の同期フォルダに置き、ルーティングや DNS ごと移します。持ち出せる範囲は最も広い代わりに、維持の手間も最も大きくなります。
向いている場面:デスクトップ端末が複数ある、ルールごと移したい
3 つの方法は排他的ではありません。実際には、サブスクリプション URL でノード一覧を揃えておき、一時的なノードは共有リンクで補うという組み合わせが一般的です。ルーティングルールや DNS 設定まで端末間で再利用したい場合にだけ、同期フォルダを用意する価値があります。
方法 1:共有リンクをエクスポートしてノード単位で移す
v2rayN のノード一覧で任意のノードを右クリックすると共有リンクをエクスポートできます。リンクの文字列は vmess://、vless://、trojan://、ss:// のいずれかのプロトコルヘッダーで始まります。リンクにはそのノードの接続パラメータがすべて含まれており、Android 側で v2rayNG がクリップボードからインポートすると、デスクトップ側と同じパラメータのノードが生成されます。
vmess:// Base64 でエンコードされた JSON。アドレス、ポート、UUID、alterId、転送方式を含む
vless:// 平文パラメータ。encryption=none、type、security(reality など)を含む
trojan:// パスワード + SNI + 転送方式のパラメータ
ss:// 暗号化方式とパスワードの Base64 断片 + サーバーアドレス
共有リンクが運べるのは 1 つのノードの接続パラメータだけです。サブスクリプションのグループ名やノードの並び順、ローカルのルーティングと DNS 設定は含まれません。そのため、ノードを個別に補うのには向いていますが、設定全体の引っ越しには向いていません。
デスクトップ側でエクスポート
v2rayN のノード一覧で対象ノードを右クリックし、「共有リンクのエクスポート」を選ぶと、リンクがクリップボードにコピーされます。
リンクを渡す
スマートフォンへ送る方法は、クリップボード同期、自分用のチャット、LAN 内のファイル転送など何でも構いません。
Android 側でインポート
v2rayNG のメイン画面右上のメニュー →「クリップボードから設定をインポート」で、ノードが一覧の末尾に追加されます。
パラメータを照合
インポートしたノードを長押しして詳細を開き、アドレス、ポート、UUID がデスクトップ側と完全に一致するか確認します。
単体で動作確認
そのノードを選んで接続し、テストページにアクセスして出口アドレスが変わったことを確認します。
ノード数が少なく一時的な用途なら、共有リンクが最短ルートです。ただしノードが増えると 1 つずつエクスポート・インポートする手間が無視できなくなるので、サブスクリプション URL の方法に切り替えましょう。
共有リンクには UUID やパスワードが含まれます。受け渡しは公開チャンネルを避け、用が済んだらチャット履歴を消しておくと安心です。
方法 2:両端末で同じサブスクリプション URL を使う
サブスクリプション URL はサーバー側で生成される 1 本の URL で、クライアントが取得するとノード一覧が自動生成されます。デスクトップの v2rayN と Android の v2rayNG に同じ URL を登録しておけば、両者のノード一覧は常に一致します。サーバー側でノードを追加・削除したあとは、両端末でそれぞれサブスクリプションを更新すれば同期完了で、端末間でファイルをやり取りする必要はありません。Android 側で v2flyNG(v2fly コア)を使う場合も、サブスクリプションのインポート手順は同じです。コアが違うぶん、ノードパラメータの対応範囲に多少の差があります。
サブスクリプションが同期するのはノードだけです。ローカルの待ち受けポートは同期の対象外です。v2rayN は既定で 10808 に SOCKS、10809 に HTTP の入口を開き、v2rayNG の既定のローカル SOCKS ポートも同じ 10808 です。端末を移したあと、プロキシアドレスを特定のポートに固定しているアプリがあれば、その設定を手動で合わせる必要があります。
サブスクリプション設定にはつまずきやすいポイントが 3 つあり、両端末で注意が必要です。
- 自動更新の間隔:v2rayNG は「サブスクリプション設定」で自動更新の周期を指定でき、v2rayN は「サブスクリプション」→「サブスクリプション設定」で時間単位に設定します。どちらも有効にしておくのがおすすめです。ノードが期限切れになったあとも古い一覧を使い続けるのを防げます。
- 更新をプロキシ経由で行うか:サブスクリプションのドメインがローカルネットワークで遮断されている場合は、「サブスクリプションを更新(プロキシ不使用)」で取得できることが多く、逆にそのドメインへアクセスするのにプロキシが必要な場合はプロキシ経由で更新します。v2rayN のサブスクリプションメニューにはどちらの入口もあります。
- サブスクリプションのグループ名:両端末で別々の名前を付けても構いません。グループ名はローカルのラベルにすぎず、ノードのパラメータにも更新結果にも影響しません。
方法 3:自前の同期フォルダでルールごと移す
移したいのがノードだけでなく、ルーティングルール、DNS 設定、アプリ別プロキシのリストまで含む場合、サブスクリプション URL では対応できません。そこで設定ファイルそのものを同期する方法が候補になります。v2rayNG はメイン画面右上のメニューに「設定をクリップボードへエクスポート」があり、エクスポートされる内容にはノードと一部のローカル設定が含まれます。デスクトップの v2rayN は設定を guiNConfig.json としてプログラムのディレクトリに保存します。こうしたファイルを LAN の共有フォルダや自前の同期フォルダに置き、両端末から必要に応じて読み込めば、手入力の手間を大幅に減らせます。
その代わり、維持のコストは明らかに増えます。Android 側はストレージ権限の制約から、通常は手動でエクスポートし、手動で同期フォルダに置くしかなく、自動化の度合いはサブスクリプションに及びません。しかも両端末のコアと設定構造は同じではないため、デスクトップの guiNConfig.json をそのまま v2rayNG に渡すことはできず、再利用できるのは主にノードのパラメータとルールのテキストです。3 つの方法を並べて比べると、違いは移す対象と更新の方式に集約されます。
| 方法 | 移す対象 | ノードの更新 | ルールと DNS | 主なコスト |
|---|---|---|---|---|
| 共有リンクのエクスポート | 単一ノード | 手動 | 追従しない | ノードが多いと作業が重複する |
| サブスクリプション URL の共用 | ノード一覧全体 | 自動 | 追従しない | サーバー側のサブスクリプションが利用できることが前提 |
| 自前の同期フォルダ | 設定ファイル | ファイル次第 | 追従できる | 両端末でフォルダへのアクセスを維持する必要がある |
手間が少ないのは、ノードはサブスクリプションで同期し、ルーティングルールやアプリ別プロキシのリストといった設定項目は端末ごとに設定し直し、その結果をチェックリストとして残しておいて、端末を変えるたびにそれを見ながら確認する、という組み合わせです。
端末を変えたあとに確認し直す設定項目
ノード一覧はサブスクリプションに追従しますが、ローカル設定は追従しません。デスクトップから Android へ移したあとは、以下の項目をひとつずつ確認しましょう。既定値がもう一方の端末での習慣と食い違っていることがよくあります。
確認チェックリスト:ノード以外の設定項目
デスクトップ側(v2rayN)
- 「設定」→「パラメータ設定」でコアの種類を確認
- ルーティングメニューの分流モード
- ローカルポート 10808(SOCKS)、10809(HTTP)
- システムプロキシのオン/オフと自動起動
Android 側(v2rayNG)
- ルーティングモード:グローバル / LAN と中国本土をバイパス
- アプリ別プロキシ:プロキシを通すアプリにチェック
- ローカル SOCKS ポートは既定で 10808
- 自動起動と通知バーのクイック切り替え
サブスクリプションが揃えるのはノードだけです。この 4 項目は端末側の設定なので、端末を変えたら必ず確認し直してください。
両端末の既定値の違いは 4 か所に集中しており、移行時に最も見落としやすい部分です。
| 設定項目 | v2rayN 側 | v2rayNG 側 | 端末を変えたあとの操作 |
|---|---|---|---|
| ルーティングモード | ルーティングメニューで分流方式を切り替える | ルーティングモードのプリセットに「グローバル」「LAN と中国本土をバイパス」がある | 現在のネットワーク環境に合わせて選び直す。以前の端末の習慣を引きずらない |
| アプリ別プロキシ | アプリ単位でチェックする入口はなく、範囲はシステムプロキシまたは TUN で決まる | 「アプリ別プロキシ」でアプリを 1 つずつチェックする | リストはサブスクリプションでは同期されないため、チェックし直す必要がある |
| ローカルポート | 10808 / 10809 | 既定 10808 | ポート番号を固定しているアプリは 1 つずつ合わせる |
| 自動起動 | パラメータ設定でチェック | 設定で個別にオンにする | 両端末でそれぞれ切り替える。互いに影響しない |
同期完了後の確認手順
設定を移したらすぐ使い始めず、以下の順番で確認すると、同期のトラブルの多くを未然に防げます。
- ノード数を照合する:両端末の一覧の件数が一致しているはずです。1〜2 件足りない場合はサブスクリプションの更新が完了していないことが多いので、「サブスクリプションを更新」をもう一度実行します。
- つながらないノードを除外する:実接続の遅延テストを一通り実行し、接続できる項目だけを残します。
- プロキシが有効か確認する:接続後にテストページへアクセスし、出口アドレスが変わっているかを見ます。
- ローカルポートを確認する:デスクトップ側ではブラウザのプロキシ拡張やコマンドラインツールを 10808 に向け、SOCKS の入口が応答するか確かめます。
- 分流を検証する:直接接続すべきドメインにアクセスし、プロキシの出口を通っていないことを確認します。
同じマシンで 2 つのクライアントを同時に動かすと 10808 を取り合います。どちらか一方の設定でローカルポートを 10809 などの空いているポートに変更し、もう一度確認してください。
サブスクリプション URL には識別情報が含まれるため、他人に転送するとノードをそのまま渡すのと同じです。端末を変えるときは、古い URL をあちこちに転送するのではなく、サーバー側で新しいサブスクリプション URL を再生成するのが望ましいです。