Ten V2Ray Questions for Beginners: Importing Subscriptions, Choosing Protocols, and Fixing Connection Failures

Starting with client selection, subscription updates, and protocol settings, this guide explains proxy modes, split routing, and a reliable troubleshooting order for connection failures. Every answer includes steps you can follow directly.

At a Glance

This guide is for anyone using v2rayN, v2rayNG, or v2flyNG for the first time. By the end, you can choose a client, import a subscription, understand how VMess, VLESS, system proxy settings, and routing rules relate, and troubleshoot common connection problems in order: network, time, subscription, node, parameters, then logs.

Choosing a Client and Protocol

Question 1: Which client should I use on Windows, macOS, Android, or Linux?

Choose a client by platform first, not by node name. Windows desktop users typically use v2rayN. On Android, you can use v2rayNG with the Xray core or v2flyNG with the V2Fly core. For macOS and Linux, check the download center for the currently available desktop options, then choose the version matching your platform and architecture.

If the server provider has no specific requirement, Android users should choose based on the protocols included in the subscription. Use v2rayNG when Xray features are required; use v2flyNG when the configuration explicitly requires the V2Fly core. Different client names do not necessarily mean a subscription is incompatible—the deciding factors are whether the protocol, transport, security layer, and core version are supported.

4 Platforms
Windows、macOS、Android、Linux
3 Clients
v2rayN、v2rayNG、v2flyNG
2 Cores
Xray and V2Fly
1 Parameter Set
The client and server must match

Question 2: What is the difference between VMess and VLESS, and which should beginners choose?

VMess and VLESS are both common proxy protocols in the Project V ecosystem. A VMess configuration typically includes a user ID, alterId or compatibility fields, security options, an address, and a port. VLESS uses a more streamlined authentication design and commonly includes a user ID, flow, transport settings, and security-layer parameters. They are not interchangeable switches in the client.

The most reliable rule is to follow exactly what the server or subscription provides. If the subscription specifies VMess, import it as VMess; if it specifies VLESS, keep it as VLESS. Do not manually change the type just to use a preferred protocol name. Even when the address and port are identical, a mismatch in the protocol, user ID, transport, or TLS settings can cause an immediate connection failure.

Comparison VMess VLESS
Authentication User ID and related compatibility parameters User ID; some configurations include flow
Common Security Layer TLS and related options, as specified by the server TLS or the method specified by the server
How to Choose What the subscription or server explicitly provides What the subscription or server explicitly provides
Can they be changed directly? No No

Question 3: Do I need to switch between the Xray and V2Fly cores manually?

Most beginners do not need to switch cores when getting started. v2rayNG processes configurations with the Xray core, while v2flyNG uses the V2Fly core; for v2rayN, follow the available core and version settings shown in the client. If the imported configuration starts successfully, passes a latency test, and reaches the target site, there is no reason to change it just to “switch cores.”

How to Import and Update a Subscription

Question 4: Where should I paste the subscription URL?

A subscription URL is not an ordinary node address, nor is it a webpage meant to stay open in a browser. It is usually a complete HTTPS URL. The client requests it, parses the node list, and saves it locally as a subscription group. When copying it, make sure no characters are missing from the end, and do not include a period appended by a chat app.

  1. Verify the URL

    Copy the complete subscription URL and check its scheme, domain, path, and query parameters. Do not include spaces or non-English punctuation at either end.

  2. Add a Group

    In the v2rayN main window, open “Subscription Groups” → “Subscription Group Settings” → “Add,” enter a note, and paste the URL.

  3. Update the Subscription

    After saving, open “Subscription Groups” → “Update All Subscriptions” and wait for the node list to appear in the main window.

  4. Choose a Node

    Select one node first, then run a latency test. Once the result looks normal, set that node as the active server.

  5. Start the Proxy

    Enable the system proxy or the required operating mode, then use a browser to check whether the target page loads.

The entry names on Android may change between versions, but the workflow is the same: open subscription group management, tap Add, enter a note and URL, save, and run an update. When scanning a QR code, first check whether it contains a subscription URL or a single node. The former creates a group of nodes; the latter usually adds one configuration.

Question 5: Why did the old nodes remain after a subscription update failed?

When an update fails, the client usually keeps the local data from the last successful update, so seeing old nodes does not mean the current request succeeded. First check the update message and log timestamp, then confirm that the subscription URL is still valid. Do not delete the entire group immediately, or you will also lose the old configuration useful for comparison.

Common causes include an incorrect system clock, an incomplete subscription URL, a network that cannot reach the subscription domain, an expired URL, or missing background network permission. On Android, also make sure the system did not suspend the app during the update, especially after locking the screen or switching apps.

Error: subscription update failed

Cause and fix: The client could not retrieve the subscription content—save the original URL again, correct the system time, then switch networks and run one manual update.

Error: unexpected EOF

Cause and fix: The connection ended before the content finished transferring—keep the client in the foreground, retry on a stable network, and check whether the subscription service is temporarily unavailable.

Proxy Modes vs. Split Routing

Question 6: Will every program use a node after I enable the system proxy?

Not necessarily. A system proxy only writes the proxy address and port to the operating system settings; only applications that honor system proxy settings will use it automatically. Some programs use their own network stack, specify a separate proxy, or connect directly, and may bypass the system proxy. Android’s VPN mode covers more traffic, but it can still be affected by per-app settings, bypass rules, and system restrictions.

On desktop clients, the local listening ports may appear as HTTP 10809 and SOCKS 10808, but they can vary by version or user settings. When entering a proxy manually in another program, check the actual ports shown by the client instead of copying an online example. If another process is using a port, the core may also fail to start.

Application sends a requestSystem proxy receives itRouting rules matchOutbound is selectedTarget server responds

Question 7: How should I choose global, rule-based, or direct mode?

Global mode generally sends managed traffic through the proxy first. It is useful for a quick node test, but it may also route local services and sites that do not need a proxy through the proxy. Rule-based mode uses domains, IPs, rule sets, or process conditions to choose proxy, direct, or blocked routing, making it better for everyday use. Direct mode is mainly for temporarily disabling proxy effects and comparing behavior with the local network.

Beginners can run a short test in global mode first. If global mode works but rule-based mode does not, the problem is usually in the routing rules or DNS split routing rather than the node itself. Switch back to rule-based mode afterward and check which rule matched the target domain. Change one setting at a time; changing DNS, routing, and protocol settings together makes it impossible to tell what actually took effect.

How to Troubleshoot a Failed Node Connection

Question 8: A node times out—what should I do first?

Do not start by switching through a dozen nodes. First confirm that your local network is working. Disable the proxy and open a reliable local site, then check the system date, time zone, and automatic time-sync status. TLS connections depend on an accurate clock; if the system time is far off, the handshake may fail even when the node address and port are correct.

Next, check the subscription status and individual node parameters. Make sure there are no extra spaces, the port is between 1 and 65535, and the user ID, protocol type, transport, Host, path, SNI, and security layer match the server. If the configuration came from a subscription, update it again instead of editing fields from memory.

Only then switch networks, try another node, and check the logs. If the connection fails on home Wi-Fi but works on mobile data, the difference is usually local DNS, routing, or the network exit. If every network fails with the same node, focus on the node status and parameters. Allow at least 10–15 seconds for a latency test; do not treat a momentary lack of response as permanent failure.

Error: connection timed out

Cause and fix: The connection was not completed before the timeout—verify your local network and system time, then check the node address, port, and whether the current network can reach the server.

Error: connection refused

Cause and fix: The destination is reachable, but the port refused the connection—check that the port is correct and confirm that the server process is listening on it.

Error: invalid user

Cause and fix: The user authentication parameters do not match—sync the subscription again and verify the user ID, protocol type, and server-side user configuration.

Error: failed to find an available destination

Cause and fix: The outbound server address could not be resolved—check the node hostname for typos, switch to a working DNS server, and restart the core.

Checking DNS, Logs, and Background Operation

Question 9: I can connect, but webpages will not open. Is DNS the problem?

Possibly, but first distinguish between a successful proxy connection and successful resolution of the target domain. Normal node latency only suggests that the path to the proxy server may work; it does not prove that the target domain resolves correctly. If an IP address responds but the domain fails, DNS is more likely. If every request times out, also check routing, outbound settings, and protocol parameters.

Start by restoring the client’s default DNS settings so that multiple unknown DNS sources are not configured at once. Then restart the core, clear the system DNS cache, and test a known reachable domain. In rule-based mode, also check whether DNS requests use direct or proxied routing and whether the result was sent by the routing rules to the intended outbound.

Basic Check Order
1. Disable the proxy and confirm that the local network works
2. Enable the proxy and check whether the core starts successfully
3. Check the local HTTP and SOCKS listening ports
4. Test node latency and an actual connection
5. Check DNS resolution and routing-match records
6. Change one parameter based on the first clear error

Review logs starting at the time the failure occurred, prioritizing the first error or warning. A long sequence of timeouts afterward may simply be a chain reaction caused by the initial error. In v2rayN, inspect core output in the main window’s log area and verify relevant runtime parameters under “Settings” → “Parameter Settings.” On Android clients, repeat the failed action from the log page so the timestamps and requests line up.

Question 10: How can I keep Android connected in the background without excessive battery use?

Background disconnections are usually related to battery policies, app background permissions, network changes, or memory reclamation. In system settings, allow v2rayNG or v2flyNG to run in the background and make sure the VPN connection is not restricted by battery saving. Menu names vary by Android device; a common path is “Settings” → “Apps” → “v2rayNG” → “Battery” → “Allow background activity.”

Next, reduce unnecessary background work. Subscriptions do not need to update every few minutes, and routing rules should not be reloaded repeatedly when nothing has changed. If you only need a connection while browsing, start it on demand. For a persistent connection, keep the VPN service notification in the system status bar and avoid system-cleanup tools that actively terminate background processes.

  1. Allow Background Activity

    Open “Settings” → “Apps” → the relevant client → “Battery,” allow background activity, and remove excessive restrictions.

  2. Reduce Update Frequency

    Set automatic subscription updates to an interval of several hours; use manual updates when the nodes have not changed.

  3. Monitor Network Switching

    Check the connection after switching between Wi-Fi and mobile data; if necessary, stop and restart the service once.

  4. Keep the Logs

    Record the disconnection time, network type, and first error instead of relying on “it won’t open” to identify the cause.

After completing the initial setup, keep one verified working node for comparison. When a problem occurs, test this node first to determine whether the whole subscription changed, the current network is failing, or the new node’s parameters do not match. A fixed reference configuration greatly reduces blind edits and makes genuine changes easier to spot in the logs.

Go to Download Center Choose the client for your platform