Quick start · Desktop workflow

v2rayN Setup Guide

Import a subscription → Choose a proxy mode → Connect → Test. Get one connection working first, then adjust routing and TUN settings.

Step 1: Import a subscription

Make sure v2rayN is installed and you have a valid subscription URL. If you don't have the client yet, go to the Windows download page, choose the version for your system, install it, and open the main window. The client reads configurations and handles connections; it does not generate working servers automatically. Get a subscription URL from your service provider or the administrator of your self-hosted service. If you only have the client and no server configuration, an empty list is normal.

In the main window, open Subscription Group Settings at the top. It's usually under the Subscription Group menu. Click Add, enter a name you can recognize, such as Daily connection, and paste the full subscription URL into the Subscription URL field. Check for extra spaces, line breaks, or punctuation added by a messaging app at either end, then save. Saving the group only stores the URL; it doesn't fetch the servers. You'll need to update the subscription in the next step.

Return to the main window, select the subscription group you just created, and choose Update current subscription (no proxy). For the initial setup, use this option to avoid a not-yet-working proxy connection interfering with the subscription fetch. Wait for the update to finish, then check for server entries under the group. Names, addresses, or protocol fields indicate that the client has read the configurations. You'll still need to test the connections in the steps below; a successful import alone doesn't mean they work.

If the list hasn't changed, first make sure the new group is selected and clear any list search filters. Then open Subscription Group Settings and check that the URL is complete and the group is enabled. Check the logs to tell whether the subscription couldn't be fetched or its contents couldn't be parsed. For a fetch failure, check your network, the URL's expiration, and the service status. For a parsing failure, make sure you copied the client subscription URL, not an account management webpage. Don't keep creating duplicate groups; that will make it harder to select the right one later.

If your provider gave you a single configuration link instead of a subscription URL, copy the entire link and import it using Import batch URLs from clipboard under the Server menu. Then check the server list to confirm the result. Subscriptions and single links are updated differently: you can refresh entries from a subscription group, while a single link usually needs to be replaced manually. You don't need to learn about link encoding yet. Look up unfamiliar terms in the quick reference as needed.

Once configuration entries appear in the list, keep the main window open. Next, set how traffic reaches the client. You don't need to change protocols, transport settings, or core parameters yet.

Step 2: Choose a proxy mode

First, understand two separate settings. System Proxy lets apps that use the system proxy send requests to v2rayN. Routing determines whether the client sends those requests through the proxy, directly, or blocks them. Enabling the system proxy doesn't mean every app will use it, and choosing global routing doesn't take over every program. Keeping these two settings separate helps you avoid changing several switches just to get one app online.

For your first setup, leave Enable TUN Mode off. Open System Proxy from the bottom of the main window or the tray menu, then select Set system proxy automatically. This option lets the client write the system proxy settings; it is not the same as a proxy auto-configuration script URL in your browser. Check that the client status area shows the selected state, and keep v2rayN running. If you set the system proxy but close the client, apps using that setting won't be able to reach the local proxy.

Next, check the Routing option. To send requests for mainland China domains or IP addresses directly while handling other requests by rule, choose a preset named something like Bypass mainland China. The actual coverage depends on the rules included in that preset. To check that the proxy connection works, you can temporarily choose Global, then switch back to a rule that suits everyday use. Changing routing won't fix an invalid server configuration or route apps through the client if their requests never reach it.

If your browser has a proxy-switching extension installed or you previously entered a proxy address manually, set it to follow the system settings first. This prevents the extension from overriding your selection. You can also temporarily disable the extension for testing. Don't let multiple clients keep changing the system proxy; use just one working proxy client for this test, and note any special settings required by your workplace network.

Some programs don't use the system proxy. You may need to configure a proxy within the app or consider TUN mode later. For now, test with a browser; there's no need to enable TUN right away. To understand the differences between the system proxy, global routing, and TUN, see the proxy modes section of the manual. For custom domain rules, see the routing section.

At this point, the system proxy points to the client and a routing option is selected. Now choose an active server to handle requests that need to use the proxy.

Step 3: Choose a server and connect

Return to the server list and select the configuration you want to use. Right-click it and choose Set as active server. Some versions also offer a shortcut in the list; follow the option shown in your menu. Make sure the active indicator moves to the selected entry, rather than relying on the regular selection highlight. Selecting a row and setting it as the active server are not the same thing: only the active configuration is used for proxy connections.

v2rayN usually loads the relevant core after you apply an active configuration; there may not be a prominent Connect button. Keep the main window or tray process running and wait for the configuration to load. Check the logs for configuration parsing failures, ports already in use, certificate errors, or a core process that has exited. If the logs don't update immediately, that doesn't necessarily mean something is wrong; some entries appear only after a browser sends a request.

If a local listening port is already in use, close other proxy clients that might be using the same port, then try again. Don't end unfamiliar system processes or copy port numbers from someone else's setup. If you need to change a port, open Settings, then Parameter Settings, and find the local listener options. After changing them, apply the configuration again and have the system proxy write the updated port. Update any apps with manually configured proxy settings too, or they'll keep using the old port.

If the logs show a connection timeout, first confirm that your regular direct connection can reach common websites. Then try another configuration from the same subscription. Change only one thing at a time, leaving routing and system proxy settings alone, so you can tell whether the problem follows a particular server. If every entry fails, check the subscription service status and configuration expiration. If only some entries fail, ask the configuration provider whether those servers are available.

Latency tests in the server list are only a guide. A successful test doesn't guarantee that authentication, transport, and actual web browsing will work; a timeout doesn't necessarily mean all app requests will fail. Don't keep changing the core type, transport protocol, and security settings just to get a test result. Keep the subscription's original configuration and test the connection with a real website in the next step.

After switching active servers, your browser may briefly reuse existing connections. Wait for the configuration to load, then test in a new tab; if needed, close and reopen the browser. Don't rapidly switch between servers while a page is still loading, or it will be hard to tell which configuration handled the request.

Step 4: Test whether the proxy is working

Open a browser and visit one site that should use the proxy under your current routing rules, then visit one that should connect directly. Confirm that each page loads and its links open, rather than relying on content already cached in an existing tab. With a split-routing preset such as Bypass mainland China, the two sites may use different exit IPs. That's expected; not every site should follow the same network path.

Check the v2rayN logs or connection records at the same time to see whether requests appear during your test and whether their outbound route matches your expectations. The details shown vary by core, log level, and version. A missing domain name doesn't mean the proxy wasn't used, and a connection record doesn't mean every resource on the page followed the same route. Consider the page load, client records, and current routing rules together.

For a closer check, use a trusted public IP lookup service to compare results. Note the result with the proxy off, then enable the system proxy and reopen the page with the lookup request explicitly routed through the proxy. If your rules send that site directly, an unchanged IP doesn't prove the proxy is failing. Don't run other VPN or proxy tools during the test, as they can affect the exit IP.

If the browser works but a particular app doesn't, check whether the app supports the system proxy, has its own proxy settings, or needs to be restarted to pick up the change. If it doesn't use the system proxy, consider TUN mode rather than immediately replacing the subscription. For virtual adapters, permissions, and traffic routing, see the TUN mode section. You don't need to enable TUN for this basic test.

If no websites load after you enable the proxy, check these in order: Is the right server active? Is the core still running? Does the system proxy point to the current listening port? Are there errors in the logs? Retest after each check; don't clear all your settings at once. If regular browsing works again after you clear the system proxy, investigate the connection between the local proxy and the remote server rather than assuming your computer has lost all network access.

Your basic connection is now set up. Keep the working group, active server, and routing choice, and adjust other settings only as needed. If your computer shuts down unexpectedly and the browser can't connect after restarting, open v2rayN and clear the system proxy, or check for leftover manual proxy settings in Windows network settings. On managed devices, follow your organization's network requirements and don't overwrite existing settings.

v2rayNG on Android

With v2rayNG on Android, follow the same basic sequence—import, choose a mode, connect, and test—but note that the menus and traffic routing work differently. First, install the client for your device from the Android download page and open it. If you have a subscription URL, open Subscription Group Settings from the side menu, tap the plus button to add a group, enter a name and URL, then save. Return to the main screen and choose Update subscription. Once the server entries appear, select one to use.

If you have a single share link, copy it in full, tap the plus button on the main screen, and choose Import from clipboard. Don't paste a single share link into the subscription URL field, which is for fetching content remotely. After importing, tap the entry and confirm that the active configuration indicator changes. Next, open Settings and check the routing options. For your first test, use the app's existing rules; don't look for desktop System Proxy menus or local listener settings.

Tap the connect button on the main screen. The first time you connect, Android will ask for permission to set up a VPN connection. Check the app name and allow it. If you deny permission, the client can't start the local VPN service needed to route traffic. Android usually allows only one VPN service to run at a time, so other VPN apps may be stopped or conflict with the connection. This system permission explains how traffic is routed; it doesn't confirm that the server configuration works.

After connecting, open a browser and visit a test site, then return to v2rayNG to check the connection status and logs. If per-app proxying is enabled, make sure the browser is included in the intended scope, and check whether the list is set to proxy only selected apps or bypass them. For the initial test, you can disable per-app restrictions. Once the basic connection works, add apps one by one to avoid missed rules affecting the results.

If the connection drops when the screen locks, check Android's background activity and battery restrictions for v2rayNG. Don't change every battery-saving setting at once. When you're finished, return to the client, tap Stop, and confirm that the system VPN is disconnected. Desktop and Android menus differ, but the troubleshooting sequence is the same: confirm the configuration was imported, check the active entry and traffic scope, then test with a real website. For subscription, core, and routing concepts, see the v2rayNG reference. For a complete maintenance workflow, see the beginner-to-advanced guide.