setup / 10 min

V2Ray Setup: From Subscription Import to Connection Verification

Follow the four steps in order: import the subscription, choose a proxy mode, establish a connection, and verify the traffic path. Each step shows where to click, what success looks like, and what to check when progress stops.

prepare

Before You Start: Check the Client, Subscription, and System Time

Confirm your source materials and client status first, so a subscription issue is not mistaken for a node or routing problem later.

Before setup, prepare a working subscription URL. It is usually a complete link beginning with https://, which lets the client retrieve server settings, protocol parameters, and node names. Copy from the first character through the last without including quotation marks, periods, line breaks, or explanatory text from a messaging app. Treat the subscription URL as connection configuration and avoid pasting it on public pages, screenshots, or group chats.

Next, confirm that the client starts normally. After opening v2rayN on desktop, you should see the main window, menu bar, and node list; an empty node list on first launch is normal. v2rayNG on Android usually shows a configuration list and a connection button in the lower-right corner; the list may also be empty before any configuration is imported. If the client cannot start or closes immediately, first follow the client startup section in the troubleshooting guide to resolve the runtime issue, then return here.

Also verify that the system date, time, and time zone are correct. Some transport connections rely on certificate validity checks, so a significant clock error may allow a subscription update while causing the node connection to fail during the handshake. Enable automatic time setting and make sure the time zone matches your location. After these checks, do not rush to enable the system proxy or repeatedly switch modes. Import the subscription reliably first, so the node list provides a sound basis for later diagnosis.

client

The Client Starts

The main window opens, menus and the configuration list work normally, and no startup error keeps appearing.

subscription

The Subscription URL Is Complete

The link has no extra characters at either end, and the copied content is neither a single-node note nor a login page URL.

clock

The System Time Is Correct

The date, time, and time zone are correct, and automatic time synchronization is enabled or has just completed.

01
subscription

Import the Subscription and Confirm the Node List

The first step is only to confirm that the client can retrieve configuration from the subscription URL. Copy the URL and leave the clipboard unchanged. In v2rayN, open the top “Subscription Group” menu or a similarly named menu, enter Subscription Group Settings, and click Add. Give the subscription a recognizable note, then paste the complete URL into the URL field. Save and close the settings window, reopen the subscription menu, and choose Update Current Subscription or Update All Subscriptions.

During the update, the client requests the subscription content and parses it into node entries. Normally, one or more configurations appear in the main window, each typically showing an alias, address, port, protocol, or group. There is no need to edit server parameters individually because the subscription already provides the complete configuration. Once the list appears, leave it as is. Do not immediately delete similarly named entries or manually import the same links, since duplicate nodes can make later updates confusing.

In v2rayNG, open “Subscription Group Settings” from the side menu, tap Add, enter the subscription note and URL, and save. Return to the main screen and select “Update Subscription” from the menu. When the update finishes, the corresponding nodes appear in the configuration list. Some versions automatically select the first item, but selection does not mean the node is connected. The goal at this stage is only to confirm successful subscription parsing; connect in the third step.

If the list is still empty after updating, return to Subscription Settings, reopen the saved entry, and check whether the beginning, end, or middle of the URL was cut off by a line break. Then confirm that the current network can reach the subscription service and review the client log or status message. A request timeout means the client did not retrieve the content; a parse error usually means the response is not a subscription format the client recognizes; an unauthorized or access-denied error means the subscription may no longer be valid. Do not keep switching nodes or proxy modes at this stage: the node list has not been created, so those actions cannot fix the subscription request.

Subscriptions vs. Single-Node Imports

A subscription is useful for maintaining a group of nodes updated by the service provider. When node addresses, ports, or transport parameters change, the client retrieves the latest content through “Update Subscription.” A single-node import stores only that configuration and does not follow later subscription changes. For a first-time setup, keeping the subscription group structure reduces spelling and parameter-matching mistakes from manual protocol entry.

After a successful update, check whether the node names belong to the same subscription group and remember the note you just created. If the list later appears unchanged, first confirm which group was updated before considering cache cleanup or re-adding the URL. Subscription management involves several status codes, parse errors, and overwrite rules; if this continues to fail, follow the subscription failure troubleshooting flow step by step.

02
routing

Choose the Proxy Mode and Traffic Coverage

Once the node list is ready, the second step determines which requests the client handles. The common modes are rule, global, and direct. Rule mode chooses an outbound path by domain, IP, process, or predefined category; global mode sends all requests captured by the client through the current node; direct mode uses the local network. For a first setup, rule mode is recommended because it preserves necessary direct routes while sending matching traffic through the proxy path.

In v2rayN, find the routing mode option in the lower part of the main window, the menu bar, or the system tray menu, and choose the client’s basic rule set. Then find “System Proxy” and select automatic system proxy configuration or Set System Proxy. The system proxy status should change from disabled to enabled, and the tray icon or status text may change as well. This directs browsers and applications that follow system proxy settings to v2rayN’s local listening port.

The system proxy and routing mode address different layers. The system proxy determines whether traffic enters the client first; the routing mode determines whether traffic that enters the client uses the proxy or a direct route. Switching only the routing mode does nothing if application traffic never reaches the client. Conversely, an enabled system proxy with an unsuitable route can send some sites along unexpected paths. Understanding the order of these two controls makes verification and diagnosis faster.

In v2rayNG, open Settings or Routing Settings and choose the basic rule configuration. After returning to the main screen, there is no desktop system proxy switch to find: Android requests a local VPN tunnel when the connection starts, and that tunnel handles device traffic. The first connection displays a system authorization dialog; after approval, a VPN indicator appears in the status bar. If authorization was previously denied, the connection button may briefly change and then revert. Start the connection again and allow the system request.

Global mode is useful for briefly checking whether a rule is keeping a target out of the proxy path, but it should not be the first response to every failure. If a page fails in rule mode but works in global mode, the node itself is probably functioning; next check rule matching and the DNS path. If both modes fail, continue checking the node connection, system proxy, or network environment. Direct mode is mainly for pausing the proxy path or running a comparison test; it does not exit the client.

When Is TUN Mode Needed?

Some applications do not read system proxy settings or use a separate network stack, so the standard desktop system proxy cannot capture those processes. TUN mode uses a virtual network adapter to handle a broader range of traffic, but adds permission, DNS, and routing requirements. For a straightforward start, use the system proxy to verify a browser first. Only when the target application clearly ignores the system proxy should you consult how TUN mode works and how to enable it.

03
connect

Select a Node and Establish the Client Connection

After choosing the mode, the third step is to select the active node. Do not judge connectivity by the node name alone; use the client’s built-in tests for an initial filter. v2rayN usually offers real connection, latency, or batch tests through the node list’s context menu or a test menu. v2rayNG can test all configurations from its menu or test an individual configuration. Results reflect conditions at that moment, not long-term speed, and should not be the only criterion.

In v2rayN, select a responsive node and double-click its row or use the context menu to set it as the active server. The selected row usually shows a different marker, color, or status message. Confirm that the system proxy from step two is still enabled, then watch the log area. A normal startup shows configuration loading, local listening, and core startup messages without recurring errors. v2rayN can be minimized to the system tray, but do not terminate the process or the local proxy port will stop as well.

In v2rayNG, tap the configuration you want to use so it becomes selected, then tap the connection button on the main screen. Approve the system prompt when the VPN tunnel is created for the first time. After connecting, the button state changes, a VPN indicator appears in the system status bar, and the app shows that the service has started or is running. If it stops immediately, open the log and inspect the last few lines, distinguishing configuration parse errors, domain resolution failures, connection timeouts, and port conflicts, since each requires a different response.

If a node passes testing but real access fails, do not rapidly switch through many nodes. Choose another node in the same subscription group for one comparison. If only one node fails, the issue is more likely with that node or its transport parameters. If every node in the group fails, check whether the subscription has expired, whether the network restricts the connection, and whether the system time is correct. If the client log looks normal but the browser still uses the old path, return to step two and check the system proxy or VPN capture status.

On desktop, also check the local listening port. After starting its core, v2rayN listens on a local port for system proxy traffic. If another program already uses that port, the log may report a bind failure or that the address is in use. The system proxy can then be enabled but still cannot deliver requests to a working local service. Follow the local port conflict diagnosis guide to identify the process and decide whether to close it or change the listening port.

A Connected Status Does Not Guarantee Access

A client status of “started” only means that the local core or VPN tunnel is running. The full path also depends on whether the application enters the local endpoint, which outbound route the rules select, whether the node connects remotely, and whether DNS resolution matches the traffic path. The next step must therefore verify access while you watch the logs. Configuration is truly working only when the client status, real access, and connection records agree.

04
verify

Verify Access Results and the Actual Traffic Path

Verify from near to far. First inspect the client: is the active node still selected, is the core running, and is the system proxy or VPN indicator present? Then inspect application traffic: fully close and reopen the browser to avoid stale connections, cached pages, or existing long-lived connections, and visit a normal page that previously required the proxy path. A loaded page is only an initial result; use the client log to confirm that the request entered the current configuration.

In the v2rayN log, a new request usually produces records for the target domain, connection establishment, or routing outbound. If the browser shows activity but the log has no new entries, first check whether the browser bypasses the system proxy, whether the system proxy still points to v2rayN’s local port, and whether another proxy application has overridden the system settings. You can compare with another browser that follows system proxy settings, but do not immediately change the node configuration.

In v2rayNG, visit a webpage after connecting, then return to the app and inspect the log. New request records indicate that device traffic has entered the VPN tunnel. If the connection indicator is present but the page keeps waiting, determine whether the error occurs during DNS resolution, remote connection, or the handshake. If only certain apps bypass the connection, check whether they are on the per-app proxy exclusion list. For an initial setup, keep per-app settings disabled until the basic path is confirmed.

The third layer is public IP information. Record the current network exit before connecting, reopen the lookup page afterward, and check whether the exit information changes with the node path. The goal is only to compare before and after; do not rely on one site’s geographic label because databases may update slowly. If the exit has changed but a particular domain remains inaccessible, proxy capture and node connectivity are probably working, and the issue may be limited to that domain’s routing rule, DNS resolution, or the destination service.

Finally, check DNS behavior. A common pattern is that pages load but a particular domain fails to resolve, or system resolution follows a different path from proxy egress. Stop the connection, restart the client, and refresh the browser to rule out stale cache. If the issue persists, read the DNS path testing and repair guide, then adjust remote DNS, routing rules, or FakeDNS for the current client. A basic setup should not begin by enabling several experimental DNS options at once.

status

Client Status

The core keeps running, the active node is clear, and the desktop system proxy or Android VPN tunnel remains connected.

traffic

Requests Appear in the Log

After the browser starts a new request, the client log shows the target request or its corresponding connection record.

result

Access Results Match

Page loading, exit changes, and expected routing agree; do not rely on a single status icon.

restart

Works Again After Restart

After closing and restarting the client, selecting the node again completes the same connection and verification flow.

review

Review the Four Steps and Use the Setup Daily

Once basic setup is complete, keep only the essential habits: update the subscription regularly, know the current mode, confirm the active node, and check the path in order when something goes wrong.

A complete, repeatable setup should satisfy these conditions: updating the subscription creates a node list; rule mode and traffic capture are defined; the client selects an active node and stays running; browser requests appear in the log and access results match expectations. When changing nodes later, do not add the subscription again. Select another configuration from the existing list and reconnect. When subscription content changes, update the subscription and choose a node from the refreshed list.

If access fails after restarting the client, first confirm that the system proxy or VPN tunnel was re-enabled with it, then check whether the active node still works. Do not immediately delete all configurations and reinstall, because that removes the subscription group, logs, and local settings needed to identify the cause. Record the steps that reproduce the error, the current mode, and the last log entries before beginning a systematic investigation.

01

Subscription: The update completes with nodes available, and repeated updates produce no parse errors.

02

Mode: The rule selection is clear, and traffic capture matches the current platform.

03

Connection: The active node is clear, and the core or VPN tunnel remains running.

04

Verification: The access request appears in the log, and the exit and routing results match expectations.

For no access, node timeouts, subscription failures, unusual speeds, DNS resolution issues, an ineffective system proxy, or client crashes, open the V2Ray Troubleshooting Guide. It breaks the checks down by symptom and is useful when basic setup is complete but results remain unstable.

Download the Client