v2rayN Setup Guide

Import a subscription → Choose a proxy mode → Connect → Verify the result.
Establish a working connection first, then adjust routing and other settings.

Before You Start: Prepare the Client and Subscription

Install and open the client, then get a subscription URL or a complete configuration share link from a trusted provider. The client reads configurations and routes traffic; it does not provide a remote server. Subscription URLs usually retrieve multiple configurations, while share links add a single configuration through a different menu. Identify which type you have before starting.

Close other apps that control the system proxy or VPN, and leave the client's default settings in place for now. Avoid changing DNS, core parameters, and routing rules during your first connection; otherwise, it will be harder to identify the cause of a problem. Check that your device's date, time, and time zone are correct, and that your current network can load ordinary web pages. Fix basic connectivity first if it cannot.

Allow about 10 minutes for the initial setup; the actual time depends on the subscription update and your network. If you haven't installed the client yet, choose the right installer for your system on the download page. For installation permissions, runtime dependencies, or platform-specific prompts, see the complete installation and setup guide for all platforms. This page focuses on establishing your first connection.

Step 1: Import a Subscription

Copy the complete subscription URL. Make sure it doesn't include explanatory text, line breaks, or extra spaces, and don't use the provider's account page URL. Subscription URLs may contain access credentials, so paste them only into the appropriate client settings field—not into public screenshots, group chats, or shared logs.

Add a Subscription Group in v2rayN

Open the main window and find Subscription Groups in the top menu or toolbar. Open Subscription Group Settings and click Add. Enter a recognizable name for the group, paste the URL into the subscription address field, and save. The name is for local reference only and won't affect the connection. Leave other update options at their defaults for now.

Return to the main window and choose Update Subscription from the subscription menu. If you can select a group, update only the one you just added so the result is easy to check. When the update finishes, switch to that group and look for configuration entries in the server list. Entries confirm the import returned results, not that a remote connection works. Check their names and types before setting up the traffic entry.

Add a Subscription Group in v2rayNG

Open the home screen menu, go to Subscription Group Settings, and tap Add. Enter a name and subscription URL, then save. Return to the home screen and choose Update Subscription from the menu. Saving the URL alone may not add selectable configurations to the home screen. After the update, find the group or entries and confirm they have loaded before choosing a proxy mode.

If you have a single share link, don't paste it into the subscription address field. Copy the full link, then use an option such as Import share links from clipboard in v2rayN, or choose Import from clipboard from v2rayNG's add configuration menu. After importing, check that the server address and protocol fields are present. Don't import the same subscription and share link twice; duplicates can be hard to distinguish.

If an update fails, start with the client's error message. Then check that the URL is complete, the subscription is still valid, and your device can reach the subscription service. If you don't have a working proxy yet, try the client's option to update without a proxy. Use the proxy update option only when a working proxy is already available and the provider requires it. Keep the existing configurations while you investigate; don't delete the whole list.

Step 2: Choose a Proxy Mode

After importing, distinguish two questions: how app traffic reaches the client, and which route it takes once there. System proxy and TUN mainly control the first; direct, proxy, and rule-based routing mainly control the second. Enabling the system proxy doesn't capture traffic from every app, and choosing global proxy doesn't automatically route traffic that never reaches the client.

Use the System Proxy First in v2rayN

For your first browser test, leave Enable TUN Mode turned off. Find System Proxy at the bottom of the main window or in the tray menu, then choose Automatic Configuration. This lets apps that follow the system proxy settings use the client's local listening port. Some browser extensions and apps have their own proxy settings that override the system settings, so check for those before testing.

Next, find Routing or the routing presets and choose one that bypasses LAN addresses, so local device traffic can stay direct. Preset names and rule coverage vary by version; check the option's description rather than assuming that every website will use the proxy. To check the remote exit temporarily, you can switch briefly to a global proxy preset, then restore your preferred routing mode.

TUN can route traffic from more apps, but may require administrator permissions and affect virtual network adapters and DNS behavior. It isn't needed for your first browser test. Verify the configuration with the system proxy first, then read the routing and traffic entry section of the complete guide to learn when to use TUN. During troubleshooting, use only one traffic entry method at a time to reduce variables.

Check the Routing Preset in v2rayNG

v2rayNG typically routes traffic through Android's system VPN interface, so you don't need to follow the Desktop steps for automatic system proxy configuration. Check the routing mode in settings and choose a preset that fits your needs; don't add custom rules during the initial test. If per-app proxying is enabled, make sure the browser you're testing isn't excluded. Otherwise, the home screen may show a successful connection while the browser accesses the internet directly.

System VPN permission only allows the client to create a local traffic entry; it doesn't prove that a remote server is working. Android usually can't run two standard VPN apps at once, so disconnect any other VPN before connecting. Once the routing settings are confirmed, leave local ports and advanced DNS options unchanged for now and continue to the connection step.

Step 3: Connect

Return to the server or configuration list and select one configuration to test. Test one at a time; don't update the subscription while switching repeatedly between servers. Test results in the list are only a guide: a successful latency test doesn't guarantee that a browser can load a page, and no test result doesn't necessarily mean a configuration is unusable.

Set the Active Server in v2rayN

Select the entry you want and choose Set as active server, or the equivalent option, from its right-click menu. In some versions, clicking a row only highlights it and doesn't apply the configuration; confirm that the active indicator or current server has changed. v2rayN usually starts or reloads the core after applying the active configuration. If the interface provides Start or Restart controls, use one as appropriate for the current status.

Check the log panel at the bottom for immediate startup failures, port conflicts, or configuration parsing errors. Then confirm that the system proxy is still set as expected. If a local port is already in use, stop the other proxy app that may be causing the conflict. Don't terminate a system process unless you know what it does. If you need to change the listening port, also check that the system proxy points to the new port.

If the core is running but a connection times out or a handshake fails during access, the cause may be the remote connection, configuration parameters, or network path—not the start button. Note when the error occurs and which entry is active, then try another known-working configuration from the same subscription. Don't disable connection security options just to clear an error.

Confirm VPN Permission in v2rayNG

Return to the home screen, select the configuration you want to use, and confirm the selected marker is on the right entry. Then tap Connect. On the first connection, Android displays a system prompt to set up a VPN connection. Confirm the request comes from the current client before allowing it. If you deny permission, the configuration remains saved but no traffic entry is created; tap Connect again and grant permission to continue.

Check the button state, Android VPN indicator, and the client's persistent notification to confirm the service is running. Some versions offer a connection test; you can run it as a reference, but verify actual access in the next step. If the app disconnects shortly after going into the background, check Android's background activity and battery settings. You don't need to grant every background permission before your first connection.

If something goes wrong, open the client log and keep the error messages from around the time of your last action. Before sharing a troubleshooting screenshot, hide subscription URLs, sensitive parts of server addresses, and authentication fields. For help identifying error types, see common configuration issues in the complete guide, then return here to continue testing.

Step 4: Verify the Connection

Once the service is running, use the same browser and test page throughout. First open an HTTPS page that normally works to confirm basic browsing hasn't been affected, then visit the page where you want to check the exit route. If needed, refresh the page or reopen the browser to reduce the effects of reused connections and cached content. Page load speed alone can't show where traffic is going.

Cross-Check the Page, Exit IP, and Logs

Use a trusted public IP lookup page to check the public exit address, then compare it with your current routing rules. With rule-based routing, different destinations may use different exits, so an IP lookup showing your usual network address doesn't necessarily mean that no traffic is reaching the client. For a quick retest, temporarily use a routing mode that clearly sends traffic through the proxy, then restore your usual rules.

Also check client log entries around the time of the request. If the current log level records access, check whether the destination was assigned to the expected exit. If it only shows errors, the absence of an access entry doesn't mean no traffic passed through. To investigate further, temporarily adjust the log level as described in the complete guide, then restore your usual setting to avoid excessive logs.

If the browser works but another app doesn't, first check whether that app follows the system proxy or is included in v2rayNG's per-app routing. Don't reinstall the client right away. If the browser also fails, check in this order: is the target configuration active, is the core running, is the system proxy or VPN traffic entry in place, and finally, are the routing rules and DNS correct? Change one thing at a time and repeat the same test.

Save Working Settings and Disconnect Properly

Once the target page loads, the exit matches your routing rules, and the logs show no ongoing connection errors, record the subscription group, configuration name, traffic entry method, and routing preset you're using. Don't include subscription credentials in public notes. Use these verified settings as a baseline when adjusting TUN, per-app proxying, or custom routing; they're an easy fallback if something goes wrong.

When you're done on Desktop, clear the system proxy in v2rayN before stopping the service or exiting the client. If TUN is enabled, turn it off first and wait for the network to recover. Closing the main window may only minimize the client to the tray, not stop it. On Android, tap Disconnect and confirm the VPN has stopped rather than simply swiping the app away from recent apps. Following this order helps prevent apps from pointing to an inactive local entry after you exit.

Download v2rayN