Getting started · Your first connection in four steps
v2rayN Setup Guide:
Import a Subscription and Verify Your Connection
This guide walks through four steps: import a subscription, choose a proxy mode, connect, and verify the result. It’s for users who have installed a client and are setting it up for the first time. Start with the defaults to establish a connection you can test, then fine-tune routing or DNS if needed. This makes troubleshooting easier than changing several options at once. Allow about 10 minutes; the actual time depends on the subscription update and network conditions.
Before you begin, have a working subscription URL ready and make sure your device is online. The client reads connection settings and handles traffic; it does not include a server account. Get your subscription URL from your service provider. If you haven’t installed a client yet, visit the client download page, choose the right system and architecture, then install and open the client before continuing.
1. Import a subscription
Copy the subscription URL from your service provider’s account page, then open “Subscription Groups” or “Subscription Group Settings” in v2rayN. Add a group, give it a recognizable name such as “Everyday,” paste the full URL into the subscription URL field, and save. The group name is for local organization only and does not change the remote server configuration. Start with one group so you can easily identify the results of the update.
Before pasting, check the beginning and end of the URL for extra text, line breaks, or spaces. A subscription URL may contain account-identifying parameters, so treat it like login information. Don’t post it publicly or share screenshots that show the full URL. If you’ve exposed the URL, check your provider’s account page for how to reset it; changing the local group name won’t help.
After saving the group, open the subscription menu and choose “Update Subscription.” If the menu offers both a regular update and an update through proxy, try the regular option first if you haven’t connected yet. Use the proxy option only if you already have a working proxy and the subscription URL needs to go through it. Wait for the update to finish, then check the server list. New entries with the group name confirm that the subscription was imported; a “Saved” message alone does not mean the server list has updated.
In v2rayNG, open the top-right menu and find subscription group settings. Add a group and enter a label and subscription URL. Save and return to the main screen, then update the subscription from the menu and check for servers in the list. If the interface has a group filter, select the group you just created or show all groups so an empty current group isn’t mistaken for an import failure. Stay online and wait for the update result before continuing.
Subscription URLs vs. single-server share links
If the copied text starts with vmess://, vless://, or trojan://, it’s usually a share link for a single server, not a subscription URL. Don’t paste it into the subscription URL field. Instead, use the client’s “Import from clipboard” option, then check the server list. A subscription URL is generally used to fetch a set of configurations, while a share link describes one specific connection; use the appropriate import option for each. See the glossary for more on these formats. There’s no need to decode or edit the link manually.
If the list is still empty after updating, check that the subscription is valid, the group is enabled, and the update log doesn’t show a timeout, an expired account, or a parsing error. Don’t add multiple copies of the same group or try to import an error page as a configuration. Make sure the subscription has produced server entries before choosing a proxy mode; enabling the system proxy won’t help if the client has no server configuration to use.
2. Choose a proxy mode
After importing, separate two questions: how app traffic reaches the client, and which outbound route it takes once there. System proxy settings, Android VPN, and TUN mainly affect the first; routing rules determine the second. Labels such as “Global” and “Rule” can vary by version, so check the option descriptions. Enabling the system proxy does not mean every app on your device will use the proxy.
For your first v2rayN setup, keep the default routing rules. From the main screen or tray menu, open “System Proxy” and choose “Automatically configure system proxy” or the equivalent option. This points system proxy settings to the client’s local listening address. Then test with a browser that honors system proxy settings. Don’t enter the subscription server URL in your operating system’s proxy address field: the system proxy connects to the client on your device, not directly to a remote server.
Start with the client’s default routing rules. Requests matching a direct rule go out from your device; those matching a proxy rule use the selected proxy outbound; blocked requests won’t connect normally. So some sites may still show the same exit address after you enable the client because they’re going direct. That doesn’t necessarily mean your setup failed. The verification steps below check each expected route separately.
For your first v2rayNG setup, keep the default VPN connection and routing settings. If the interface offers other connection modes, don’t switch yet. Android VPN can capture traffic from a wider range of apps, but per-app proxy and exclusion settings still affect which apps are covered. If you’ve changed the app list, make sure the browser you’ll use for testing isn’t excluded. Don’t run another app that occupies the system VPN slot at the same time.
Skip TUN for your first connection
On desktop, start by testing a browser through the system proxy. This narrows down the possible causes to the subscription, active server, and system proxy. TUN uses a virtual network interface and involves routing and permissions. Some apps may need it, but it isn’t required for a first setup. If the system proxy test succeeds but a particular app still ignores the proxy, follow the TUN section in the advanced configuration guide. Don’t enable every mode just to fill out the settings.
By the end of this step, you should know which method is capturing traffic and whether you’ve kept the default routing rules. Leave DNS, listening addresses, and custom rules unchanged for now. Establish a reproducible baseline, then select a server and connect in the next step. If anything goes wrong, you’ll be able to tell whether the original configuration failed or a later change caused the problem.
3. Select a server and connect
Return to the v2rayN server list and select an entry in the group you just imported. Use the right-click menu to choose “Set as active server” or the equivalent option. Some versions let you switch by double-clicking, but a highlighted row alone doesn’t confirm the change. Check the active marker, status bar, or current server display to make sure the selected configuration is in use. For your first test, stick with one entry so you can match the logs to your browser results.
In v2rayN, setting an active server usually starts or reloads the core, though behavior varies by version and current state. Check the main screen and logs for configuration or startup failures and port conflicts, and confirm that automatic system proxy configuration is still enabled. If there’s a start or restart service option, use it if needed, then wait for the status to settle before opening a browser. An open client window doesn’t mean the core is running successfully.
In v2rayNG, tap the server you want to use and check that it’s selected, then tap Connect on the main screen. The first connection usually prompts for system VPN permission. Confirm the request is from the client you’re using before approving it. After granting permission, check whether the connection button, status text, or system VPN indicator changes. Without permission, the client can’t capture app traffic using the default VPN mode, even if you’ve already imported a configuration.
Keep the client running while it connects; don’t force-quit it right away. On desktop, closing the window may minimize the client to the tray or exit it, depending on your settings. Check the tray icon and running status to confirm. On Android, keep the app in the foreground while testing, then check whether the connection stays active in the background. If it disconnects only after the screen turns off, check the system’s background restrictions instead of changing every battery setting at once.
If startup fails, identify where the error occurs
If the log says a local port is already in use, close duplicate client instances or other tools using the same port and try again. Don’t terminate system processes you don’t recognize. If a configuration field or protocol isn’t supported, check that the client supports the configuration and see which installers are available on the download page. If the core is running but the remote connection times out, try another entry from the same subscription. If that also fails, check your account and the service status.
The client’s connection test can help you compare server entries, but it only shows whether a particular probe succeeded; it doesn’t replace a real browser test. Don’t skip the next step just because the test reports a response time. At this point, you should have an active server selected, the core or VPN running, and traffic capture enabled. Next, check this route with an actual app request instead of adding more settings.
4. Verify the proxy is working
Use a browser that honors system proxy settings to open a site you expect to reach through the proxy and can normally confirm is available. Temporarily disable browser extensions that manage proxy settings so they don’t override the system configuration. Reload the page or make a request in a new tab; don’t judge success from cached content. A successful page load is a useful first check, but you also need to confirm the route in the client.
Next, check the client’s connection records or logs. If your version shows routing matches and outbound routes, confirm whether the request used the proxy or went direct. Not every logging level records each domain, so missing per-site entries don’t necessarily indicate a connection failure. If you temporarily increase logging detail, keep it enabled only for the test and restore your usual level afterward to avoid retaining browsing details longer than needed.
If you want to use your exit address as an additional check, compare the result on the same exit-information site in the same browser before and after connecting. Default routing rules may send that site direct, and the browser may reuse an existing connection, so an unchanged address alone doesn’t prove the proxy is failing. First confirm that the request should use the proxy. If needed, briefly select an explicit global proxy route for comparison, then restore the default routing rules. Don’t leave a temporary setting enabled just to make every test site show the same result.
Then open a site you expect to reach directly and confirm it loads, before returning to the site that should use the proxy and testing again. When both requests behave as expected, your basic routing and proxy connection are working together. Keep the same active server and settings during the test. If you need to switch anything, note what changed and adjust one setting at a time. That way, you’ll have a working baseline to compare against if a site behaves unexpectedly.
Browser works, but other apps don’t
First check whether the app honors system proxy settings. Some desktop apps have their own proxy options, and command-line tools may need proxy environment variables set separately; they won’t automatically follow the browser’s path just because the browser works. Check the app’s network settings. If you need traffic capture across more apps, see the TUN and DNS sections in the advanced configuration guide. Repeatedly updating the subscription won’t fix a traffic capture issue limited to one app.
If v2rayNG works in the foreground but fails in the background, check whether the VPN connection is still active, then see if the system is restricting background activity. If only certain apps are affected, check the per-app proxy list and whether it uses an include or exclude mode. An app appearing in the list doesn’t always mean it will use the proxy; the selected list mode matters. After making changes, reconnect and test the same app again.
Keep a working setup and disconnect when finished
Once the test succeeds, note the working subscription group, active server, and proxy mode. There’s no need to keep changing advanced settings. If the server list changes later, update the existing group and select an active entry again. A subscription update may overwrite provider-managed configuration, so don’t rely on local edits to a subscription entry as permanent changes. To organize multiple subscriptions or add long-term rules, configure them one at a time in the guide.
When you’re done, clear the system proxy in v2rayN before exiting the client, if needed. Otherwise, the system may keep sending requests to a local port that’s no longer running. In v2rayNG, tap the connection button to disconnect and confirm that the system VPN is off. If pages stop loading after you exit, first check whether the system proxy is still enabled; don’t delete all your configurations right away. Keep the group you’ve verified so next time you can start by selecting a server and connecting.