v2rayN Setup Guide: Subscriptions, Modes, Connections and Verification
Have a valid V2Ray subscription link ready and complete the first connection in four steps. This guide focuses on the interface actions you actually need, without diving into complex routing syntax. For DNS, TUN, FakeDNS, or multiple subscription groups, continue to the advanced manual.
Complete the setup in order. If a later step fails, return to the previous step and confirm its state before changing anything. Do not modify the server, routing, and DNS at the same time.
BEFORE START
Before You Start: Client, Subscription URL, and System Time
Confirm the prerequisites first to avoid repeatedly switching settings later.
INPUT / 01
Confirm the Client Matches Your Device
Use v2rayN on desktop devices and v2rayNG on Android devices. If neither is installed, open the download page and choose the package for Windows, macOS, Android, or Linux. After installation, launch the client but leave kernel, port, and advanced routing options unchanged for now.
A subscription URL is usually a complete link beginning with https:// and may include parameters used to identify the subscription. Copy every character, including the end of the URL. Do not mistake a web console address, a single node name, or QR code instructions for a subscription link.
Format Example
https://example.com/subscription?token=xxxx
INPUT / 03
Correct the System Time
Some transport configurations are sensitive to device clock drift. Before you begin, enable automatic date and time and confirm the time zone is correct. A significantly incorrect clock can cause the server to import successfully and the network to work normally while the connection handshake still fails.
The stage is complete only when selectable server entries appear on the main screen—not merely when the URL has been saved.
v2rayN Desktop: Create a Subscription Group
Open the v2rayN main window and find “Subscription Groups” or the subscription management entry in the top menu. Wording may vary slightly by version, but the available actions cover adding, managing, and updating subscriptions. In the management window, choose Add and enter a recognizable note, such as “Daily route.” The note is only for local organization and does not change the server configuration.
Paste the complete subscription URL into the address field and save it. Return to the main window, open the subscription menu again, and choose “Update All Subscriptions,” or update the new group separately. When the update finishes, the server list should show entries with names, address types, or transport details. Do not connect yet: click a row and confirm that it can be selected as the active server.
If the list is still empty after saving, check the bottom status area or log window. For an invalid URL format, copy the original link again. For a request timeout, confirm that ordinary network access works on the device, then try the client’s update-through-proxy option if available. If this is your first use and no working proxy connection exists, do not enable proxied updates blindly—the request may have no usable outbound route.
v2rayNG Android: Add Subscription Settings
Open v2rayNG, expand the side menu in the upper-left corner, and enter “Subscription Settings.” Tap the add button in the upper-right corner, enter a note, paste the subscription URL, and save. Return to the subscription list, confirm the new item is enabled, then use the upper-right menu to update subscriptions. When the update finishes, return to the main screen, where one or more configuration entries should appear.
Tap one configuration so it becomes the current selection. Do not stop at the subscription settings page: the URL is only the configuration source, while the server entry on the main screen is the object used for connection. If the update reports success but the main screen does not change, refresh from the main-screen menu or check whether the subscription item was disabled.
Confirm Before Continuing
The subscription manager shows the saved name and URL.
After updating, the main screen shows at least one selectable server entry.
The current server is selected, rather than merely focused or hovered in the list.
The server determines which route carries the traffic; the proxy mode determines which requests use that route. For a first setup, minimize variables and refine the rules later.
Set One Active Server First
Select a configuration in the server list. In v2rayN, you can usually double-click a row, right-click to set it as the active server, or press Enter. In v2rayNG, tap the configuration on the main screen. Check the highlight state or the current configuration name shown at the top to ensure the client starts this server rather than an older one.
When a subscription contains multiple routes, do not switch between them repeatedly during the first connection. Fix one route for the entire process, then try another for comparison if verification fails. This helps distinguish a server problem from an issue with the system proxy, permissions, or routing. Speed tests are useful for choosing a route, but they do not replace a real connection test.
Rule-Based Routing, Global Proxy, and Direct
Rule-based routing selects an outbound based on domains, IPs, ports, or rule sets. It suits everyday use and is the recommended starting mode. Common local services can stay direct while destinations that need a proxy use the proxy outbound. Because this mode depends on routing rules, check rule matches first if only certain sites behave unexpectedly.
Global proxy sends all traffic captured by the client through the current proxy outbound. It is useful for a short comparison test. If a destination fails in rule mode but works globally, the connection itself is usually available and the issue is more likely in routing rules or DNS resolution. Global mode is not the final fix; restore rule-based routing after identifying the cause.
Direct bypasses the proxy outbound and is mainly used to pause proxying or test the local network. In direct mode, the client core may be running without producing the expected proxied access result. When troubleshooting “connected but nothing changed,” first confirm that direct mode is not active.
Desktop System Proxy and Android Connection Method
v2rayN must switch the system proxy to an active state. Common options include automatic system proxy configuration, clearing the system proxy, and leaving it unchanged. For a first setup, choose automatic configuration so browsers and apps that follow system proxy settings send requests through v2rayN. Starting only the core without configuring the system proxy can leave the logs looking healthy while browser traffic never reaches the client.
v2rayNG takes over traffic through system connection authorization and normally does not require a separate desktop proxy address. When connecting, Android displays an authorization prompt; after approval, a connection indicator appears in the status area. If permission was previously denied, tap Connect again and follow the system prompt.
Mode
Primary Use
First-Setup Recommendation
Rule-Based Routing
Route traffic through the proxy or directly according to routing rules
The connect button only starts the process. Confirm that the core is running, traffic is being captured, and the logs are not repeating errors.
v2rayN: Start the Service and Configure the System Proxy
After confirming an active server in the list, start the service from the main window’s bottom status area, the taskbar menu, or the top menu. Then switch the system proxy to automatic configuration or the state required by the current mode. Depending on the version, “Start Service” and “Set System Proxy” may be combined or shown as separate actions. Afterward, check both the taskbar icon and the text at the bottom of the main window.
Open the log panel. A normal startup usually shows configuration loading, inbound listening, and core startup entries. The local port in the log carries traffic between the client and the system; it is not the server port. Do not change the local listening port just to match the subscription. If the log says the port is already in use, fully exit duplicate client processes and restart. If the conflict remains, choose a local port not used by another program in Settings.
v2rayNG: Tap Connect and Approve Access
Return to the v2rayNG main screen and confirm that the top bar or configuration card shows the server you selected. Tap the circular connect button. On the first connection, Android displays a connection authorization prompt. Approve it; the button state will change and a connection indicator will appear in the system status area. You can leave the client running in the background without keeping the main screen open.
If it immediately returns to a disconnected state, open Logs from the side menu and inspect the final lines. Common causes include an unreachable server, incompatible configuration fields, clock drift, or an interrupted network switch. Lock the device to either mobile data or Wi-Fi and retry, avoiding a change of network route while the connection is being established.
How to Distinguish “Core Started” from “Connection Ready”
Core startup only means that the client read the configuration successfully and began listening for local traffic; it does not guarantee that the remote route works. Some protocols establish the remote connection only when a real request arrives, so few log entries immediately after tapping the button are normal. Open a webpage or refresh an existing one to generate a request, then check whether the log shows matching inbound, routing, and outbound entries.
If the status says Running but refreshing the browser adds nothing to the log, the problem is usually at the traffic entry point. On desktop, check that the system proxy is enabled. On Android, check that connection authorization is still valid. If requests appear but connection errors continue, compare another server from the subscription.
Core Started
The status bar shows Running, and the log contains configuration-loading and listening entries.
Traffic Is Reaching the Client
After refreshing a page, the log contains new inbound and routing entries.
Results Still Need Verification
Continue checking destination access and rule-based routing; do not rely only on the connection icon.
Verify the Connection, System Proxy, and Routing Results
Verification should cover three layers: whether the client receives the request, whether it reaches the expected outbound, and whether destinations meant to connect directly still follow their original route in rule mode.
Create a Fresh Browser Request
Pages opened before connecting may retain old connections or cached data. Close the relevant tabs and reopen them, or use a new browser window to generate requests. If only one desktop browser is unaffected, check whether it has independent proxy settings that override the system proxy. If only certain Android apps bypass the connection, check whether v2rayNG’s per-app proxy settings exclude them.
Check the client log immediately after sending a request. Seeing the destination domain, matching rule label, or outbound type confirms that traffic entered the client. If the browser reports an error but the log has no entry, return to the previous step and check the traffic entry point. If the log records the request but shows a connection timeout, the current server or network path is more likely at fault.
Run a Two-Way Check in Rule Mode
Do not test rule-based routing with only one destination that requires a proxy. Also check a commonly used local service that should remain direct. The first confirms that the proxy outbound works; the second confirms that the rules are not sending everything through one exit. Compare the routing results in the log: proxied requests should use the proxy outbound, while direct destinations should match a direct rule.
If global proxy works but rule mode fails, do not repeatedly reinstall the client. Record the failed domain, find the rule it matched in the log, then check GeoSite, GeoIP data, and custom routing order. Routing rules usually match from top to bottom; an overly broad rule placed first can prevent a more specific rule below it from taking effect.
Confirm DNS Uses the Correct Path
If some domains fail while connecting by address works, DNS may be the cause. During the first setup, restore the client’s default DNS settings and restart the connection instead of combining system DNS, custom remote DNS, and FakeDNS. After restoring the defaults, clear the current browser page and visit it again, then check the log for name-resolution errors.
Once the defaults work, decide whether to configure remote DNS, a DNS outbound, or FakeDNS for your network environment. DNS and routing rules affect each other, so adjust them separately after the basic connection is verified. The advanced manual covers the full setup path, leak testing, and TUN integration.
Completion Checklist
Status check: The client stays connected, with no recurring startup failures or port conflicts in the log.
Entry-point check: After refreshing the browser, the log shows new request entries.
Proxy check: Destinations that require a proxy are reachable and use the proxy outbound.
Direct check: Common local services still use the direct outbound in rule mode.
Restart check: After closing and reopening the client, the subscription group, active server, and mode remain as expected.
Change only one variable at a time. Reconnect and test again after each change so you can identify which setting affected the result.
The subscription updated successfully, but no servers appear on the main screen. What should I do?
First confirm that the subscription item is enabled, then return to the main screen and refresh it. If it is still empty, check whether the returned subscription format is supported by the client. Do not treat the URL shown in subscription management as proof of a completed import; the selectable server entries on the main screen are the final check.
The client says it is running, but the browser shows no change. What should I do?
On desktop, first check that the system proxy has switched to client-managed mode, then confirm that the browser has no independent proxy setting. On Android, check system connection authorization and the per-app proxy scope. Watch the log while refreshing the page; no new request usually means traffic has not entered the client.
Rule mode fails, but global proxy works. What should I do?
This usually means the connection path is basically working, so focus on routing rules and DNS. Check which rule matches the failed domain, confirm that a broad rule is not overriding a specific one, and verify that GeoSite and GeoIP data fit the current rule syntax. Export the current configuration before making changes.
The connection still times out after switching servers. What should I do?
Confirm that the device can access ordinary webpages and correct the system time. Then keep the current network type fixed, restart the client, and test another server. If multiple servers behave the same way, check whether the subscription has expired, whether the client core is compatible, and whether DNS is returning abnormal results.
DOWNLOAD
Client Not Installed
Choose v2rayN or v2rayNG for your system, then install the package that matches your architecture and platform.