QUICKSTART / FIRST CONNECTION

V2Ray Setup Guide

Import a subscription → Choose a proxy mode → Connect → Verify the result. For the first setup, get one request working before adjusting routing or traffic interception.

This guide is for first-time users who have installed a client and already have a working subscription URL. It walks through the graphical interface and takes about 10 minutes; actual time depends on subscription updates and network response times. The client reads configuration and forwards connections, but installing it does not provide a server to connect to. If you have not installed a client yet, visit Client Downloads to choose an installer for your system, then return here.

01 Import a Subscription

First, check whether you have a subscription URL or a share link for a single server. A subscription is usually a full web address that retrieves a list of servers. A single-server link often starts with vmess://, vless://, or trojan://. Each uses a different import option; pasting a single-server link into the subscription URL field will usually cause an update to fail. Copy only the URL—without surrounding instructions, spaces, or line breaks. Subscription URLs may contain access credentials, so keep them somewhere secure and never post them in public comments or screenshots.

v2rayN: Add a Group, Then Update It

Open the main window's “Subscription Group” menu and select “Subscription Group Settings,” then add a group. Choose a short, recognizable name, such as “Everyday,” and paste the full subscription URL into the address field. Leave the other options at their defaults for now. Save the group, return to the main window, and run an update from the subscription menu. If there are options to update all groups or only the current group, select the one you just created. Before the first connection, use an update option that does not require a proxy. If your current network cannot reach the subscription URL, check your provider's instructions to see whether you need another network connection.

After the update, the server list should show entries with server names, addresses, or protocol details. Seeing the group name does not mean the servers were retrieved. If the list is empty, check the update result or status-bar logs to determine whether the request failed, the response could not be parsed, or a filter is hiding the entries. Avoid creating duplicate groups, which can make old and new entries hard to tell apart. For a single-server share link, use an option such as “Import from Clipboard” in the main window. That adds a server directly rather than creating a subscription group, so it will not refresh automatically with the subscription.

v2rayNG: Save the Subscription, Then Update from the Main Screen

Open the side menu, go to “Subscription Settings,” tap Add, enter a remark and the subscription URL, then save. Return to the main screen, open the menu in the upper-right corner, and tap “Update Subscription” or the equivalent option. Once servers appear, check whether the list shows all configurations or only the selected subscription group. If the menu offers an option to update through a proxy, you do not need it when there is no working connection yet. Requiring a proxy for an update before the service is running can create a loop: you need a server to update, but need an update to get a server.

You are ready to move on when the list contains a server you can select—not merely when a “Saved” message appears. If a server appears but a later update fails, do not delete the existing configuration right away. Note the error and check whether the subscription has expired or its URL has changed. For details on subscription formats and update routes, see the FAQ. After importing, decide how traffic should reach the client.

Where to find it v2rayN: Subscription Group → Subscription Group Settings → Update Subscription v2rayNG: Side Menu → Subscription Settings → Return to Main Screen and Update

02 Choose a Proxy Mode

Keep two separate questions in mind: how app requests reach the client and which outbound route handles them. System proxy, VPN interception, and TUN address the first; routing rules handle the second. A “bypass mainland China” preset does not mean the system proxy is enabled. Likewise, enabling the system proxy does not force every app to use the same route. Configure these layers separately so you can identify which one is not working.

v2rayN: Start with the System Proxy; Leave TUN Off

For the first test, use the system proxy and select the built-in “Bypass mainland China” routing preset, or a similar option. This preset typically sends destinations matching direct rules straight to their destination and handles other requests with the default outbound. The actual behavior depends on your configuration and rule order. Leave TUN off for now to avoid introducing variables such as a virtual network adapter, permissions, and DNS interception. When you connect in the next step, set the system proxy to “Automatically Configure System Proxy.”

The system proxy mainly affects apps that honor system proxy settings, so a browser is usually a good first test. Some apps use their own network settings and may ignore the system proxy. If a browser works but a standalone app does not, that alone does not mean the server is down. If your browser has a proxy-management extension, check that it is not overriding the system settings. Avoid having multiple proxy tools repeatedly overwrite the configuration. If you need to intercept more traffic, first verify the basic connection, then read the sections on system proxy and TUN in the Troubleshooting Guide.

v2rayNG: Check VPN Interception and App Scope

v2rayNG typically uses Android's VPN interface to capture app traffic. You will confirm permission to create that interface in the system prompt during the next step. For now, open Settings, check the routing mode, and choose “Bypass LAN and mainland China addresses” or a similar built-in option. If per-app proxying is enabled, make sure your browser is included in the apps to intercept. An exclusion list works opposite to a list of apps to proxy; if you are unsure, read the description beside the setting before changing it.

For the first connection, avoid changing DNS, enabling custom rules, and adjusting multiple advanced settings at once. Keeping the defaults makes troubleshooting easier. Once a real request succeeds, change one setting at a time and test again. Also note that switching to global proxy only changes routing after traffic enters the client; it will not fix an expired subscription, an unreachable server, or mismatched authentication settings. When these settings are ready, return to the server list and choose a server to use.

03 Connect

Choose a server from the list you just imported, preferably one with a clear purpose and complete configuration. If your provider recommends a region or provides connection instructions, follow those rather than guessing from the server name. The client's latency test can offer a useful clue, but tests may only check port reachability or a specific URL. A test result does not predict how every app will perform, and a timeout needs to be judged in light of the test method. For the first setup, stick with one server until the full connection works; avoid changing servers and routing at the same time.

v2rayN: Set an Active Server and Enable the System Proxy

Select a server in the list, then use the context menu's “Set as Active Server” option or its equivalent. Confirm that the active indicator changes; a highlighted row alone may not mean the current server has changed. Next, find “System Proxy” in the status area or tray menu and select “Automatically Configure System Proxy.” The client may reload its core configuration when the active server changes. Check the status-bar logs for repeated startup failures or configuration parsing errors.

If the logs report that a local port is already in use, close any duplicate client instances and other programs using the same port, then restart. If you change the listening port, make sure the system proxy points to the new port as well; changing only the client's internal setting is not enough. A core startup message only means the local service has started—it does not confirm that the remote server is reachable. Continue to the next step and send a real request from your browser.

v2rayNG: Select a Server and Approve VPN Access

Tap the server you want to use and confirm its active indicator, then tap Start on the main screen. On first launch, Android typically shows a dialog asking permission to establish a VPN connection. Check that v2rayNG is the app making the request, then approve it. Return to the client and check that the service remains active and that a VPN icon appears in the system status area. If you deny permission, the configuration remains, but app traffic will not enter the client; restart the service and approve the request.

If another app is already using the device's VPN connection, you will usually need to stop it before starting this client. Once connected, keep the app in the foreground while you run the next test. If it works in the foreground but disconnects after running in the background, check battery management and background restrictions before rebuilding the subscription. A running status or system icon suggests that traffic interception has started, but only a real request and its corresponding logs can confirm that it works.

04 Verify the Connection

The test should answer whether this request from the target app took the expected route—not just whether the client says it is running. Open a new browser page and visit a familiar site that you can reliably reach on your current network to confirm basic connectivity. Then visit a destination that should use the proxy under your current routing rules, reload the page, and check the client logs. An existing tab is not a reliable test: cached content, existing connections, and automatic retries can all hide changes to your settings.

Compare the Page Result with the Logs

Check the v2rayN status-bar logs or the v2rayNG log screen for connection events around the time of your test. Depending on the log level, you may see the destination, a connection error, or which outbound route was used. If the default log level does not record individual requests, a lack of new entries does not by itself prove that traffic bypassed the client. First check that logging is enabled and that you are viewing the right log. If the page loads and the logs show a direct outbound matching the routing rule, that may be exactly what the bypass rule is supposed to do—not a sign that the proxy mode failed.

For an additional check, compare results on a trusted IP lookup site. First confirm that your current routing rules send that site through the proxy, then compare the result before and after connecting. An unchanged exit IP does not necessarily indicate a failure; the lookup site may match a direct rule. A changed IP only confirms a different exit for that request, not that every app is being intercepted. Do not judge the entire setup by one website, one latency result, or a system icon alone.

Stop and Reconnect for a Comparison

On desktop, select “Clear System Proxy.” On Android, tap Stop. Open a new page and repeat the same request. Then restore your previous settings and test again, checking whether the page result and logs change consistently. If the destination works in both states, there is no need to force a failure; routing logs and exit IP information can help confirm the result. Keep the connection running afterward if you need it. Before closing the desktop client, make sure the system proxy is in the state you want, so apps do not keep sending requests to a stopped local port.

If no websites load after connecting, first check that the local service is running, the system proxy points to the correct port, and the Android VPN connection is still active. If the local proxy is working but the logs show repeated connection timeouts, check that the server is valid and reachable from your current network, then try another known-good server. If only domain names fail and the connection logs show resolution errors, troubleshoot DNS separately. Do not blame every failure on DNS or reinstall repeatedly instead of checking the first clear error.

The first setup is complete when the subscription list is populated, a server is active, traffic interception is configured correctly, and a real request follows the expected route. You can then add per-app proxying or more specific routing rules one at a time. For common settings, see the FAQ. If you continue to have issues such as no internet access, server timeouts, subscription failures, or background disconnections, use the V2Ray Troubleshooting Guide to investigate each symptom rather than changing multiple settings at once.