10 MINUTE SETUP

v2rayN Tutorial: From Subscription Import to Connection Verification

Complete these four steps in order: import a subscription, choose a proxy mode, connect to a server, and verify that traffic enters the proxy chain. There is no need to change routing, DNS, and core settings at the same time during the first setup. Establish a reproducible basic connection first, then address the needs of specific applications.

Desktop v2rayN Android v2rayNG Four-Step Basic Workflow About 10 Minutes
BEFORE START

Pre-Setup Checks

Before you begin, make sure you have a subscription URL that is still valid. The URL comes from your service provider; it is not part of the client installer and is not an arbitrary web address. When copying it, select the complete URL from beginning to end and avoid including spaces, line breaks, or extra characters added by a chat app. If the provider gives you a single share link or a standalone configuration file, the import process may differ slightly. See Format Guide for how these formats relate.

Next, confirm that the client opens normally. After starting desktop v2rayN, you should be able to find the server list, subscription manager, and status or log area. After starting Android v2rayNG, the home screen usually shows the current configuration name and a connect button. If the system asks for permission to establish a network connection, review the intended use and allow the client to create the local network tunnel. Otherwise, even a correct server configuration will not be able to handle application requests.

For the first setup, keep the default routing and DNS settings and do not import custom rules before connection verification is complete. Subscriptions, servers, proxy modes, routing, and DNS operate at different layers; changing too many items at once makes the source of a problem difficult to identify. This page covers only the steps needed for a basic connection. Subscription groups, advanced routing, FakeDNS, TUN details, and custom outbounds are covered in the advanced manual.

Client installed Subscription URL available Working local network
STEP 01

Import a Subscription and Update the Server List

In desktop v2rayN, open “Subscription Groups” or “Subscription Settings.” Depending on the version, this may be under the top “Subscription Groups” menu, a toolbar button, or the server management menu. The goal is to open the management window where a new subscription can be added. After choosing Add, enter an easy-to-recognize name in the notes field, such as “Daily use,” or use the provider’s name. Paste the complete subscription URL into the address field, check that it has no leading or trailing spaces, and save the entry.

Saving only tells the client to remember the subscription URL; it does not add server configurations to the list. Return to the main window and run “Update All Subscriptions,” or select the relevant group and update it. During the update, watch the status message at the bottom of the window or the log area. Normally, the main list will show entries such as server names, addresses, ports, and protocols after the update finishes. The available fields depend on the subscription, and names are defined by the provider, so name length is not a reliable indicator of whether a server works.

In Android v2rayNG, open the top-right menu and enter the subscription group settings. Tap Add, enter a note and the subscription URL, and save it. Return to the configuration list and choose Update Subscription from the menu. When the update finishes, one or more configurations should appear on the home screen. Select one to make it the current configuration. If the list is still empty, do not proceed to connection, because the client has no server parameters to start.

When a Subscription Update Fails, Check the URL First

If you see a network error, an empty response, or an unrecognized format, recopy the subscription URL and check the provider’s service status. Do not mistake a web dashboard URL, plan details page, or login page for a subscription URL. The fact that a browser can open a page does not mean the client can parse it as subscription content. If the URL contains special characters, use the operating system’s native copy function instead of editing characters by hand.

If the same URL updates successfully on another network but keeps failing on the current one, switch local networks and try again to distinguish a provider-side issue from a local network issue. If the update succeeds but the server list is not as expected, return to subscription management and confirm that the correct group was updated instead of repeatedly adding the same URL. Merging multiple subscriptions, group update strategies, and server filtering are advanced management topics; see the subscription groups chapter in the advanced manual.

NEXT / 02

Once the server list appears, do not start the connection just yet. The next step is to decide which application traffic the client should handle.

Go to Proxy Mode Selection
STEP 02

Choose a Proxy Mode and Define the Traffic Scope

A proxy mode determines which requests enter the client; it does not determine whether a server exists. For a first setup, start with System Proxy because its scope is easier to observe: browsers and desktop applications that follow system proxy settings use the local proxy port provided by the client, while programs that ignore those settings keep their original network path. This is a good way to confirm that the subscription, server, and client core work together.

In desktop v2rayN, find the System Proxy menu and choose an option equivalent to “Auto Configure System Proxy” or “Set System Proxy.” After it is enabled, the status bar or tray menu usually shows the current system proxy state. Then check the routing mode. For everyday use, start with the client’s default rule-based mode and let routing rules determine where requests go. When troubleshooting, you may temporarily choose a more direct mode with a clear understanding of its scope, but restore the rule settings that match your needs after testing.

TUN mode handles more application traffic that does not follow system proxy settings. It usually creates a virtual network interface and may require system permission. During the first connection, do not switch to TUN simply because one application has not been tested, and do not change routing and DNS at the same time. First use System Proxy to verify browser requests. Once the basic path works, decide whether TUN is needed based on the network behavior of a specific program.

In Android v2rayNG, connecting uses the system network tunnel to handle requests from the selected applications. The first time you connect, tap the connect button and approve the system authorization prompt before the tunnel can be created. “Per-App Proxy,” routing mode, and bypass rules further define the traffic scope. Keep these settings simple during the first setup: verify the connection with a frequently used browser first, then gradually include or exclude specific applications.

SYSTEM PROXY

System Proxy

Best for first-time verification and setups that mainly use browsers or desktop network tools. Its scope is clear, and disabling it makes it easy to check whether the system proxy state has been restored.

TUN

TUN Mode

Best when more application traffic needs to be handled. Enable it only after the basic connection works, then check permissions, DNS, and routing rules separately.

If you are unsure what a “Global,” “Rule,” or “Bypass” option means, review the routing and traffic-splitting categories in Format Guide. For domain rules, IP rules, or custom outbounds, see the routing control chapter in the advanced manual. This step is complete when you have selected a basic mode and know whether the browser or application used for verification will be handled by it.

NEXT / 03

Once the traffic scope is set, choose a server configuration and start the client core.

Go to Server Connection
STEP 03

Select a Server and Start the Connection

Return to the server list and choose one of the configurations that appeared after the subscription update. In desktop v2rayN, you can usually switch by double-clicking an entry, choosing “Set as Active Server” from its context menu, or following the prompt after selecting it. The selected entry may change color, icon, or status text, and the current server name may appear at the bottom of the window. Confirm that the active server matches your selection, then start the client core or leave the client running.

In Android v2rayNG, tap an entry in the configuration list so its name appears in the current configuration area on the home screen, then tap the connect button. A network authorization prompt appears on the first connection. After approval, the button state changes and the system status area shows that the network tunnel is active. If it immediately returns to a disconnected state, do not keep tapping quickly. Open the log and determine whether the failure occurred while reading the configuration, resolving the domain, handshaking with the server, or accessing the local network.

Connecting has two layers. First, the client core must start successfully and listen on a local port. Second, an actual request must connect through the selected server. Seeing the core start does not prove that the target request succeeded; if the core never starts, a browser test cannot produce a useful result. For this step, confirm that the client is running and the log shows no obvious errors. Use a real request to verify the complete path in the next step.

How to Read the First Connection Log

You do not need to understand every line. Start by finding the lines closest to the time of your current action. A normal startup log usually includes configuration loading, local inbound listening, and core runtime messages. Failures may mention a port conflict, an invalid configuration field, a failed address lookup, a connection timeout, or insufficient permissions. The first error is more useful than the last line because later errors may simply result from the original problem.

The client’s built-in latency test can help with initial filtering, but it cannot replace a real connection. Different test methods, network paths, and target addresses can make test results differ from the actual browsing experience. During first use, do not repeatedly test many servers. Choose one complete configuration with a clear service status and perform one real access test. Once the basic path works, compare how different servers perform on the current network.

NEXT / 04

A running client is only an intermediate result. You still need to confirm that actual requests follow the expected path.

Go to Connection Verification
STEP 04

Verify That the Proxy Works

Use an application that is known to follow the current proxy mode. With System Proxy, fully close and reopen the browser first so an old process does not retain its previous network state. With Android, confirm that the browser is not excluded by per-app rules. Then open a page that can clearly distinguish the connection result and watch the client log for a new request at the same time.

Do not judge the result only by whether a page opens. It may be cached, or it may have been directly reachable on the current network. A more reliable check compares the page result, client log, and system proxy state: the page generates a new network request, the log records the target domain or connection at the same time, and disabling the client proxy produces the expected change. Together, these signs show that the request entered the proxy chain.

In desktop v2rayN, keep the client and System Proxy enabled, refresh the test page, and check the log. Then disable only System Proxy and refresh the same page again for comparison. After testing, check the System Proxy menu so the client does not leave settings inconsistent with the current state when it exits. In Android v2rayNG, disconnect and revisit the same page, comparing the connection status and log changes. Change only the connection switch during each comparison; do not change the server or routing mode at the same time.

Distinguish “Client Started” from “Proxy Working”

“Client started” means that the program and core process are running. “Proxy working” means that the target application’s request entered the client and completed the next connection steps according to the configuration. System proxy settings, application proxy behavior, routing rules, and DNS still lie between these two states. If the log shows no test request at all, first check whether the application follows system proxy settings, whether per-app rules exclude it, and whether the proxy switch is actually enabled.

If the log shows requests but connections keep timing out, focus on the server status, server address, local network, and DNS. Do not repeatedly import the same subscription or immediately delete every configuration. First test another server from the same subscription for comparison. If all servers behave the same way, switch local networks or restore the default DNS settings. Changing one condition at a time preserves results that can be compared.

REQUEST A Real Page Request Is Generated

Reload the page or start a network operation instead of observing cached content only.

LOG The Matching Log Entry Appears

Compare the time and target domain to confirm that the request entered the client.

COMPARE Results Can Be Compared Before and After the Switch

Change only the connection state; do not change the server and mode at the same time.

QUICK CHECK

Basic Troubleshooting Order

If the connection still cannot be established after all four steps, check from the outside in. First confirm that the local network can access common pages normally. Then update the subscription and see whether a server list is returned. Next confirm that an active server is selected and the core can start. Finally, check whether the proxy mode covers the application being tested. This order separates subscription, server, and local configuration issues.

A

The Subscription Returns No Servers

Recopy the subscription URL and check the provider’s service status and the current network. Switching proxy modes is pointless while the list is empty because the client has no runnable server configuration.

B

The Core Will Not Keep Running

Find the first error and focus on port conflicts, permissions, and configuration loading. After making a change, restart once; do not keep clicking the connect button and overwrite useful log clues.

C

No Test Request Appears in the Log

Check the System Proxy switch, application proxy behavior, and per-app rules. Fully exit the test application and reopen it so an old process does not retain its previous network settings.

D

Requests Appear but Keep Failing

Test another server from the same subscription for comparison, then check the local network and DNS. Change one condition at a time and keep the before-and-after logs for comparison.

Complex routing rules, TUN handling issues, FakeDNS, conflicts between multiple subscriptions, and custom outbounds should not be addressed together during the first connection. After basic verification succeeds, adjust settings chapter by chapter in the advanced manual. If you have questions about VMess, VLESS, Xray, V2Fly, subscriptions, or traffic splitting, consult Format Guide before deciding whether to change the current configuration.