First-Time Setup · 4 Steps
v2rayN Setup Guide
Import a Subscription and Test Your Connection
Follow the steps in order: import, choose a mode, connect, and verify access. First, confirm that a browser can load pages; then consider TUN, per-app routing, or DNS changes.
Before you begin, install the client for your operating system from the client downloads page and get a working subscription URL. The client reads configuration and routes connections; installing it does not provide servers. Get the subscription URL from a trusted configuration provider. Don't use a regular webpage URL, admin portal, or payment page as a subscription URL. It may contain access credentials, so avoid showing it in screen recordings or posting it publicly.
This guide takes about 10 minutes for a first-time setup, though download time and network conditions can affect that. Quit other proxy or VPN tools that are routing traffic, and test with just one configuration. Button locations may vary between versions; look for the menu names shown here. If a menu item isn't available, check which client you're using rather than changing core settings to match the guide.
Step 1: Import a Subscription and Build the Server List
Import the server list before trying to connect. Saving a subscription only stores its URL in the client; servers appear in the main window only after you update the subscription and load its configuration. If the list is still empty, don't click Connect or change routing modes yet—finish this step first.
v2rayN: Add a Subscription Group and Update It
Open the v2rayN main window, click Subscription Group at the top, then choose Subscription Group Settings. Create a group and enter a recognizable name in the remarks field. Paste the full subscription URL into the address field. Check that it has no extra spaces or line breaks at either end, especially if you copied it from a chat app that may have included other text. For a first setup, leave the other options at their defaults, then save and close the settings window.
Open the Subscription Group menu again and select Update subscription (without proxy). This works when you haven't established a proxy connection yet and the subscription URL is directly accessible from your local network. Wait for the update to finish, then check the server list in the main window. If the list is filtered by group, switch to the group you just created so the new configuration isn't hidden by the filter.
If the update times out, don't keep creating duplicate groups. First check that the URL is still valid, then ask your configuration provider whether updates need to go through an existing proxy. Updating through a proxy is only possible if you already have a working connection; changing the update method can't create one when the list is empty. For help with expired URLs, unrecognized formats, or update methods, see Troubleshooting.
v2rayNG: Save the URL, Then Update from the Main Screen
Open v2rayNG, expand the side menu, and go to Subscription Group Settings. Tap the add option, enter a remark and subscription URL, then save. Return to the main screen and select Update subscription from the menu in the top-right corner. When the update finishes, check that the server list contains entries for the group. If you only add a subscription group without updating it, an empty main screen means the import isn't finished—not that the connection has failed.
If you received a single share link beginning with vmess://, vless://, or trojan://, it's usually a single-server configuration, not a subscription URL that needs periodic updates. Copy the entire link and use the client's clipboard import option. Don't paste a single share link into the subscription URL field or submit a subscription URL to an unknown online converter.
You're done with this step when the main window shows selectable servers and their group matches the subscription you just added. There's no need to change individual server settings. Keep the imported configuration as is; next, choose which app traffic should go through the client.
Step 2: Choose a Proxy Mode and Keep the Default Routing
These are two separate settings: a system proxy or VPN determines how traffic reaches the client, while routing rules determine whether requests that reach it go direct or through a proxy. Importing a server doesn't mean your browser is using it, and enabling a system proxy doesn't mean every app will follow it. For your first test, use a method with a clear scope that's easy to undo.
v2rayN: Select “Set system proxy automatically”
In the v2rayN main window, find System Proxy at the bottom and select Set system proxy automatically. Apps that follow the system proxy settings will send requests to the client's local listening port. A browser is usually a good choice for the first test, but a separate proxy extension may override system settings. Pause any such extensions before testing so the same request isn't routed by conflicting configurations.
For routing, select Bypass mainland China and keep the preset rules. Don't change their order yet. These rules route traffic directly or through the proxy based on its destination, so opening a site that's normally reachable directly doesn't prove that the proxy exit is working. Global usually means routing traffic that enters the client through the proxy; it doesn't necessarily force all system apps through it. Don't confuse a global routing rule with system-wide traffic capture.
For your first test, leave Enable TUN mode turned off. TUN captures a broader range of traffic and involves permissions, a virtual network interface, and DNS routing; it's not needed for a basic browser check. If the system says proxy settings can't be changed, resolve that issue rather than trying to hide it with another mode. Once this guide works, see the Troubleshooting Guide for terminals, games, and apps that don't follow system proxy settings.
v2rayNG: Use VPN Mode and Keep the App Scope Unchanged
On Android, v2rayNG typically routes device traffic through VPN mode, so you won't need the desktop Set system proxy automatically option. If the settings offer a choice of modes, use VPN mode for your first setup. Consider proxy-only mode only if you know how other apps connect to the local port. Keep the default routing and app scope; don't enable complex per-app rules at the same time.
If you've configured per-app proxying before, check whether your browser is excluded. An excluded app won't use the proxy just because the connection icon changes color. Also make sure other VPN apps are disconnected so the system doesn't switch the connection to another app. Leave DNS, custom rules, and transport settings alone for now. Changing one variable at a time makes it easier to pinpoint a problem.
Step 3: Select a Server and Connect
The server list is ready and the traffic path is set. Now choose one server to test. Don't treat a highlighted row, a latency test result, and the active server status as the same thing. A highlighted row may only indicate which one you're viewing; check the client's active server marker and running status to confirm which server is routing traffic.
v2rayN: Set the Active Server and Check the Core
Select the server you want in the main window, right-click and choose Set as active server, or use the equivalent option in your version. Make sure the active marker moves to that server, then check that System Proxy still shows Set system proxy automatically. On desktop, v2rayN usually routes traffic through the core once the active configuration is ready. There may not be a single large Connect button—don't reimport your subscription just because you don't see one.
If you've changed a configuration but its status hasn't refreshed, select Restart service at the top to reload it, then check the logs for recurring errors. A normal startup log only confirms that the local service is running; it doesn't prove a remote connection is working. If you see address already in use or a port conflict, close duplicate client instances first and check the local mixed-port listener under Settings. The common default is 10808, but use the value shown in your settings.
Don't terminate unknown system processes to resolve a port conflict, and don't change the client port without checking the system proxy too. Apps with manually configured proxies need the new port; if you're using automatic system proxy configuration, apply that option again. If the core won't start, the program exits, or the configuration fails to parse, stop here and follow the Troubleshooting Guide. There's no need to test webpages yet.
v2rayNG: Tap Connect and Grant VPN Permission
Select the server you want from the list and confirm that it's marked as selected, then tap the Connect button in the lower-right corner of the main screen. On the first connection, Android displays a VPN connection request. Read the prompt, confirm it's from v2rayNG, and allow it. If you deny permission, the client can't route traffic through the VPN as expected; reimporting the subscription won't replace this step.
After granting permission, check that the client keeps running and look for the VPN icon in the system status bar. Some devices hide this icon in the status area, so check the client status as well. If the Connect button quickly returns to its original state or an error appears, open the logs to see what happened. Repeatedly tapping the button won't fix the issue. Certificate errors, connection timeouts, and unsupported configurations point to different problems; troubleshoot the specific error shown.
Keep the client open in the foreground or running normally in the background, then switch to your browser to test. If it disconnects as soon as you switch apps, check battery restrictions and background permissions first; there's no need to grant every permission right away. This step is complete when the local service or VPN stays running. Confirm that remote access works by making a request in the next step.
Step 4: Test Access and Learn How to Disconnect
Check the connection in stages: first, confirm that requests reach the client; next, check that a remote connection is established; finally, make sure the destination page loads completely. A “connected” status, VPN icon, or latency value alone doesn't prove the entire route is working. For a first setup, a few repeatable access tests are enough; you don't need to run a speed test at the same time.
Test in a New Browser Tab and Check the Logs
Open a new browser tab and visit a familiar HTTPS site that should use the proxy under your current routing rules. Wait for the main content and essential resources to load, then try one of the site's internal links. Don't rely on an old tab: cached content can make a page look accessible. And don't assume a site-wide outage is caused by the client.
Then return to the client logs and look for requests or connection errors from the time of your test. Some versions need a higher log level to show connection details, so the absence of a request line alone doesn't prove that traffic wasn't captured. If the logs show a local connection refused error, check the listening port. If requests reach the client but keep timing out remotely, try another server from the same subscription for comparison. Change only the server; leave the mode and routing unchanged for now.
If a desktop browser works but a command-line tool doesn't, don't switch to TUN right away. Terminal programs may not use the system proxy, so different results aren't necessarily a contradiction. On Android, if only one app fails, first check the per-app proxy scope and that app's own network settings. See Troubleshooting for browser, terminal, and app-specific cases. For this first setup, use browser access as your test.
Compare Common Results Before Choosing What to Try Next
If the connection stays up and pages load as expected, save the current configuration and stop changing settings. If regular pages load but a few domains fail, compare different sites and servers, then check DNS or routing if needed. Don't reset everything straight away. If no pages load, confirm that your regular network works, then check whether requests reach the client. This narrows the problem down to the network, traffic capture, or remote connection.
Latency tests can help you choose a server, but different tests measure different things. A successful connectivity test doesn't guarantee that every webpage resource will load. A slow page doesn't necessarily mean the server is at fault; the destination site, connection reuse, or local network could also be involved. First confirm that you can browse reliably, then compare speeds if needed. For persistent timeouts, DNS failures, and certificate errors, see the full guide in the Troubleshooting Guide. You don't need to work through every case during your first setup.
When You're Done, Restore Your Network Settings
When you're finished with v2rayN on desktop, select Clear system proxy from the System Proxy menu before exiting. Don't mistake Do not change system proxy for turning the proxy off: it means the client won't modify the current system settings, which may leave an existing proxy address in place. If your browser says it can't connect to a proxy server after the client has closed, reopen the client, clear the system proxy, then test direct access.
In v2rayNG on Android, return to the main screen and tap the connection button to stop the service. Confirm that the VPN is disconnected, then close the app if needed. Don't assume the connection stops just because you swipe the app away from recent tasks. Next time, you usually only need to update the subscription if necessary, confirm the active server, and connect again. There's no need to add the same group twice. Edit the existing group if the subscription URL changes, rather than accumulating duplicate configurations that are hard to tell apart.