10-minute basic setup

v2rayN Tutorial: From Subscription Import to Connection Verification

Prepare a valid V2Ray subscription link, then import it, choose a proxy mode, connect to a server, and verify the result. This tutorial covers the main path for first-time setup; see the troubleshooting guide for advanced DNS, core, and system issues.

Time required: about 10 minutes Desktop: v2rayN Android: v2rayNG Flow: Import → Mode → Connect → Verify

Pre-setup checks

Before starting, make sure the client opens normally and have the subscription link provided by your service provider ready. A subscription link is usually a complete address beginning with https://; it is not a single server's label or an installer file. Copy every character in the address, without including a period or spaces from a chat message or document.

If the client is not installed yet, choose v2rayN from the Windows download, macOS download, or Linux download section. On Android, choose v2rayNG from the Android download section. After the first launch, avoid repeatedly changing the core, port, or DNS. Keeping the defaults makes it easier to tell whether a problem comes from the subscription, server, or system proxy.

Two concepts are easy to confuse. A subscription provides the client with an updateable set of server configurations; a connection selects one server from that set and starts the local proxy. Successfully adding a subscription does not mean the network is already connected. After the server list is populated, you still need to choose a mode and connect. Conversely, clicking Connect with an empty subscription list will not produce a useful result.

What you need

An installed client, a complete subscription link, and a current network that can open ordinary web pages.

Leave these unchanged for now

The local listening port, DNS type, core path, and custom routing rules. Use the defaults until the main flow is complete.

Configuration source

Import a V2Ray subscription link

In the v2rayN desktop client, open Subscription Groups or the subscription settings entry and create a new group. Give it a recognizable label, such as “Common subscription,” then paste the complete subscription link into the address field. Make sure there are no spaces at either end, save it, and run Update all subscriptions or update the current group. Menu wording may vary slightly by version, but the required actions are always the same: create a group, enter the address, save, and update.

After the update starts, watch the status bar or log area at the bottom of the client. Normally, several configurations will appear in the main server list when the update finishes, often with details such as type, server label, or group. There is no need to edit each server parameter because the subscription already supplies the protocol, port, transport, and security settings. Manually changing one field may cause the configuration to diverge from its source.

In v2rayNG, open Subscription Groups from the side menu, tap Add, enter a label and subscription address, and save. Return to the subscription list, select the group you just created, and run an update. Then return to the main screen; the server configurations should appear in the selectable list. If the list is still empty, check that the group is enabled and that you actually ran an update rather than only saving the address.

A subscription update can fail because the address has expired, the current network cannot reach the source, the response format is incompatible, or the request timed out. Do not keep adding duplicate groups or import a subscription link as though it were a single-server share link. First open the group editor and check the address; if it was copied, delete it and paste it again. If it still fails, note the request error and time in the log, then visit subscription failure troubleshooting and check the network, format, and proxy path one by one.

Completion check

Configurations appear in the server list, the subscription group is recognized, and the update completes without recurring errors.

Ready for the next step

Traffic handling

Choose a proxy mode and routing rules

After importing the subscription, do not immediately edit every server. First decide how the client should handle connections to different destinations. “System proxy” determines whether desktop apps hand requests to v2rayN's local proxy port; “routing mode” determines whether requests entering the client are sent directly, proxied, or blocked. They operate at different layers, so enabling only one may not produce the expected result.

For a first v2rayN setup, choose a rule-based routing mode from the routing settings or tray menu, such as one that uses preset domain and address rules to decide between direct and proxied connections. This makes ordinary web access easier to verify while keeping rule matches observable. Global mode sends more requests through the selected server and is useful for a short comparison test to see whether routing rules affect an app, but it is not recommended as the only long-term setting when background system traffic is unknown. Direct mode is mainly for temporarily bypassing the proxy and comparing results.

After choosing a mode, check that the client's current routing configuration has loaded. Depending on the v2rayN version, routing may be under Settings, the main menu, or the tray menu; the current mode is usually shown as a checkmark or status text. Keep the subscription's or client's preset rules for now, and avoid adding many custom domains before the first connection. The more complex the rules, the harder it is to identify which match caused an access problem.

The v2rayNG main screen usually provides a routing option or preset rules entry. Choose a rule mode using the same approach as on desktop, return to the main screen, and confirm that the choice was saved. On Android, traffic is not actually handled until the connection service starts, so setting the mode alone does not mean the connection is running. If an app later behaves differently from the browser, first check whether it is allowed to access the network, uses its own DNS, or bypasses system network services before starting a dedicated investigation.

Mode Primary use Recommendation for first setup
Rule-based routing Use domains, addresses, or rule sets to decide between direct and proxied connections Recommended for the first connection in this tutorial
Global mode Send most requests handled by the client through the active server Use briefly for comparison tests only
Direct mode Send requests directly through the current network Use to pause the proxy or compare connection behavior

If you need finer rules by app, domain, port, or network type, this tutorial does not cover rule priority or matching syntax. Visit troubleshooting for the recommended order of investigation, then adjust settings based on the symptoms. For a first setup, remember: choose one clear rule mode, keep the rules simple, and connect to a server afterward.

Completion check

The client shows the current routing mode, with no conflicting temporary rules enabled at the same time.

Mode confirmed

Start the service

Select a server and connect

Return to the server list and select a configuration from the updated subscription group as the active server. In v2rayN, this is usually done by double-clicking a list item, right-clicking and choosing Set as active server, or using the selection command in the interface. After selection, the status bar should show the active configuration's label. If several entries are available, choose just one for the first test. Frequent switching during connection attempts mixes multiple startup results in the log and makes failures harder to identify.

Once the active server is selected, enable the system proxy in v2rayN. This is usually available from the tray menu or the system proxy entry on the main screen, and the status text or icon will change when enabled. The client starts a local proxy inbound and points the system proxy setting to its local listening address. Keep v2rayN running and do not exit the tray process before verification. After closing the main window, confirm that the program was minimized to the tray rather than fully terminated.

Some desktop apps do not read the system proxy automatically, or read it only at startup. To prevent stale settings from affecting the test, fully close the browser after enabling the system proxy and open it again. If only one app cannot connect while the browser works, the core and server are usually running; the issue is more likely in that app's own proxy settings. Do not immediately delete the subscription or reinstall the client.

In v2rayNG, select a server configuration so it becomes the active item, then tap Connect on the main screen. The first time the network service starts, the system will show an authorization prompt; read it and allow the connection. Once connected, the main button, the system status area, or the client status text will indicate that the service is running. Do not force-stop v2rayNG or immediately clear it from the background, or the connection may end with the process.

If the connection returns to a disconnected state immediately, check the latest client logs first. Common messages include failure to resolve the server address, connection timeout, a configuration field unsupported by the current core, or a local port conflict. Do not assume a server is usable merely because the Connect button changed color; that only shows that the local service attempted to start. Confirm the remote connection through the logs and the practical access test in the next step.

A server timeout does not necessarily mean the entire subscription is unusable. Stop the connection, select another configuration in the same group, and start it again. After each switch, wait for the core to reload and watch the new section of the log. If several servers time out at the same stage, check the current network, system time, DNS, and subscription configuration before clicking through more entries. See server timeout troubleshooting for a systematic process.

Completion check

The active server is clearly identified, the client is running, and the logs show no recurring startup failures or port-conflict errors.

Connection started

Confirm the result

Verify that the proxy is working

After starting the connection, reopen the browser and visit an ordinary web page that normally loads reliably. This checks that the system proxy has not disrupted basic connectivity. If the page does not load, check the client logs for a request entry: an entry means the browser request reached the client, so continue with the server and routing; no entry points more strongly to the browser bypassing the system proxy, the client listener not running, or the system proxy setting not being applied correctly.

Next, visit a destination that should use the proxy under the current routing rules and watch the client log or connection details. A matching domain, outbound tag, or connection-established entry indicates that the request reached the rule system. The key questions are whether the request entered the client, which type of rule matched, and whether the outbound connection succeeded—not simply whether the page appeared. Page cache, existing browser connections, and DNS cache can obscure a single test, so close and reopen the page when necessary.

On desktop, also check that the system proxy status matches the action you took. If v2rayN reports that it is running but no browser requests appear in the log, turn the system proxy off, turn it on again, and restart the browser. If the browser works but another app does not, do not change the working server; check whether the target app has its own proxy setting or supports direct connections only. A system proxy does not guarantee that every program will read it automatically.

In v2rayNG, use the connection status and live log on the main screen to confirm that traffic is reaching the service. If no app can access the network after connecting, stop the service and confirm that basic connectivity returns after it is off, then test the connection again. If the basic network is still unavailable with the service off, the issue should not be attributed to the client; restore the current network first. If it works when off but fails when on, check the server, routing, and DNS in that order.

DNS problems often appear as domains failing to open while direct connections or some apps still respond. During a first setup, avoid trying several DNS schemes at once: system DNS, client DNS, and browser secure DNS can create multiple layers. Keep the defaults and record the exact symptoms first. Only after the logs show resolution failures, unexpected results, or resolution timeouts should you visit DNS troubleshooting and change the relevant options.

The browser opens pages and the log shows requests

The basic setup is working. Adjust routing for your actual use case later; there is no need to import the subscription again.

The browser cannot open pages and the log shows errors

The request reached the client. Focus on the active server, connection timeouts, routing outbound, and DNS.

The browser cannot open pages and the log shows no requests

Focus on the system proxy, the browser's own proxy settings, the local listener, and the client process.

Only one app has a problem

Keep the current working connection and check whether that app reads the system proxy or uses its own network settings.

After verification, run one stop-and-recover test: disable the system proxy or disconnect v2rayNG and confirm that the network returns to a direct connection, then enable the connection again and confirm that the client recovers normally. This simple test rules out misleading results from an accidentally retained old connection and clarifies the relationship between the client switch and the actual network path.

Completion check

The target page opens as expected, the client log shows request entries, and the state changes after stopping and reconnecting are clear and repeatable.

Basic setup complete

Four post-setup checks

Once the basic connection works, there is no need to keep changing advanced settings. Use these four results to confirm the complete flow, then save the working state. If a problem appears later, follow the same order to quickly locate the stage where it occurs.

  1. The subscription updates successfully. The subscription group contains the complete address, and a manual update populates the server list. If the update fails, the problem lies with the configuration source or the update network path.
  2. The active server is clear. The main screen or status area shows the label of the selected server, and switching servers reloads the configuration. Without an active item, the Connect button cannot establish a valid outbound connection.
  3. The traffic handoff is clear. On desktop, you know whether the system proxy is enabled; on Android, you know whether the connection service is running. Only after confirming the handoff method can you explain why one app has traffic while another does not.
  4. The logs match your actions. When a page opens, the log contains a request or error from around the same time. Recording the time, active server, and error type is more useful for later diagnosis than repeatedly reinstalling the client.

Where to go next

This page covers only the basic steps needed for first use. If subscription updates fail, servers keep timing out, the system proxy does not work, DNS behaves abnormally, or the client exits, open the troubleshooting guide and follow the symptom-based steps. To switch platform packages, return to the Download Center and choose the appropriate client.

Troubleshooting

Diagnose connection problems by symptom

Covers no internet access, server timeouts, subscription failures, slow speeds, DNS, system proxy issues, and common mobile-client problems.

Open troubleshooting →

Client installation

Choose a client by platform

View the client and installation entry for Windows, macOS, Android, or Linux.

Open Download Center →