First-time setup · About 10 minutes

v2rayN / v2rayNG Setup Guide: From Subscription Import to Connection Verification

Follow four operations in order: import a subscription, choose a proxy mode, establish a connection, and verify the access result. Each step explains where to find the setting, what status to expect, and what to do next.

Desktop: v2rayN Android: v2rayNG Flow: Import → Mode → Connect → Verify
Preparation

Pre-setup Check: Prepare the Subscription URL and Client

Before you begin, confirm that the client matching your device is installed. Use v2rayN on Windows, macOS, and Linux desktop devices, and v2rayNG on Android devices. If it is not installed yet, open the download page, choose your platform and processor architecture, and return here after installation. On first launch, the system may request network access; follow the system prompt to grant permission, then keep the client window open.

You also need a valid subscription URL. A subscription URL is usually generated by your service provider. It is not a regular webpage address, but an entry point that lets the client read server configurations. Copy it from beginning to end without adding line breaks, spaces, or explanatory text from a chat app. Treat the URL as personal configuration data: do not publish it on a public page or share it with unrelated devices.

If you received a single VMess, VLESS, or Trojan share link, you can import entries one at a time, but this guide focuses on subscriptions. A subscription keeps server information together and is more convenient for a first setup. For single-node imports, protocol fields, and transport methods, see the glossary. Multi-subscription groups, server filtering, and custom routing are advanced topics covered in advanced configuration.

Client is running Open v2rayN on desktop or v2rayNG on Android.
Subscription URL is copied Confirm that the URL is complete and contains no leading or trailing spaces or explanatory text.
Previous proxy is disabled Close other tools that are currently controlling system traffic to reduce configuration conflicts.
Step 1

Import Subscription: Create a Group and Update the Server List

First create a subscription group in the client, then let the client read the server configuration from the subscription URL. Do not look for server names directly on the main screen; the list is usually empty on first launch. Server entries appear only after the subscription is saved and updated. The step is complete not when the URL is saved, but when selectable servers appear on the main screen.

Add a Subscription in v2rayN on Desktop

Open v2rayN and find “Subscription Groups” or a similarly named subscription management entry in the top menu, then open “Subscription Group Settings.” Add a group and enter an easy-to-recognize name, such as “Primary Subscription,” in the alias field. Paste the copied URL into the subscription URL field. For a first setup, leave the remaining filters at their defaults, then save and close the settings window.

Return to the main window, open the subscription menu again, and choose “Update All Subscriptions” or update the current group. The client will read the configuration and refresh the server list. When the update finishes, the main area should show several server rows, usually with columns such as alias, address, port, and transport. Do not edit server parameters individually yet; use the subscription-generated configuration as a whole. If the main window is still empty, check the message or log area at the bottom to determine whether the URL could not be read, the response was empty, or group filters hid all entries.

Add a Subscription in v2rayNG on Android

Open v2rayNG and go to “Subscription Group Settings” from the side menu. Tap the add button to create a subscription group, enter a note or group name, paste the subscription URL, and save it. Return to the main screen and choose “Update Subscription” from the top-right menu. Keep the network connection active during the update. When it finishes, server configurations should appear in the main list. If older configurations are already present, entries generated by the new subscription are usually grouped accordingly; first confirm that the new group is enabled.

Once the server list appears, do not start the connection yet. First determine the proxy mode, which controls which traffic the client handles. You can continue even if the import produced only one server; the number of entries does not determine whether the configuration works. Duplicate servers usually mean the import was run more than once or an old group was retained. There is no need to clean them up immediately—complete connection verification first, then organize the groups in subscription management.

Completion check A selectable server list appears on the main screen
Next: Choose a Proxy Mode →
Step 2

Choose a Proxy Mode: Start with Rule Mode for the First Setup

The subscription provides server configuration; the proxy mode determines how traffic is routed. These are separate layers: even with the right server selected, traffic will not use the proxy if the mode is set to direct. In global mode, most requests within the system proxy scope are sent to the current server. For a first setup, start with rule mode. It uses built-in or subscription-provided routing rules to distribute traffic between direct connections and the proxy exit.

Understand the Three Common Modes

Recommended Starting Point

Rule Mode

Chooses the outbound path according to domain, IP, protocol, and routing rules. It suits everyday use and makes it easier to verify direct and proxied access separately. If the subscription provides routing rules, you can usually use them as supplied.

For Diagnosis

Global Mode

Sends most traffic within the system proxy scope through the current server. It is useful for briefly checking whether routing rules are preventing the target site from using the proxy, but it should not be the only method used to troubleshoot every issue.

Temporary Disable

Direct Mode

Connects directly to the target address. It is typically used to temporarily disable the proxy or run a comparison test. In direct mode, access results may remain unchanged even when a server appears selected.

Set the System Proxy on Desktop

In the v2rayN main window’s bottom status bar or system tray menu, find the system proxy option. Choose “Set System Proxy Automatically” or a similarly named enable option, then set the routing mode to rule mode. In some versions, “System Proxy” and “Routing” are separate menus: the former determines whether browsers and other programs send requests to v2rayN, while the latter determines whether those requests use a direct connection or the proxy. Confirm both; switching only one is not enough.

After making the changes, check the status bar. The system proxy should show as enabled, and the routing mode should show the selected rule set. Some applications do not read the system proxy automatically; they require a separate proxy address or, in advanced scenarios, TUN mode. For a first setup, verify with a browser and avoid changing TUN, DNS, and custom routing at the same time, which would add variables and make troubleshooting harder.

Confirm the Connection Setup on Android

On v2rayNG’s main screen, open the top-right menu and select the routing settings. Choose the preset rule mode and return to the main list. When v2rayNG connects on Android, it creates a system-level VPN tunnel. The first connection displays a system authorization prompt; confirm it as instructed. Leave per-app proxying, bypass settings, and custom DNS at their defaults until the basic connection has been verified.

After selecting the mode, return to the server list. Choose an active server and start the connection. If you are unsure which one to use, start with the first entry in the subscription’s default sort order; if it fails, try another entry for comparison. Latency reflects only part of the network situation and cannot by itself prove that the target site is reachable. The final judgment should be based on the actual request result in Step 4.

Completion check Rule mode is selected, and system proxy or connection permission is ready
Next: Establish a Connection →
Step 3

Establish a Connection: Select a Server and Monitor Its Status

After the subscription and mode are configured, the client still needs a specific active server. A server being present in the list is not the same as it being in use: select one entry and have the client reload that configuration. During connection setup, focus on the status bar, system indicator, and logs rather than judging the result by button color alone.

v2rayN Desktop Connection Order

Click a server entry in the main list, then choose “Set as Active Server” from the context menu. Some versions also support double-clicking or pressing Enter. The active server usually receives a color marker, check mark, or status-bar label. Confirm that the system proxy remains enabled. v2rayN will start the relevant core using the selected configuration and show the startup process in the bottom log area.

Normally, the log first shows configuration loading and local listening details, then waits for application requests. A quiet log does not necessarily indicate failure: connection records appear only after a browser sends a request. If the log immediately reports a configuration parsing error, port conflict, or connection refusal, note the stage where it occurred before trying another server. See the Help Center for common log keywords and how to read them.

v2rayNG Android Connection Order

Select a server in the main list to make it the current configuration, then tap the connection button on the main screen. On the first connection, the system displays a network access authorization prompt. Confirm it and wait for the status indicator to show that the connection is active. Once connected, the notification area usually shows that v2rayNG is running, while the main screen displays the current server name or runtime duration.

If the connection button quickly returns to its stopped state, the client is not staying running. Open the log and check whether the configuration loaded successfully. If the client stays connected but the browser cannot open the target site, do not immediately re-import the subscription. Continue to the next step and compare the direct page, target page, and client log. This helps distinguish an inactive system proxy, a failed server connection, a DNS resolution issue, and a problem limited to one site.

Change Servers While Keeping Variables Constant

If the first connection fails, try another server in the same subscription group, but do not change protocol parameters, routing mode, and DNS at the same time. The correct comparison is to keep rule mode unchanged, switch only the active server, and revisit the same test page. If the second server works, the issue is more likely with the original server or its network path. If several servers behave the same way, check the subscription, device time, system proxy, and local network.

A large device clock offset can affect some protocol connections, so enable automatic system time. On desktop, also make sure the local firewall is not blocking v2rayN or its core process from accessing the network. On Android, prevent battery-saving policies from immediately stopping v2rayNG in the background. After these basic checks, verify actual access in a browser.

Completion check The client stays running, an active server is selected, and the log is waiting or recording connections
Next: Verify That It Works →
Step 4

Verify That It Works: Check Access Results and Client Records Together

Do not rely only on the client showing “Connected.” That status usually means the local service or system tunnel has been established; it does not prove that the remote server is usable. A reliable check combines a real webpage request with the client’s connection records, followed by comparison across different types of sites.

Refresh the Browser State First

If the browser was already open before the proxy was enabled, close and restart it completely, or at least open a new private window to reduce the effect of old connections, cached data, and extension settings. On desktop, start with a common browser that follows the system proxy. If the browser has its own proxy configured, temporarily restore it to use system settings. On Android, keep v2rayNG connected and reopen the browser to make the request.

First visit a page that normally opens directly to confirm that the underlying network still works. Then visit the target page that should be tested through the current server. In rule mode, both types of access should return normal results. During the test, watch the v2rayN bottom log or v2rayNG log page. If a new domain, target address, or connection record appears at the same time as the browser request, traffic has entered the client. If the log does not change at all, focus on the system proxy, the application’s separate proxy settings, and Android connection authorization.

Diagnose the Issue from the Result Combination

Observed Result Likely Cause Next Action
Direct page works, target page works, and the log shows a new record The basic configuration is working Keep the current mode and test other applications as needed
The page fails and the log shows no new record Traffic has not reached the client Check the system proxy, the browser’s separate settings, or connection authorization
The log records connections, but several servers all fail The subscription, network, device time, or protocol environment may be faulty Update the subscription, enable automatic time sync, and compare using another network
Only one target page fails The issue may involve that site’s DNS, routing, or service status Test other target pages, then check domain rules and DNS
The connection recovers after switching servers The original server or its network path is having an issue Keep the working server active and test the original entry again later

After confirming that browser access works, test the applications you actually need. Some desktop programs ignore the system proxy and require “Follow system proxy” or a local proxy port in their own settings; this does not mean the subscription has expired. On Android, the system connection usually handles traffic centrally, but per-app proxy settings may exclude specific apps. When behavior differs, check the app’s network settings before changing the client.

After verification, keep rule mode as your everyday setting. Future subscription updates usually require only “Update Subscription”; there is no need to create the group again. If your service provider changes the subscription URL, edit the existing group and update it instead of accumulating duplicate configurations. For automatic updates, group filters, custom DNS, TUN, FakeDNS, or complex routing, follow the advanced configuration guide chapter by chapter.

First-time Setup Troubleshooting Order

Check issues layer by layer, changing only one condition at a time.

01

Confirm That the Subscription Updated

Return to subscription groups and run an update, then confirm that servers appear in the main list. If reading fails, copy the URL again and check the current network. Do not paste webpage instructions, quotation marks, or trailing spaces along with the subscription URL.

02

Confirm the Active Server

At least one list entry must be set as the current server. When switching servers, keep rule mode and all other settings unchanged, and compare results using the same test page.

03

Confirm That Traffic Reaches the Client

Refresh the webpage while watching the log. If the log does not change, first check the system proxy, the browser’s separate proxy, Android connection authorization, and per-app settings.

04

Check the Network and DNS Next

Compare using another network, enable automatic system time, and test multiple target pages. Handle DNS and routing rules only when failures are limited to specific domains.

Continue Reading

Leave Complex Settings Until Basic Connectivity Works

For connection problems, search the Help Center by symptom; for protocol, core, and routing terms, consult the glossary; for multiple subscriptions, DNS, TUN, and custom outbounds, see advanced configuration.