Basic Setup · 4 Steps

v2rayN Setup Guide

Import a subscription, choose a proxy mode, connect, and verify it works. With the client installed and a valid subscription, the initial setup takes about 10 minutes.

Before you begin, make sure the client is installed and opens to its main screen. If you haven’t installed it yet, go to the client download page and choose your platform. You’ll need a valid subscription URL or a server share link. The client doesn’t include server configurations, so installing it alone isn’t enough to connect. Subscription URLs often contain access credentials; don’t share the full URL in public or include it in screenshots.

For your first setup, follow a simple sequence: import a configuration, select a server, enable one way to route traffic through the client, then open a webpage to test it. Don’t change TUN, DNS, and custom routing settings all at once. Menu labels can vary between versions, so look for features such as “Subscription Group,” “System Proxy,” and “Routing.” If an option is missing, check which client and interface you’re using instead of choosing a similar-sounding setting with a different purpose.

01 Import a Subscription

Open v2rayN and select “Subscription Group” → “Subscription Group Settings” from the top menu. Add a group, enter a recognizable source name as the label, and paste the full subscription URL into the address field. The label is for your reference; the URL itself determines whether the subscription can be updated. Check that no spaces, line breaks, or punctuation from a chat app were added to the beginning or end, then save and return to the main window.

Saving a group doesn’t fetch its servers. Go back to the “Subscription Group” menu and select the update option for that group. If you don’t yet have a working connection, start with an update that doesn’t use a proxy. If the subscription provider specifically requires an existing proxy, choose the update-through-proxy option instead. This setting only affects the request to fetch the subscription; it doesn’t replace the system proxy setting or change how your browser accesses websites.

Confirm the Configurations Appear in the List

After the update, server entries should appear in the main window. If the list is still empty, switch to the group you just created and clear any active search filters so you don’t mistake hidden results for a failed import. Then check the log at the bottom and determine whether the subscription failed to download or the downloaded content couldn’t be parsed. For a download failure, first check whether the URL has expired and whether your network can reach it. If parsing failed, make sure the response is a client-readable configuration rather than a login page or web error.

If you only have a single share link starting with vmess:// or vless://, don’t paste it into the subscription URL field. Copy the full link, then in v2rayN open the “Server” menu and select “Import share link from clipboard.” A share link imports one configuration; a subscription URL repeatedly fetches a group of configurations. Use the right import method for each. For more on the difference, see the glossary entry on subscriptions and server nodes.

Where to Find This in v2rayNG

In v2rayNG, open the side menu and go to “Subscription Group Settings.” Use the add option to enter a label and subscription URL, then save. Return to the main screen and select “Update subscription” from the menu. If the interface lets you update all subscriptions or just the current group, choose the scope you just added. Once the server entries appear, stop here rather than repeatedly tapping connect. For a single share link, use “Import from clipboard” in the add menu at the top right instead of creating a subscription group.

This step is complete when the target group exists, its configurations appear in the list, and you can select an entry. A populated list doesn’t prove the remote server is reachable, but it does confirm that the import worked. If the update fails, see installation, setup, and troubleshooting FAQs. Save group filtering and multi-subscription management for the advanced guide. Next, configure how traffic reaches the client.

02 Choose a Proxy Mode

At the bottom of the v2rayN main window, find “System Proxy” and select “Automatically Configure System Proxy.” This points the operating system’s proxy settings to the client’s local listening port. Browsers and apps that follow the system proxy will then send their requests to the client. This setting doesn’t select a remote server, and not every program follows it. Some apps use their own network settings, so use a regular browser for the first test rather than judging the entire setup by a specialized app.

For the initial setup, leave “Enable Tun” turned off. The system proxy is enough to test the basic browser connection, and using one traffic-routing method keeps permissions, virtual network adapters, and DNS settings from adding extra variables. TUN can route traffic from more apps that don’t follow the system proxy, but it isn’t required after importing a subscription. Once basic access is working, see the TUN mode section in the advanced guide if you need it. Don’t enable multiple methods just to turn on every switch.

Choose System Proxy and Routing Separately

Next, check “Routing” at the bottom of the window. Start with a common preset such as “Bypass LAN and mainland China.” Some versions use a similar name that includes “whitelist”; follow the description of the actual rules. This preset generally sends LAN traffic and destinations matched by direct-connection rules straight through, while routing other traffic through the proxy. Keeping local addresses out of the proxy is useful for devices such as network printers and router admin pages.

Keep these two settings distinct: “Automatically Configure System Proxy” determines whether app requests enter the client, while “Routing” determines whether requests that enter go direct or through the proxy. If you only change routing without routing browser traffic through the client, webpages may never reach it. Conversely, system proxy can be enabled while a rule sends a particular website direct; that alone doesn’t mean the proxy connection has failed. Note the selected preset before testing so you have a clear point of comparison if something goes wrong.

If you temporarily select “Global” routing to troubleshoot, it usually means traffic entering the client will prefer the proxy. It doesn’t mean all system apps have been routed through it. Restore your usual preset when testing is done. Before confirming the basic connection, avoid editing routing JSON, changing DNS resolution policies, or importing multiple rule sets. These changes can make it harder to tell whether the server is unavailable or a rule isn’t matching as expected.

Start with the Default Traffic Scope in v2rayNG

v2rayNG routes traffic through the system VPN interface, so there’s no need to look for the desktop “Automatically Configure System Proxy” setting. Open the routing options under “Settings” and choose “Bypass LAN and mainland China addresses,” or the equivalent mode in your version. For the initial test, turn off “Per-app proxy” so your test browser stays within the default traffic scope. Otherwise, the browser might be excluded, making it seem as though the connect button did nothing.

Leave advanced settings such as DNS unchanged for now. If you later want to proxy only certain apps, adjust the per-app list separately and check whether it means “proxy these apps” or “bypass these apps.” At this point, the desktop traffic entry and routing preset, or the Android traffic scope, should be clear. Next, activate a server and check the core status.

03 Connect to a Server

Return to the v2rayN server list, select the entry you want to use, right-click it, and choose “Set as active server.” Some versions also offer a shortcut, but the context menu makes it easier to confirm what you’re doing the first time. Selecting a row and setting it as the active server are different actions: selection changes the interface focus, while the active server is used by the running configuration. Check the active indicator rather than relying on the row’s background color.

After you set a server as active, the client usually regenerates the configuration and loads it into the core. v2rayN may not have a single “Connect” button like the Android app. In this guide, the desktop connection is ready when a server is active, the core is running successfully, and the system proxy has been enabled as described above. After switching servers, wait for the startup sequence to finish in the log before testing a webpage. Refreshing repeatedly while the core reloads can lead to misleading results.

Check Local Startup Before Testing the Remote Connection

Open the log area in the main window and check the latest startup for configuration parsing errors, port conflicts, or core startup failures. If the local port is already in use, close other proxy apps that might be listening on the same port, then reload the configuration in the client. Don’t start by changing the server address, transport, or encryption settings: if the local listener isn’t running, changing remote parameters won’t fix the current problem.

Even if the core starts successfully, you still need to check the remote connection in the next step. Successful startup only means the configuration was accepted and the local service is running; it doesn’t guarantee the server is online. A server in the subscription may be temporarily unreachable or require specific network conditions. Keep the proxy and routing settings unchanged, then compare with another known-working server. This makes it easier to isolate the issue than changing several advanced settings at once.

Connect in v2rayNG and Approve the System Prompt

On the v2rayNG main screen, select the server you want and check that the active indicator is on its entry. Then tap the connect button in the lower-right corner. The first time you connect, Android will usually ask for permission to establish a VPN connection. Confirm that v2rayNG is the app making the request, then approve it. Without this permission, the client can’t create the system traffic-routing channel, even if servers appear in the list. After connecting, check the button and system VPN status to confirm that the local connection is established.

If another app is using the system VPN connection, disconnect it before retrying in v2rayNG. Multiple apps can’t simply stack as separate entry points to the same system VPN. After connecting, keep the client in the foreground while you test a webpage in the next step. Check battery management and background permissions only if you see issues such as the connection dropping when the screen locks or recovering when you return to the app. There’s no need to change every battery setting before your first connection.

Don’t treat “running” as the final result. It only confirms that the client has started; the real test is whether an app’s request reaches its destination through the selected routing rules. Keep the current server, routing preset, and traffic method unchanged, then move on to the checks below so the results are comparable.

04 Verify the Connection

First, open a browser that follows the system proxy settings and visit a familiar webpage that normally works on your network. This confirms that the basic connection hasn’t been blocked by a configuration error. Then visit the page you actually want to test and refresh once. If it was already open, the browser may be reusing cached content or an existing connection; close the tab and reopen it if needed. On Android, use a regular browser too and make sure per-app rules haven’t excluded it.

A webpage loading is useful evidence, but it doesn’t prove that the request went through the proxy. Some pages can connect directly, and common routing presets send certain destinations direct. Check the webpage alongside a client test: in v2rayN, select the active server, right-click it, and choose “Test server real connection latency.” The menu wording may vary slightly by version. This checks a request sent through the proxy and reflects real-world use better than checking whether a TCP port accepts a connection.

Compare the Test Result with What You See in the Browser

A successful real connection test means the client could complete that test request through the selected configuration at that time, but it doesn’t guarantee access to every website. Routing, DNS, and remote responses can differ between destinations. A failed test doesn’t necessarily mean the subscription is invalid; the test destination may itself be unavailable. Try another server, then cross-check with the webpage you need to access. Don’t keep changing every setting based on a single latency result.

If the real connection test succeeds but the browser still fails, revisit step two first: make sure “System Proxy” is set to “Automatically Configure System Proxy,” the browser isn’t using a separate proxy extension or custom proxy, and routing hasn’t been switched to direct for all traffic. In v2rayNG, confirm that the connect button shows a connected state and that the test browser is within the traffic scope. This usually means the request isn’t reaching the tested connection; reinstalling the client shouldn’t be your first step.

If you need to check whether your public IP has changed, use the same network and browser to compare the results on a trusted public IP lookup page before and after connecting. The result should reflect the proxy’s egress only if that page’s request is routed through the proxy. If a direct-connection rule applies, seeing your local egress can be normal. Don’t share screenshots showing your full network information, and never provide a subscription URL or server credentials to run this test.

Confirm the Setup and Know How to Disconnect

Your initial setup is complete when the subscription updates, the active server is clear, the client has no local startup errors, the target page works as expected, and the proxy test results are consistent. Keep the current routing preset, then add only the features you actually need, one at a time. If just one website or app has issues, note exactly what’s affected and check the FAQs. For ongoing changes to custom routing, DNS, or TUN, see the advanced guide.

When you’re done on desktop, select “Clear system proxy” under “System Proxy,” then exit using the client’s exit option. If your version automatically clears the proxy on exit, still check that the system no longer points to the local proxy of a closed client. Closing the window may only minimize the client to the system tray. On Android, return to v2rayNG and tap the connect button to disconnect, then confirm that the system VPN status has ended.

Make a note of the setup that worked: the subscription group, active server, routing preset, and whether you used the system proxy or another traffic method. If you run into problems later, change one setting at a time and repeat the connect-and-verify steps. This preserves a working setup and helps you identify whether the issue comes from the server, the app’s traffic entry, or the routing rules, instead of guessing between several switches.