Share V2Ray Nodes Across Desktop and Android: Subscriptions, QR Codes, and Config Export

Sync nodes between v2rayN and v2rayNG with subscriptions, share links or QR codes, or custom config exports. Compare each method’s pros and cons.

At a glance

To use the same V2Ray nodes on a computer and Android phone, you usually just need to import the same subscription on each device—there’s no need to route the phone through your computer’s local proxy port. This guide covers subscription updates, sharing individual nodes, and migrating full configs, with steps for v2rayN and v2rayNG, fields to verify, and a troubleshooting checklist. Ideal if you already have one working client and are setting up a second device.

1. Nodes and client settings are different

A node stores remote connection details: server address, port, user ID, transport, and TLS parameters. Client settings control behavior on the device: listening port, system proxy, DNS, routing rules, and startup options. Copying a node does not copy these local settings. A working connection on your computer does not mean your phone is routing traffic through the proxy.

v2rayN is a desktop client for Windows, macOS, and Linux; supported protocols depend on the selected core and version. v2rayNG uses the Xray core, while v2flyNG uses the v2fly core. This guide uses v2rayN and v2rayNG. When moving to v2flyNG, check protocol and transport support again—successful import alone does not guarantee compatibility.

Recommended: connect each device directly to the remote node

Desktop: v2rayN
  • Import the subscription and select an active node.
  • Set up the system proxy or TUN as needed.
  • Keep the routing and DNS settings suited to desktop apps.
Android: v2rayNG
  • Import the same compatible subscription and update it separately.
  • Start the connection and approve the system VPN request.
  • Set per-app proxy rules to suit your phone apps.

Each device connects independently; they don’t need to be on the same local network. The server may still limit device count, concurrent connections, or total traffic.

If your subscription provider lets you choose a client format, select one supported by each device. The same account may not use the exact same subscription URL on both clients, and the server may return different content for each. Check the account rules before reusing an address.

2. Keep both devices up to date with one subscription

A subscription URL is a way to fetch a node list, not a live sync channel. Each client updates locally: refreshing on your computer does not refresh your phone. Subscriptions also typically don’t carry preferences such as the selected node, system proxy status, or Android per-app rules.

  1. Check the source

    Get a subscription URL that supports both clients from the original provider’s account page. Keep its parameters intact. Don’t use a website login URL as a subscription URL, or submit the address to a public online converter.

  2. Add the subscription on your computer

    In v2rayN, open “Subscription Group” → “Subscription Group Settings.” Add a group and fill in “Alias” and “Optional Address (Url).” Save, then choose “Update All Subscriptions (without proxy)” from “Subscription Group.”

  3. Add the subscription on your phone

    In v2rayNG, open “Subscription group settings” from the sidebar, tap “+,” enter a remark and subscription URL, then save. Return to the main screen, open the top-right menu, and select “Update subscription.”

  4. Test each connection separately

    On each device, select the same remote node, verify the server and port, then connect. Enable the required proxy mode on desktop and approve the VPN request on your phone. Then use a browser on each device to visit the same website.

If a subscription update fails, first distinguish a download error from a parsing error. For download failures, check the network, whether the URL has expired, and whether you need an existing working proxy. For parsing failures, check whether the response is a login page or an unsupported format. Depending on your network, v2rayN can use “Update All Subscriptions (through proxy)”—but only if a working node is available and the core is running.

3. Transfer one node with a share link or QR code

For one or two nodes, a share link is more direct than a full subscription. A QR code is usually just another encoding of the share link, not a separate protocol. Common links start with vmess:// or vless://. A node remark, server hostname, or screenshot of the connection status cannot replace the complete link.

  1. Export the selected node

    In the v2rayN node list, select the node, right-click, and look for a sharing option. Copy the share URL to the clipboard or display its QR code. Some versions put the export options directly in the context menu.

  2. Share the complete link

    Send the original text through a private channel, or scan the code directly from your computer screen. Keep the entire link, including everything after the question mark. If the QR code is too dense, use text instead.

  3. Import it on your phone

    In v2rayNG, tap “+” → “Import from clipboard” or “+” → “Scan QR code.” After importing, open the node editor and check its fields before returning to the main screen to connect.

  4. Verify the key fields

    Along with the address, port, and user ID, check the transport type, TLS, SNI, and WebSocket Host and path. For Reality, also verify the public key, short ID, fingerprint, and applicable flow.

Sharing a node creates a one-time snapshot. If the server changes its port, credentials, or domain, the old QR code won’t update. Even if the node came from a subscription, an imported standalone copy usually won’t receive updates from it. For ongoing use, keep the subscription source or reimport the updated node.

4. Config exports depend on the core and device

When a node relies on custom routing, DNS, or multiple outbounds, a share link may not capture everything you need. You can instead export a runtime config or migrate a cleaned-up custom JSON file. But a v2rayN backup, a core runtime config, and a single-node share are three different things—not interchangeable files you can import anywhere.

Remote connection fields

Address and port
Copy the values from the remote node
User credentials
Keep authentication fields such as UUID unchanged
Transport settings
Check network, Host, and path
TLS settings
Check serverName and certificate verification settings

These fields determine whether you can connect to the same server, but their JSON structure depends on the protocol and core.

Local environment fields

listen
Example local proxy address: 127.0.0.1
port
Example port: 10808; check whether it’s in use
Resource files
Check geosite and geoip paths again
Logs and certificates
Adjust local paths and read permissions

The example port is not a required default for both devices. Don’t copy absolute paths from your computer.

In v2rayNG, use the custom config import option under “+” for supported JSON files. In this mode, some node and routing settings in the interface may no longer work as they do with a standard node. Back up your current config before importing and keep a verified working node for comparison while troubleshooting.

5. Which sync method should you use?

Choose based on what you need to maintain, not how many import buttons there are. Use a subscription to keep a remote node list current, sharing to add one node to another device, and custom config only when you need core-level behavior. You can use all three, but label their sources so a manual copy isn’t mistaken for a subscription node.

Subscription URL

Recommended

Each device fetches the remote list independently, making it easier to handle added, removed, or changed nodes. Check when each client updates and what format the server returns. Subscriptions don’t sync local routing or the selected node.

Best for: long-term use across multiple devices and regularly maintained node lists

Share link or QR code

Transfer a specific node once, with a small scope that’s easy to verify field by field. If the remote node changes, share it again. A successful QR scan doesn’t prove that the receiving client supports every parameter.

Best for: temporary setup, a few nodes, or checking compatibility of a single node

Custom config export

Preserves more core-level routing, DNS, and outbound structure, but you’ll need to handle field compatibility, inbound routing, and file paths. It doesn’t replace migrating client-specific settings.

Best for: users with a specific config requirement who can read core logs

6. Troubleshoot differences between devices

Troubleshoot in order: verify the node details, test the connection, then check whether traffic is routed through the proxy. Two devices connected to the same server can behave differently due to mobile data, local networks, DNS, or routing rules. Comparing node names or list order alone won’t identify the cause.

Why does my phone still show the old list after updating on my computer?

Update the subscription separately on your phone. Check that the URL in v2rayNG’s “Subscription group settings” is still valid, and make sure you’re not viewing a manually imported group. Compare the node address, port, and transport settings—not just its remark.

The QR code imported successfully. Why won’t it connect?

Open the node editor and check TLS, SNI, Host, path, and Reality fields one by one. If the share format omitted any parameters, copy them from the original node or use a compatible subscription. Then check the logs to distinguish authentication failures, certificate errors, and connection timeouts.

My computer’s local port is 10808. Should I enter it on my phone too?

When both devices connect directly to a remote node, you don’t need to enter your computer’s local port in the phone’s node settings. Use the remote port provided by the server. On your phone, 127.0.0.1 refers to the phone itself, not your computer.

The node is the same, but some phone apps still connect directly

First make sure v2rayNG is running and has valid system VPN permission. Then check whether per-app proxy rules exclude the app or routing rules send it direct. A successful connection means the tunnel is up; it doesn’t mean every app and destination uses the same outbound.

Can two devices use the same account at the same time?

Check the provider’s device, concurrent connection, and traffic limits first. Importing the same node on two devices doesn’t mean the account allows simultaneous use. If starting the second device disconnects the first, check the provider’s limits and logs before changing the user ID.

7. Post-migration checklist

Keep reusable remote connection details separate from device-specific settings to make future migrations easier. A subscription token fetches the node list, node credentials authenticate the connection, and a local listening port belongs to the device. Each requires a different fix if it’s wrong.

Use subscriptions for routine maintenance, share individual nodes for additional testing, and reserve custom configs for specific core-level needs. This lets you reuse the same remote connection details while keeping the traffic routing each device requires.

Download clients