For a desktop and Android device that need the same nodes over time, subscribe to the same source in v2rayN and v2rayNG. To move just a few nodes, use a share link or QR code. When replacing a computer, consider backing up the client configuration. These methods sync different things: importing nodes does not also migrate routing, DNS, system proxy, or TUN settings. This guide covers choosing a method, importing nodes, rebuilding rules, and verifying the connection.
1. Node Sync vs. Full Configuration Migration
v2rayN is a desktop client, while v2rayNG is an Android client powered by the Xray core. They support some of the same node-sharing formats, but their settings and local databases use different formats. VLESS and VMess are proxy protocols; a subscription is a way to retrieve a set of node configurations, not a channel for remotely controlling all device settings.
So “change it on the computer and the phone updates automatically” applies only to node details provided by the subscription, and only after the phone refreshes it. Notes you edit on the computer, the currently selected server, and local routing rules usually aren't written back to the subscription source.
Shared subscription link
RecommendedEach device fetches the same source independently, so node additions, removals, and connection settings can arrive with an update. Refresh timing, selected nodes, and local routing are still managed separately. Check the provider's device and concurrent-connection limits before use.
Best for: Keeping the same set of nodes up to date on desktop and Android.
Share link or QR code
An export captures the node settings as they are at that moment—a one-time snapshot. If the server address or credentials change, share it again. A QR code for a regular node is not the same as a subscription QR code.
Best for: Moving one or a few manually added nodes.
Client configuration backup
Use a backup to restore nodes, groups, and local preferences in the same client. Whether it includes routing, rule files, or external resources depends on the backup scope. The Android client cannot simply read the desktop client's configuration directory.
Best for: Replacing a computer, reinstalling the OS, or restoring your previous setup.
2. Use the Same Subscription Link on Both Devices
Get a subscription URL from your provider that explicitly supports the target client. One account may offer subscription links in different formats. Opening a URL in a browser only confirms that it returns a response; it doesn't mean the content is suitable for v2rayNG. Menu names below follow common Chinese-language versions. Button locations and wording may vary slightly, so check your actual interface.
-
Save the subscription details
Note the subscription name, URL, and device limit, and store the URL somewhere private and secure. Don't paste a full URL containing an access token into a public forum or submit it to an unfamiliar site for format conversion.
-
Add a group on desktop
In v2rayN, open “Subscription Group” → “Subscription Group Settings,” add a group, and enter a label and subscription URL. After saving, return to “Subscription Group” and select “Update All Subscriptions (without proxy).” If the source requires a proxy, choose the proxy update option only when you already have a working connection.
-
Add the subscription on Android
In v2rayNG, open “Subscription Group Settings” from the side menu, tap “+,” enter a label and URL, then save. Return to the main screen and select “Update Subscription” from the top-right menu. Confirm that nodes appear in the group—not just that an empty group was saved.
-
Check the key fields
Open the same node for editing on both devices and compare its address, port, protocol, transport, and TLS settings. If the source returns different lists for different clients, compare the actual connection parameters; node counts alone don't confirm a successful update.
-
Connect on each device
On desktop, select the target node and set it as the active server. On Android, tap the corresponding node and start the connection. Check the logs on each device, then set an update schedule if needed. Updating one device does not notify the other to refresh immediately.
3. Share Links and QR Codes: Move Individual Nodes
If you don't use a subscription and only need to move one manually added node from a computer to a phone, sharing the node is more direct. In v2rayN, right-click a server in the list to find options such as sharing a URL or QR code. In some versions, these commands are under a “Share” submenu. Select the intended node before exporting; don't accidentally send the entire list or subscription credentials.
- Import from a link: Copy the node share link. In v2rayNG, tap “+” on the main screen, then “Import from clipboard.” Open the node editor to check the fields, then start the connection.
- Import from a QR code: Display the node's QR code on your computer. In v2rayNG, tap “+” → “Scan QR code” and scan it after granting camera access. If a long link makes the code too dense, enlarge it or send the text through a private channel.
- Move a node the other way: In v2rayNG, open the target node's actions menu and choose to share a link or QR code. On desktop, copy the link and use the import-from-clipboard option in v2rayN's “Server” menu.
- Organize imported nodes: Give manual nodes their own labels so they aren't confused with subscription nodes. Matching display names don't mean they share an update source.
Common node share links start with vmess:// or vless://. User IDs and password-like fields in these links are connection credentials; a QR code is simply a visual representation of that information. After sharing, don't leave the full contents in a public photo album, screenshot, or support ticket.
What node links can include
- Connection destination
- Server address and service port
- Identity
- User ID or protocol credentials
- Transport
- TCP, WebSocket, and related parameters
- Security settings
- Supported fields such as TLS and SNI
Which fields are preserved depends on the export format and the receiving client's parser.
Settings to configure again on the target device
- Traffic routing
- System proxy, Android VPN routing, or desktop TUN
- Routing policy
- Rule order, app scope, and default outbound
- Name resolution
- DNS servers, resolution policy, and related routing
- Device behavior
- Startup, background activity, and update schedule
Sharing a regular node does not migrate these device-level settings.
4. Back Up Configuration Files to Restore, Not to Merge
When replacing a computer, exporting node links alone won't preserve local preferences or manual rules, so you'll need to back up client data as well. Portable and installed versions of v2rayN may store data in different locations. Don't assume everything is in the program's folder. First note the client version, core type, and the actual data and rules directories in use.
- Exit before copying: Quit v2rayN from the system tray and make sure its related processes have stopped before backing up. Copying a database or configuration file while it's running may capture an incomplete write.
- Include the actual data: Back up the configuration directory, manual routing rules, referenced rule files, and custom configurations. If the interface offers an option to open the data directory or create a backup, use it to locate the right files. Collect any files referenced by external paths separately.
- Restore on the same version first: Keep a backup of the new setup on the target computer, then restore the data using the procedure for the matching version. Test the restore before upgrading; troubleshooting is easier than overwriting directly across several versions.
- Recheck device-specific paths: Check external core paths, rule-file locations, listening addresses, startup behavior, and TUN permissions. Absolute paths from the old computer won't automatically work on the new one just because you copied the configuration.
v2rayNG app data is protected by Android's permission system, so a regular file manager usually can't access it directly. If your version offers configuration export or backup, check exactly what it includes. An “Export nodes” option alone doesn't mean routing and per-app proxy settings were saved too. For cross-platform migration, use a subscription or node-sharing instead; don't rename a v2rayN configuration file and try to force-import it.
5. Migrate Routing: Match the Intent, Then Rebuild the Rules
A desktop rule that sends a domain directly can express the same intent on Android, but a desktop process-name rule is not equivalent to Android per-app proxying. In v2rayNG, app selection mainly determines which apps enter or bypass VPN routing. Once traffic is routed, domain, IP, and default outbound rules may still apply. Check these two layers separately.
| Setting to migrate | What to record on desktop | How to configure on Android |
|---|---|---|
| Domain and IP rules | Match conditions, rule order, and direct or proxy outbound | Rebuild in the available routing settings and confirm the intent matches |
| Processes and app scope | Whether the mode supports process matching, and the process conditions | Check app selection and bypass mode under “Settings” → “Per-app proxy” |
| Default route | Outbound used when no rules match | Check where unmatched traffic goes; don't compare mode names alone |
| DNS and resolution policy | Resolver, domain resolution method, and DNS traffic path | Reconfigure using the Android options available and test domain requests |
| Local listening port | Listening protocol and port, and whether LAN connections are allowed | Use Android's own settings; don't copy a desktop port as a remote port |
Ports are especially easy to confuse. Suppose the desktop's local mixed listener is set to 127.0.0.1:10808. That's the entry point for apps connecting to the local proxy, not the subscription server's port. On a phone, 127.0.0.1 means the phone itself. If the phone should connect independently, sync the server node; don't enter the computer's local listening address in the node.
The system proxy affects only apps that honor it, and desktop TUN and Android VPN routing don't cover traffic in exactly the same way. If the same node behaves differently in a browser, first compare routing scope and DNS, then check rule order. Rules are typically matched in order, with broad fallback rules after specific ones. Client presets may add other policies, though, so matching mode names in the interface don't guarantee matching results.
- First confirm that the same node connects independently on both devices, then enable complex rules.
- Choose one real destination that should connect directly and one that should use the proxy. Check the destination and outbound in the logs for each.
- If you need IPv6, check the network and configuration on both devices separately. Testing IPv4 alone doesn't prove that all traffic follows the same route.
- Test only on networks you own or services you're authorized to use. Change one type of setting at a time and keep a recoverable copy of the configuration.
6. Troubleshooting: Import Worked, but Nothing Synced
The computer's nodes updated. Why didn't the phone?
First check whether the phone's node belongs to a subscription group. A node added by QR code is manual and won't follow subscription updates. Add the original subscription URL on the phone, then select “Update Subscription.” If the subscription is already set up, check the URL, last update time, and whether the source returns different content to different clients.
The QR code scanned successfully. Why won't the node connect?
A successful scan only means the content was recognized. Open the node editor and check the protocol, address, port, transport, SNI, and—if using REALITY—parameters such as the public key and short ID. Then check the startup log. If it reports an unsupported field or protocol, verify the client and core versions instead of scanning again.
Can I copy all my computer's rules directly to my phone?
First list each rule as “match target → direct or proxy,” then rebuild it on the phone. Domain and IP rules may have equivalents, but desktop process conditions and Android app selection must be configured separately. Even valid custom-core JSON may refer to missing files or outbound tags, so valid syntax alone doesn't guarantee it will work.
I sent my subscription link to the wrong place. Should I delete the nodes?
First reset the subscription access token or replace the subscription URL in your provider account. Then update the URL on every device and refresh the subscriptions. Deleting local nodes can't revoke a link someone already has. If node credentials were also exposed, replace them using the method provided by your service.
Can I use the same subscription on my computer and phone at the same time?
That depends on the provider's device and concurrent-connection limits. Being able to import the subscription doesn't mean the account allows simultaneous connections. Check your account details, then start each device separately. If each works alone but not together, check concurrency limits and server logs before reinstalling the clients.