Before you begin
Before starting, prepare a valid subscription URL and install the client for your platform. Use v2rayN on desktop and v2rayNG on Android. A subscription URL is usually text provided in the form of a web address and contains one or more node configurations. It is not a regular webpage URL and does not need to be opened in a browser first.
When copying a subscription, preserve the complete content and avoid adding spaces, line breaks, or non-ASCII punctuation. If the device already has a working configuration, note the currently selected node and proxy mode so you can restore them if the new subscription causes problems. See the client download page first for installation details, system requirements, and package selection.
Import V2Ray subscription URLs
Importing a subscription lets the client read a remotely maintained node list. Unlike manually adding a single node, a subscription stores an update source; its configurations are written to the local list only after an update. Adding the subscription URL alone is not enough. Run a subscription update and confirm that nodes appear on the main screen.
Add a subscription in v2rayN for desktop
After opening v2rayN, find Subscription Groups or a similarly named subscription management entry in the top menu, then open subscription group settings. Create a group, enter an easy-to-recognize name such as “Daily subscription” in the remark field, and paste the complete URL into the subscription URL field. The remark is only for local identification and does not change the subscription. Check that there are no spaces at either end of the URL, save it, and return to the main window.
After saving the group, open the subscription menu again and choose Update current subscription or Update all subscriptions. The client will read the subscription and display successfully parsed configurations in the server list. The list typically includes protocol, address, port, and alias fields. Do not connect yet. Check that nodes were actually created and assigned to the group you just added. If you see only the group name and no nodes, the update did not complete successfully.
Add a subscription in v2rayNG for Android
Open the v2rayNG main screen and enter subscription group settings from the top-right menu. Tap Add, give the subscription a local name, and paste the complete URL into the address field. Save it, return to the main screen, and choose Update subscription from the menu. When the update finishes, the main list will show the nodes parsed from the subscription. The current item usually has a clear selection state; if none is selected, choose one in the next step.
If existing nodes are replaced or reordered after an update, that is normal when the subscription content changes. Identify nodes by name and group rather than by a fixed list position. QR-code import is better suited to sharing a single configuration; for a node collection used over time, keep the subscription URL so future updates do not require repeated scans or manual entry.
If the client says the subscription format cannot be recognized, the URL cannot be read, or the list remains empty after updating, recopy the original URL and confirm that the subscription is still valid. Do not create multiple identical groups, as later updates may produce duplicate nodes. See the FAQ page for specific causes and troubleshooting order.
Choose a proxy mode and routing rules
Once nodes appear in the list, do not change every setting at once. First understand two easily confused layers: the routing mode decides which connections are handled by the proxy, while the system proxy status determines whether desktop apps send traffic to the client. Both affect the final result. Starting with rule-based routing makes troubleshooting easier and preserves normal direct access to local networks and other destinations.
Use rule-based routing for the first connection
In v2rayN, open the routing settings or proxy mode menu and choose the client's built-in rule mode. Depending on the version, it may be labeled Rules, Bypass LAN, or Predefined routing. The common feature is that the client uses destination addresses and rule sets to decide between direct and proxied connections. Do not change custom routes, ports, DNS, and TUN mode at the same time. Changing too many parameters makes a failed connection difficult to diagnose.
In v2rayNG, you can likewise choose a rule-based option in settings or routing configuration. The default route is usually sufficient for first-time use. Add custom rules only when you know an app needs special handling. Android connections are managed through the system connection interface, so there is no need to look for the desktop System Proxy menu or copy v2rayN's switch location.
Understand rule-based, global, and direct modes
Rule mode routes traffic according to predefined conditions. It suits everyday use and is the recommended starting state for this guide. Global mode sends more connections through the current node and can help briefly determine whether rules are missing, but it is not a universal fix. Direct mode bypasses the current proxy configuration and is useful for temporarily pausing or comparing results. If selected by mistake, the target app will not use the chosen node even when the client appears to be running.
On desktop, also check the system proxy status. Routing mode manages traffic that has already entered the client, while the system proxy sends traffic from apps that follow the operating system's proxy settings to the client. Set the rule mode first, but wait until the next step to establish the connection. This clearly separates “the rules are selected” from “the proxy is enabled.”
Once the mode is selected, return to the node list. The next goal is to choose an active node and start the connection. Nodes are present and the routing mode is clear, but the connection may still be stopped. This is a normal intermediate state.
Choose a node and establish a connection
Connecting has two parts: tell the client which node to use, then start the proxy or system connection. Selecting a row does not necessarily mean that a connection has been established. Conversely, if no node is explicitly selected before starting, the client may continue using the previous active configuration. Confirm each step during first-time setup instead of relying on an old state.
v2rayN desktop connection sequence
In the server list, click the node you want to use, then set it as the active server through the context menu or main menu. The active node usually shows a color, icon, or row-state change. After confirming the active item, find the system proxy settings in the taskbar status menu or main window and choose automatic system proxy configuration or a similarly named enable option. The status area at the bottom should change from Stopped to Running and show the name of the active configuration.
If the v2rayN window closes but the program remains in the taskbar area, it is usually still running rather than fully exited. To switch nodes, reopen the window, set a new active server, and confirm that the system proxy is still enabled. To stop completely, first restore the system proxy to Clear or Off, then exit the client so the operating system does not retain the previous proxy address.
v2rayNG Android connection sequence
In the v2rayNG node list, tap a configuration to make it current, then tap the Connect button on the main screen. On first launch, Android displays a connection authorization prompt; approve it so the client can create the local connection. Authorization is a system-level permission and does not replace the subscription configuration. After approval, the top of the interface or area near the Connect button shows the connected state, and the system status area displays the corresponding connection indicator.
When switching nodes, stop the current connection first, select the new node, and reconnect. Although some versions support switching while running, stopping before reconnecting makes status changes easier to observe and reduces confusion from an old connection remaining active. If the connection immediately returns to Stopped, check the runtime logs instead of repeatedly tapping the button.
How to interpret node test results
The client may offer latency, real-connection, or download tests, each measuring a different part of the path. For first-time setup, you do not need to test every node. Select one configuration and complete an actual connection. A result from one test does not guarantee that every destination will work; a failed test is not an immediate reason to delete the node. Consider the connection logs, subscription status, and actual access together.
Verify that the proxy is working
Do not rely only on a button color or connection icon. A Running status means the local process has started; the full path is usable only when the target app's connection actually reaches the client and its request is handled by the current node. Start by testing with a browser that follows the system proxy, then check other apps to quickly distinguish client issues from app-specific settings.
Run an actual access test first
Keep the client running, fully close and reopen the browser, then visit a stable page you normally use for testing. Reopening lets the browser read the latest system proxy settings instead of reusing an old connection. Once the page loads, open a second, different site for comparison. Do not rely only on a cached page; refresh it and open a subpage you have not visited before.
To check whether your apparent egress has changed, you can use a trusted network-information page, but do not treat a single region label as a verdict on connection quality. Information databases may update at different times. Focus on whether requests complete reliably, whether the client records the corresponding connection, and whether the expected change appears when the proxy is stopped.
Compare client status with the logs
Return to the client and inspect the runtime logs. Normally, a browser request creates new connection records that may include the destination domain, routing result, and outbound configuration. Continuous log activity indicates that app traffic has entered the client. If the client shows Running but the logs do not change at all, the system proxy may be disabled, the app may not follow it, or the app may still be reusing an old connection.
A single warning in the logs does not necessarily mean the entire connection failed. Focus on a sequence of records matching the time of your test. If you see a clear error such as a timeout, address-resolution failure, or remote refusal, troubleshoot by error type. Never copy a complete subscription URL or a configuration containing credentials into a public location; when reporting an issue, keep only the error type, client version, and steps taken.
The browser works, but other apps do not
This usually means the node and the client's main path are working, while the difference lies in how the app connects. Some desktop apps follow the system proxy, some require a local proxy address in their own settings, and others need TUN mode to capture connections. For first-time use, do not switch to global mode or change several advanced options just for one app. First confirm which proxy method the app supports.
On Android, if the browser works but a specific app is unchanged, check whether v2rayNG has app filtering enabled and whether the target app is excluded. After changing the filter, disconnect and reconnect so the new rules take effect. Full details on TUN, app routing, and custom routes are outside this quick guide; see the protocol and core technical reference. For specific symptoms, use the FAQ and browse by category.
Shortest troubleshooting order when a connection fails
If the final test fails, do not reinstall the client immediately. Check the setup in the order traffic enters the configuration; this usually locates the problem faster. After each change, run only one new test to avoid confusion from multiple simultaneous changes.
-
Confirm that the subscription updated successfully.
Return to subscription groups, check that the URL is complete, run one more update, and confirm that nodes appear in the main list. If the list is empty, later mode and connection settings have nothing to use.
-
Confirm that the correct node is active.
Select the node again and choose Set as active server, or click the current item again, so the client does not continue using an expired previous configuration.
-
Confirm that the proxy is running.
On desktop, check both the program's running status and the system proxy status. On Android, check the Connect button and the system connection indicator. Opening the client window alone does not establish a connection.
-
Restore the basic routing settings.
Temporarily remove recently added custom routes, app filters, or advanced DNS changes, then reconnect with rule-based routing. Once the basic setup works, restore personal settings one at a time.
-
Read the logs for the matching test time.
Start another access test and inspect the records just created. Continue based on whether the issue involves subscription parsing, address resolution, a connection timeout, or the app bypassing the proxy. There is no need to switch every option indiscriminately.
If the connection still fails after these checks, record the client name, platform, the step reached, the displayed status, and the log error type, then look for a matching entry in V2Ray FAQs. To understand VMess, VLESS, Trojan, REALITY, and the differences between the Xray and V2Fly cores, continue with the technical reference page. You do not need to adjust these low-level parameters during quick-start setup.