v2rayN and v2rayNG Config Sync Across Devices: Subscriptions, QR Codes, and Backups

Compare subscription links, QR code sharing, and config backups for syncing v2rayN and v2rayNG across desktop and Android, including what to check when migrating routing rules and custom nodes.

At a glance

For desktop and Android devices using the same nodes, import the same subscription on each. To move a single node, use a share link or QR code; when replacing a device, restore a client backup. Each method covers different data: node settings can be transferred, but routing, DNS, listening ports, and per-app settings usually need to be checked separately. The steps below explain what to import, verify, and back up.

What Each Sync Method Transfers

v2rayN is a desktop client, while v2rayNG is an Android client that uses the Xray core. The client stores nodes, subscriptions, and interface settings; the core handles the connection. Even if both clients can read the same node-sharing format, that doesn't mean their settings databases can be imported into each other.

Import the Same Subscription on Both Devices

Recommended

Both devices get nodes from the same source. When the source updates its nodes, refresh the subscription on each device. Selected nodes, routing rules, and system proxy status do not sync automatically.

Best for: Desktop and Android devices using the same subscription long-term.

Share Link or QR Code

Import the selected node's settings on the other device. This is a snapshot from the time of export; it won't track changes to the original subscription or include global client settings.

Best for: Sharing a node temporarily or moving a server you added manually.

Client Backup

Save data the app supports exporting. The backup contents depend on the client and are mainly intended for restoring that same client; a desktop backup can't be used directly as an Android backup.

Best for: Reinstalling, replacing a device, or saving a copy before major config changes.

First decide whether you need to move a server connection or the entire setup. A server connection includes the address, port, user credentials, and transport security settings. The full setup also includes DNS, routing order, app lists, startup behavior, and local listeners. Scanning a QR code alone won't migrate the latter.

Subscription Links: Import and Update on Each Device

A subscription URL usually contains access credentials. Get it from the original service account or saved subscription settings. Don't enter a node's vless:// or vmess:// share link in the subscription URL field. A subscription provides a list of nodes; a share link describes a single node.

  1. Check the Subscription Source

    Open the subscription group editor on the original device and copy the full URL, including its query parameters. If the service offers multiple subscription formats, choose a node subscription format both clients can parse—not a complete ruleset intended for another config system.

  2. Add a Group on Desktop

    In v2rayN, open “Subscription Group” → “Subscription Group Settings,” add a group, and enter a name and URL. Save, return to “Subscription Group,” and choose “Update All Subscriptions.” Whether to update through a proxy depends on which connections are reachable on your current network.

  3. Add the Subscription on Android

    In v2rayNG, open “Subscription Group Settings” from the side menu, tap “+,” enter a name and subscription URL, and save. Return to the main screen, open the top-right menu, and choose “Update Current Group Subscription.” Make sure the newly created subscription group is selected.

  4. Verify and Connect

    On each device, check the target node's server address, port, and protocol, then select it and connect. Menu labels may change between client versions; always update the group you just saved, not a manually created group with the same name.

If you need to edit a node from a subscription, export it first and put it in a separate manual group. An update may recreate the subscription entry, so don't rely on it to preserve long-term local edits. Use distinct group names, such as “Daily Subscription” and “Manually Managed,” to avoid updating the wrong group.

QR Codes and Share Links: Move a Single Node

When sending a node from a computer to a phone, a QR code avoids copying and pasting across devices. For phone-to-computer transfers, copying a share link is usually easier. Both typically carry the same node URI; a QR code can't restore fields missing from the original link.

  1. In the v2rayN node list, select the target node and open the context menu's sharing or QR code option. Make sure you're exporting a node, not a subscription URL.
  2. In v2rayNG, tap “+” on the main screen → “Scan QR Code.” To transfer text instead, copy the full share link, then tap “+” → “Import from Clipboard.”
  3. To move a node from Android back to desktop, use the node's sharing option to copy its link. In v2rayN, choose “Server” → “Import Bulk URLs from Clipboard” on the main screen.
  4. After importing, open the node editor and compare the transport, security, and identity fields. Test the new entry before deleting duplicates, and keep the working original as a fallback.

Don't assume an import is complete just because the node name matches. For VMess, check the user ID, encryption settings, transport, and TLS. For VLESS, check the user ID, Flow, and transport security. With WebSocket, also check the path and Host. With TLS, the connection address and server name may differ; don't change them to match without a reason.

If switching to v2flyNG, which is based on the V2Fly core, check protocol support again. Don't assume a config that works in v2rayNG will also work if it depends on Xray-specific features. Seeing a node name only means the importer read some of the data; it doesn't mean the core can start that node.

Handle Routing, DNS, and Local Ports Separately

The most commonly missed part of cross-device config sync is the runtime environment. The desktop system proxy affects only apps that use the system proxy, while Android's VPN service handles traffic within its selected scope. These mechanisms work differently, so copying a setting called “Global Mode” won't make behavior identical.

Node Settings: Check Each Field

Server port
Use the value provided by the server
User identity
UUID or equivalent credentials
Transport settings
TCP, WebSocket, and related fields
Security settings
Complete TLS or REALITY settings

These fields determine the connection target and can be transferred with a compatible sharing format.

Device Settings: Check Each Device

Local listener
Example: 127.0.0.1:10808
Routing order
Specific rules first, fallback rules last
DNS settings
Resolver address and outbound route
Traffic entry point
System proxy or Android VPN service

10808 is only an example of a local port. It isn't a server port or a guaranteed default across versions.

When migrating routing rules, note the domain or IP match conditions, target outbound, and rule order, then recreate the equivalent rules on the other device. Don't paste an entire config containing desktop file paths, process-based conditions, or outbound tags that don't exist on the other device. Outbound tags must match an outbound in the target config; also check that any rule sets are installed or available there.

Config Backups: Distinguish App Data from Core Runtime Files

Before backing up, note the client name, exact version, selected core, and system architecture. Check the device's About screen and core logs rather than guessing from the installer filename. An app backup and a core JSON file are different things: the former restores app state, while the latter describes the proxy config for a particular run.

  1. Save Essential Details

    Save the subscription URL and share text for manually added nodes separately. Also record routing order, DNS, per-app lists, and local ports. Store sensitive fields in encrypted storage, not in a public document.

  2. Back Up the App

    Use the backup or export feature available in the client version you're actually running, and check what it includes. If you need to copy data from a portable v2rayN installation, exit the app first, confirm the files have been written, and copy the actual user data directory—not just the main program.

  3. Restore Data Separately

    For the same client, use its restore function. To move from desktop to Android, import the subscription and manual nodes separately, then recreate routing and other settings. Don't give v2rayNG a v2rayN database or app settings file to read.

  4. Keep a Rollback Copy

    After restoring, check that the subscription URL, manual groups, and routing rules are all present, then test the connection. Don't delete data from the old device or overwrite your only backup with an empty config until everything works.

Post-Migration Checks and Common Issues

Change one variable at a time during testing. First connect to the target node using the new device's default, straightforward routing. Then restore custom DNS, routing rules, and app scope one by one. This helps distinguish node-setting problems from local policy issues instead of blaming every failure on the subscription.

Why Are the Node Lists Different with the Same Subscription?

Compare the full URL in each device's subscription editor, then update the corresponding group on both. Check for node filters and whether either client lacks support for some protocols. Confirm the original subscription format before deciding whether the source returned different content or local parsing caused the difference.

The QR Code Imported Successfully. Why Won't It Connect?

Open the new node's editor and compare its port, transport path, server name, and REALITY fields with the original device, then check the startup logs. On desktop, confirm the active core supports the protocol. Don't turn off certificate verification instead of checking the settings.

If I Change a Node's Name on My Phone, Will It Change on My Computer?

No. Name changes are stored locally on the phone, and a subscription isn't a two-way sync channel. To use the same name on both devices, edit each one separately. Keep manually managed nodes in a separate group so subscription updates don't overwrite their local names.

I Sent Someone the Subscription URL. Is Deleting the Message Enough?

No. Reset the subscription credentials in your service account, then update the URL on every device. Subscription credentials may be managed separately from individual node credentials. If node authentication details were also exposed, rotate those credentials using the method supported by your provider.

For reliable cross-device maintenance, use the subscription source for the node list, a manual group for custom nodes, and separate runtime settings on each device. Handle subscription updates, single-node sharing, and app backups as separate tasks. When replacing a device, you'll know what to restore and which settings to verify again.

Download v2rayNExplore clients for four platforms