First, distinguish node details from client settings. For regular use of the same nodes on a PC and Android device, use the same subscription on both. To transfer one node temporarily, use a share link or QR code. To move client settings to a replacement device, consider a backup from the same client. This guide covers what v2rayN, v2rayNG, and v2flyNG can and cannot do, plus the proxy, DNS, and routing settings to check after importing.
Choose a sync method: subscription, node sharing, or backup
“Sharing V2Ray settings” usually means two different things: copying the node parameters needed to connect to a server, and transferring the settings that control how a device routes its traffic. Subscriptions and standard share links can transfer the former. The latter depends on the operating system, client, and core. Matching node names do not mean all settings have synced.
Share a subscription URL
RecommendedAdd the same subscription URL on both devices and update each client separately. The subscription provides node changes, so there’s no need to resend them by hand every time. Check with your provider whether multiple devices are allowed and what concurrency limits apply.
Best for: regular use on two devices and frequently changing node lists.
Share links and QR codes
Export the selected node as a share URI or display its QR code. The receiving device gets a snapshot of the parameters at that moment; it won’t track later changes to the original node.
Best for: one-off transfers of one or a few nodes.
Client backup and restore
Use the client’s own backup feature, and check exactly which settings it includes. Backup files are client-specific: a v2rayN data folder is not a backup for v2rayNG or v2flyNG.
Best for: moving to a new device or saving settings before reinstalling the same client.
Share a subscription: add the URL and update each device
Get the full subscription URL from your provider. Don’t mistake a single node link such as vmess:// or vless:// for a subscription URL. A subscription URL typically fetches a list of nodes over HTTPS. Its path or query parameters may contain access credentials, so copy the entire URL and make sure messaging apps don’t truncate the end.
-
Check your plan limits
Check your subscription’s device and concurrent-connection limits. Being allowed to save the URL on two devices doesn’t necessarily mean both can connect at the same time.
-
Add the subscription in the desktop client
In v2rayN, open “Subscription Group” → “Subscription Group Settings,” add a group, enter a name and the subscription URL, then save. Return to “Subscription Group” and choose the update option. If the menu offers updating through or without a proxy, choose based on whether the URL is reachable on your current network.
-
Add the subscription on Android
In v2rayNG, open “Subscription Group Settings” from the side menu, tap “+,” enter the same URL, and save. Return to the main screen, open the top-right menu, and select “Update Subscription.” Some versions update only the selected group, so make sure the new group is selected first.
-
Check the imported nodes
Compare the groups, server addresses, and protocols on both devices. If the lists differ, update each client once and check its log. Don’t rely on node names alone—different entries can have the same name.
-
Select a node on each device
Choose a node separately on each device and start the connection. To update on a schedule, set an update interval in each client. If one client has no such option, update it manually; don’t assume the other device’s schedule applies.
These steps use common Chinese-language menus; button names may vary by version. v2flyNG uses the v2fly core. A similar interface to v2rayNG doesn’t guarantee support for every protocol and transport combination in a subscription. Import the subscription, check the logs, and confirm compatibility with your device.
Using two devices: share the source, manage each device separately
Desktop: v2rayN
- Save the subscription URL, update it manually, and check the nodes.
- Choose system proxy or TUN based on your desktop apps’ needs.
- Keep a record of local routing, DNS, and listening ports.
Android: v2rayNG
- Add the same URL and update the subscription separately.
- Grant the system VPN permission when starting the client for the first time.
- Configure routing and per-app proxy settings for your phone.
Once both devices have fetched the same subscription, they can use the same node source. Each device still manages its own active node, routing, and traffic interception settings.
Transfer a single node: share URI or subscription URL?
To move one working node from your PC to your phone, select it in v2rayN and use the right-click menu’s share or export option to copy its share URL. On the receiving device, open v2rayNG and tap “+” → “Import from clipboard.” To transfer in the other direction, copy the share link from the node actions on your phone, then use the clipboard import option in v2rayN’s “Server” menu.
- Identify the node URI:
vmess://andvless://are common prefixes for node share links. They describe connection parameters, not a subscription update endpoint. Import support depends on the receiving client’s supported formats. - Keep the full string intact: Don’t edit the encoded content, query parameters, or escape characters. Remove any stray quotation marks or explanatory text before and after pasting; don’t import an entire chat message as a node.
- Check the key fields: Verify the server address, port, user ID, transport, TLS, server name, and path. If an extension parameter isn’t exported or recognized, the node may appear in the list but fail to connect.
- Know what won’t update: Nodes imported from a share link are usually saved as standalone entries. If the server address, user ID, or key changes, share the node again. A subscription update won’t update it for you.
A QR code encodes text as an image; it doesn’t encrypt the contents. v2rayN can display a QR code for the selected node. In v2rayNG, tap “+” → “Scan QR Code” and grant camera permission, then keep the full code in view. If a long string makes the code too dense to scan, send the complete text link instead of repeatedly compressing screenshots.
Back up and restore: check what’s included, then move to the same client
A backup can preserve a device’s setup, but “export config” doesn’t necessarily mean “back up the entire client.” Some exports contain only selected nodes; others are config files for the core, while some include groups and client settings. Check the export description and file type first. The file extension alone doesn’t tell you what can be restored.
- Record the old setup. Note the client name and version, active node, subscription groups, routing mode, DNS, and custom rules. Don’t assume there’s a generic backup menu; use the backup or export option actually available in your version.
- Save data after closing the client. For a portable v2rayN setup, exit the client before copying user data, and follow the current version’s instructions for locating its data directory. The application and user data may be stored separately, so copying only the program files may not be enough.
- Keep the new device’s data first. Back up the target device’s existing settings before restoring. Use an import or restore method explicitly supported by the client. Check compatibility notes before moving data between versions, and avoid overwriting a database directly.
- Reauthorize and verify. After restoring, check that the subscription is still valid, the active node is present, and local paths work. Recheck Android VPN permission, desktop permissions, and virtual network adapter status on the new system.
v2rayN, v2rayNG, and v2flyNG differ in their settings, data structures, and runtime environments. When switching clients, it’s safer to move a subscription or a supported node URI, then rebuild local settings manually. Even if two clients can import the same JSON file, that doesn’t mean their full backup formats are compatible.
Set ports, DNS, and routing separately—don’t copy local settings blindly
A node port connects to a remote server; a local listening port lets apps on your device connect to the proxy; and a DNS port is used for name resolution. They serve different purposes. Keep the actual server port specified by the node, but don’t set every port to the same number just to “standardize” the configuration.
For example, setting a desktop app to 127.0.0.1:10808 points it to that port on the PC. Entering the same address in a phone app points to the phone itself; it won’t connect to the PC automatically. If each device runs its own client, there’s no need to expose the PC’s listener to the local network or have the phone use the PC’s port.
| Setting | Transfers with the node? | What to do on the new device |
|---|---|---|
| Server and authentication details | Fields supported by the standard share format can be included | Check the address, port, transport, and security settings |
| Local listening port | Usually not included in a node URI | Check the client’s current settings and make sure the port isn’t in use |
| System proxy and TUN | Local traffic interception settings | Enable as needed, subject to desktop OS permissions |
| Android per-app proxy | Depends on the apps installed on the device | Select apps again on the phone and test |
| DNS and routing rules | Standard node subscriptions usually don’t include complete local policies | Recreate the rules using a format supported by the client |
v2rayNG uses the Xray core, while v2flyNG uses the v2fly core. Sharing a protocol name doesn’t mean both support the same extensions. Check receiver support field by field, especially for VLESS, REALITY, or unusual transport parameters. Don’t mask compatibility issues by randomly changing protocols or disabling TLS.
Troubleshoot sync one layer at a time
After importing, verify the data first, then the connection, and finally app traffic. This helps distinguish a failed subscription fetch from incompatible node parameters or traffic that isn’t being routed through the client—so you don’t keep reimporting to fix three different problems.
Why do the same subscription show different numbers of nodes?
First, confirm the URLs match exactly. Then check the selected group, filters, and whether the latest update succeeded. The server may return different content depending on the request, and the client may skip unsupported entries. Keep any protocol or parsing errors from the log, redact subscription credentials before sharing, and don’t compare only the total node count.
Why can my phone connect when the imported node won’t work on my PC?
Check that the PC is using the same active node as the phone, then verify that the core is running and that the system proxy or required traffic interception mode is enabled. Next, check the system clock, DNS, server name, and handshake errors in the logs. Seeing an imported entry only means the format was accepted; it doesn’t confirm a connection to the remote server.
Why didn’t routing changes on my PC carry over to my phone?
Standard node subscriptions mainly distribute server parameters; they aren’t a shared settings database. Recreate domain rules, direct-connection lists, and DNS policies on your phone using options it supports. Android per-app proxy rules also depend on installed apps, so you can’t copy a desktop app list as-is.
Both devices fail to connect at once. Should I import the node again?
Test each device on its own first, then check concurrent connection limits, available data, and service status. If each works alone but not at the same time, check your provider’s connection limits. Importing the same node repeatedly won’t increase the number of allowed connections.
Protect subscription credentials and keep a recoverable backup
Subscription URLs, node share links, and backup files may all contain access credentials. Base64 is an encoding, not a security measure, and QR code screenshots can be decoded too. Use a transfer method you control, and clear clipboard contents and public screenshots when you no longer need them.
- Don’t post links publicly. Never share a full subscription URL, user ID, or QR code in a public forum. For troubleshooting screenshots, show the error type but cover sensitive paths and parameters.
- Keep backups private. Store backup files somewhere access-controlled, enable any encryption provided by the storage service, and label each backup with the client name and date.
- Distinguish deletion from revocation. Removing a node from your device won’t invalidate credentials you’ve already shared. If you suspect a leak, reset the subscription token or node credentials with your provider, then update every device.
- Keep a way back. Confirm the new device can update the subscription, connect, and route traffic as expected before deleting data from the old one. Don’t delete your only backup right after the first successful import.
For everyday use, keep the workflow simple: use one subscription on both devices and update each separately; transfer temporary nodes by URI or QR code; back up before moving to the same client on a new device; and check system proxy, TUN, DNS, and routing on each device. This avoids duplicate entry and makes it clear which device each change affects.