V2Ray Configuration Sync Across Devices: Subscriptions, Share Links, and Backups

Compare ways to sync V2Ray settings between desktop and Android, from subscriptions and QR codes to share links and app backups.

At a glance

For a shared set of nodes on desktop and Android, add the same subscription on each device. To move a single node temporarily, use a share link or QR code. For a new device running the same client, consider an app backup. Each method transfers different data. This guide covers node details, subscription sources, and local settings, then walks through post-migration checks.

1. Separate Node Sync from App Settings Migration

“Configuration sync” can mean at least three things: getting the same server list on two devices, retaining subscription URLs and groups, and copying local settings such as routing, DNS, and listening ports. A subscription usually handles only the first. A share link describes a specific node, while an app backup may include more local state. Treating these as interchangeable often leads to a familiar result: the node imports, but behaves differently.

v2rayN is a desktop client. v2rayNG is an Android client using the Xray core, while v2flyNG uses the V2Fly core. They are separate apps, not different interfaces for the same app, and their configuration databases are not necessarily compatible. Even when protocol names such as VMess and VLESS match, clients and core versions may handle transport and security settings differently.

Use the Same Subscription Link

Recommended

Each device fetches its node list from the same source. After changes on the provider’s side, update each client separately. The selected node, local rules, and update time remain device-specific.

Best for: keeping the same set of nodes up to date on desktop and Android.

Share Links or QR Codes

A snapshot of node settings at the time of export. A QR code is simply another way to carry a link; it generally does not include the original subscription URL or receive future node updates.

Best for: quick tests, a few manually managed nodes, or in-person transfers.

App Backup

What gets saved depends on the client’s backup feature and may include groups and app settings. Before restoring, check that the client, version, and backup format are compatible.

Best for: moving to a new device or reinstalling the same client while keeping its settings.

Bottom line: Use subscriptions for updates; keep device-specific settings local

Start with the same node source on both devices, then configure the desktop system proxy and Android per-app proxy separately. Don’t overwrite local rules that need to differ just to make both devices “identical.”

2. Share a Subscription: Add and Update It on Each Device

First, check the subscription provider’s device limit and concurrent connection policy. Importing the same URL on two devices only confirms that the URL can be read; it doesn’t mean the account allows unlimited devices. Use the HTTPS subscription URL provided by the service. Don’t mistake the web dashboard’s sign-in URL for a subscription link.

  1. Add a group on desktop: In v2rayN, open “Subscription Group” → “Subscription Group Settings,” add a group, enter a label and subscription URL, then save. For easy reference, you could name it “Daily Subscription.”
  2. Fetch nodes on desktop: Go back to “Subscription Group” and choose “Update current subscription (without proxy)” or the equivalent option. Labels vary slightly by version. Make sure the group you just saved is selected; saving the URL alone won’t populate the list.
  3. Save the source on Android: In v2rayNG, open “Subscription Group Settings” from the side menu and add the same URL. Return to the main screen, tap the top-right menu, and choose “Update subscription.” Use v2flyNG’s own subscription settings and update controls; don’t import v2rayNG’s app data directory.
  4. Compare results on each device: Check the number of nodes in the group, their labels, and a node’s server address and port. If the provider returns different content depending on the client, the counts may differ. Check format compatibility rather than importing the same list again.

If the first update fails, identify where it went wrong. An unreachable URL, a sign-in page in the response, and a subscription parsing error are different problems. If your current network can’t fetch the subscription directly, try the client’s update-through-proxy option only if you already have a working connection. Switching update methods repeatedly won’t create missing configuration when no usable node is available.

Recommended setup: One source, independent connection settings on each device

Desktop: v2rayN
  • Save the subscription URL and select an active node after updating.
  • Set the system proxy and routing mode to suit your needs.
  • For automatic updates, check whether your version has an update interval setting.
Android: v2rayNG
  • Add the same subscription, update it, and check the parsed results.
  • Grant system VPN permission when connecting.
  • Set up per-app proxy rules and battery permissions on the phone.

A shared URL standardizes the node source; it doesn’t sync the selected node, update time, or local proxy mode in real time.

3. Share Links and QR Codes: Transfer a Snapshot of One Node

Share links are a straightforward option when you have only a few manually managed nodes or want to check whether the destination client can use a particular configuration. Common node links start with vmess:// or vless://. Subscription URLs are usually HTTPS, but the prefix alone doesn’t tell you what they contain. An HTTPS URL could also lead to a web page; check the response the client actually receives.

  1. On the source device, select a node and choose the share, export share link, or QR code option from its menu. Menu labels vary by version. Export the node itself, not the subscription group’s access URL.
  2. For v2rayN, choose “Server” → “Import batch URLs from clipboard.” For v2rayNG, tap “+” on the main screen and choose “Import from clipboard” or “Scan QR code.”
  3. After importing, check the protocol, server address, port, user ID, transport, and TLS settings before connecting. Matching node names don’t guarantee matching settings.
  4. Once you’ve confirmed the destination can connect, delete temporary transfer records and QR code images you no longer need. Don’t leave a QR code containing credentials in a shared photo album.

A VLESS node may also require settings such as the server name, flow control, or public key. WebSocket transport may need a path and Host value. If the destination client doesn’t recognize certain fields, the import may succeed but the connection can still fail. Compare the source settings with the destination’s edit screen instead of switching to a different transport at random. If the source has settings the destination lacks, first check whether that client and core version support them.

4. Importing Backups: Know What You Exported

“Export servers,” “export full configuration,” and “back up app data” sound similar but cover different things. A server share mainly contains node details. A core configuration may include inbounds, outbounds, routing, and DNS. An app backup may save the client’s groups and preferences. JSON that a core can read isn’t necessarily a backup file that restores the client’s interface and state.

Exported itemWhat it containsCheck before importing
Node shareServer, authentication, and transport settingsDestination client supports the link format and protocol fields
Core JSON configurationMay include full inbounds, outbounds, and rulesCore type, supported fields, and file reference paths
Client app backupContents depend on the app and versionRestore option, format version, and whether restore replaces or merges data

When moving to a new device with the same client, use the backup and restore feature documented for your current version, and note the source version. If the version has no full backup option, don’t treat “export nodes” as a complete backup. Record subscription groups, routing choices, DNS, and ports separately. When moving between v2rayN, v2rayNG, and v2flyNG, prefer a subscription or standard share link; don’t overwrite each other’s data files.

5. Post-Migration Checks: Separate Remote and Local Ports

If the same node produces different results, first check whether traffic is reaching the client. The desktop system proxy, Android VPN routing, split routing, and DNS are all local settings; subscriptions don’t standardize them. In particular, don’t change the server’s connection port to match another device’s local listening port.

443
Example remote server port; use the value in the node settings
10808
Example local listening port; use the value in the client settings

These numbers only illustrate the different roles of the ports; they aren’t required settings. Enter the actual open port of the remote server in the node. In a browser or other local app, enter the proxy address and port that the current client listens on. Two separate devices can both listen on 127.0.0.1:10808 without conflicting. On the same computer, two processes trying to use the same listening address and port can fail to start.

  1. Check the node: Select the same compatible node on both devices and check the logs for parsing, authentication, or connection errors.
  2. Check traffic routing: In v2rayN, check the system proxy status. Apps with a manually configured proxy need their own settings checked too. In v2rayNG or v2flyNG, check system VPN permission and connection status.
  3. Check routing rules: Check whether bypass rules are enabled and whether the test app is excluded. Android app package filters can’t be directly substituted for desktop app settings.
  4. Check DNS: If only some domains fail on the same node, compare DNS and routing settings on both devices. Change one setting at a time and keep the original value so you can restore it.

Bottom line: Confirm traffic reaches the client before comparing node settings

Select the same node and test address on both devices, then check their logs. If the destination has no corresponding connection entry, troubleshoot proxy routing or app filters first. If there’s a connection error, check authentication, transport, and server settings.

6. Ongoing Maintenance: Updates, Duplicate Nodes, and Expired Credentials

With multiple devices, the most common problem isn’t the initial import; it’s one device staying on an old list. Whenever the provider changes its nodes, update each client separately, confirm the update succeeded, and select a node that’s still available. Subscription updates generally don’t sync the active node selected on desktop to Android.

Why does the same subscription show different node counts on each device?

First confirm both devices updated the same group and that both updates succeeded. Then check whether the subscription response varies by client and whether the destination skips unsupported protocols or settings. Don’t repeatedly import batches of share links just to match the counts; that can leave duplicate nodes that won’t receive future updates.

Will edits to a node’s label or settings survive an update?

It depends on how the client replaces and matches subscription nodes; don’t assume local edits will be preserved. For settings you need to maintain, save them in a manually managed group and record their source. Keep the subscription group as a mirror of the provider’s content to avoid having to reapply changes after every update.

Do I need to re-import all nodes if the subscription URL changes?

First, edit the URL in the existing subscription group and update it. Then check that old nodes have been removed and the current node still works. If you must create a new group, verify it works before removing the old one so you don’t lose a usable configuration midway through the move.

If a subscription link or backup is exposed, is deleting the local file enough?

No. Reset the subscription access credentials in the provider’s account settings. If node authentication details were also exposed, change those through the provider’s process as well. Resetting the subscription URL alone may not invalidate nodes already exported. Then update each device and delete shared copies of old links and backups.

Keep a migration record that doesn’t include credentials: client version, subscription group names, the date of the last successful update, and any local routing or DNS changes. When changing devices, restore the node source first, then use the record to reapply local settings. This reduces duplicate imports and helps identify whether a problem stems from the source, compatibility, or device settings.

Download v2rayN