Import subscriptions · Choose a mode · Verify the connection

v2rayN Setup Guide:
From Subscription Import to Connection Test

Complete your first setup in four steps. Get one node working in one browser before moving on to TUN, custom DNS, or more detailed routing rules.

Before you begin, make sure the client is installed and opens successfully, and that your device can access websites over its regular network. The client reads configuration, starts the core, and handles traffic; installing it does not provide connection details. You’ll need a subscription URL from a trusted source or a complete node share link. A server name without connection parameters isn’t enough to proceed. This guide focuses on subscription URLs and doesn’t cover setting up your own server.

Plan for about ten minutes for a first-time setup, though downloads, permission prompts, and network conditions can affect how long it takes. Close other proxy tools that are currently handling network traffic, and keep your existing network connection available. Change one setting at a time and note its original state so you can tell whether a problem came from the subscription, the node connection, or traffic routing.

Step 1: Import a Subscription and Check the Node List

A subscription URL is usually a complete web address that the client uses to retrieve node configurations. Copy it using the source page’s copy feature to avoid missing trailing parameters, adding line breaks, or including surrounding instructions. A subscription URL may contain credentials, so don’t post it in public chats or include it in screenshots or support attachments. If you’re unsure whether you have a subscription URL or a single-node link, check the source’s instructions before choosing an import option.

v2rayN: Add a Group, Then Update It

Open v2rayN and find “Subscription Group” or a similarly named option in the top menu, then open “Subscription Group Settings.” Add a group, enter a recognizable name in the remarks field, and paste the complete subscription URL into the address field. Leave other options at their defaults for now. Save and return to the main window. Adding the URL only registers it; the node list may still be empty until you update the subscription.

Return to the subscription menu and choose the option to update the current group. If the interface only offers an option to update all subscriptions, you can use that instead. Before you have a working connection, choose an update method that can access the subscription URL directly. If there’s an option to update through the proxy, don’t use it while the connection is still untested. Wait for the update to finish, then check the status message and the group. You should see the nodes returned by the subscription.

Select a node in the list, then use the right-click menu’s “Set as active server” option or its equivalent to make it the current configuration. Some versions also let you switch by double-clicking. Check that the active indicator or current server details at the bottom change. A highlighted row may only be selected, not active; rely on the active status instead.

v2rayNG: Save the Subscription, Then Update It from the Main Screen

In v2rayNG, open the side menu and select “Subscription Group Settings.” Tap Add, enter a name and subscription URL, then save. Return to the main screen and look in the top overflow menu for “Update subscriptions” or “Update current group.” Once the update finishes, switch to the group and tap a node to make it the current configuration. Don’t test website access yet; the next step covers routing and traffic handling.

If you have a single-node share link that starts with a protocol name, import it using an option such as “Import from clipboard” rather than pasting it into the subscription URL field. A single-node import usually won’t update automatically with a subscription. In either case, confirm that the configuration appears, has a recognizable name, and is clearly marked as active. Don’t guess server parameters just to populate the list.

You’re done with this step when the group contains nodes and one is selected as the active configuration—not just when you’ve pasted in a URL. Keep that configuration unchanged for now; next, you’ll choose how traffic reaches the client and how it’s routed afterward.

Step 2: Choose a Proxy Mode and Understand Traffic Routing

“System proxy” and “routing mode” control two different things. The system proxy tells apps that support it to send requests to the local proxy port. Routing mode determines what the client does with requests it receives: connect directly, send them through a proxy, or process them according to rules. Switching to “Global” routing alone won’t make every app use the client, a distinction that often trips up first-time users.

v2rayN: Start with the System Proxy and Simple Routing

In the v2rayN status area at the bottom of the main window or in the tray menu, find “System proxy.” Look for options such as “Automatically configure system proxy,” “Clear system proxy,” and “Do not change system proxy.” For your first setup, locate these options now and enable automatic configuration in the next step when you start the connection. If the system proxy is already enabled but the connection isn’t working, clear it temporarily so your browser doesn’t keep pointing to a local port that isn’t responding.

Next, open the “Routing” menu and start with the built-in “Bypass mainland China” preset or an equivalent traffic-splitting preset. These presets generally send matching local and some regional traffic directly, while handling the rest according to proxy rules. The exact coverage depends on the rules in use. For now, avoid combining multiple custom rule sets or changing DNS and protocol settings; neither is needed to make your first connection.

If you later need to distinguish a node connection problem from unexpected routing, temporarily switch to Global routing for comparison. Here, Global means how the client handles the traffic it receives; it doesn’t guarantee that every app is routed through the client. Restore your original routing mode after the test and check normal browsing again. Don’t leave a temporary diagnostic setting in place.

v2rayNG: Check Routing and App Filters

In v2rayNG Settings or Routing Settings, choose a traffic-splitting preset similar to the desktop option. For your first connection, avoid complex custom rules. If app filtering is enabled, check whether it means “proxy only selected apps” or “bypass selected apps.” To reduce variables, turn off app filtering for the initial test so the default traffic handling applies. Once the connection works, narrow the scope as needed.

Android clients generally use the system VPN interface to handle traffic rather than a desktop-style system proxy switch. You’ll approve the system connection in the next step. For a first desktop setup, there’s no need to enable TUN yet; it involves a virtual network interface, permissions, and broader traffic handling, so configure it separately once the basic connection is stable. For details on how TUN, DNS, and routing fields work together, see the Configuration Guide. For now, keep the connection path simple.

Before moving on, be clear about how traffic will flow: on desktop, the system proxy handles requests from apps that support it; on Android, the system connection interface handles traffic within the default scope. The selected routing preset then determines how traffic leaves the client. Understanding this is more useful for troubleshooting than simply remembering a “Global” button.

Step 3: Start the Connection and Check the Core and Permissions

Return to the node list and make sure the configuration you selected in Step 1 is still active. You don’t need to rely on the test results in the list before starting the connection; built-in tests use their own target addresses and methods, and can’t replace a real access test. Start with one configuration, then use logs and website results to diagnose issues. This is usually easier than switching between several nodes.

v2rayN: Check the Core, Then Enable the System Proxy

After you set the active server or apply a configuration, v2rayN usually starts or reloads the core. Check the log area in the main window; if it’s collapsed, look for the log option in the menu. Watch for startup errors such as repeated configuration parsing failures or an inability to listen on a local port. If the configuration doesn’t seem to have taken effect, use the client’s restart service or reload option and check the new logs. Don’t start a second core manually at the same time.

Once you’ve confirmed that the core hasn’t exited immediately, select “Automatically configure system proxy” from the status area at the bottom or the tray menu. The system proxy status should change. Keep v2rayN running. Closing the main window may minimize it to the tray or exit the client, depending on your settings. Check the tray and running status instead of relying on whether the window is visible.

If the logs show that a local port is already in use, check whether you have another copy of the client open or another proxy tool using the same port. Close the conflicting program and restart the current service first. If you need to change the port, do so in the client settings and reapply the system proxy so the browser and the actual listener use the same port. Changing only one side can leave the client running while requests fail to reach it.

v2rayNG: Tap Connect and Approve the System Request

Tap Connect on the v2rayNG main screen. The first time, the system will usually show a connection request explaining that the app wants to establish a VPN connection. Make sure the request is from the client you’re using, then approve it. Return to the main screen and check the connection status and system notification. Button appearance and status text can vary by version; check for a persistent notification rather than relying on an icon’s color.

If another VPN app is already running, the system may ask to replace its connection. Check whether you still need the existing connection to avoid repeatedly switching between them. If the new connection stops immediately, check the client logs and system message. If it stops only after running in the background for a while, also check battery restrictions and background permissions. These issues happen at different stages, so don’t disable every system restriction up front.

A lit connection indicator only means that traffic handling or the service has started; it doesn’t prove the server is reachable. If the logs show a timeout, connection refusal, or TLS handshake failure, note the error type and when it occurred. Don’t share full screenshots that expose subscription or account details. For common errors, see V2Ray Connection Troubleshooting. If there are no startup errors, continue with a real access test.

Step 4: Verify It Works and Finish Up

Start with the simplest app. On desktop, use a browser that follows the system proxy by default and has no separately configured proxy extension. Open a new page on a site expected to use the proxy. On Android, test the same site in a browser. Choose a site you know is available, and don’t rely on refreshing a cached page. Once it loads, open a new link on the site to make sure you aren’t seeing old content.

Compare Website Results with the Logs

Watch the client logs while browsing. If the log level includes access records, check whether the request arrived, matched the expected outbound route, and connected without errors. If there are no access records, check the log level before concluding that traffic didn’t reach the client. If you temporarily increase the log level for diagnosis, restore your usual settings afterward and remember that logs may include visited domains.

If a page won’t load and the request hasn’t reached the client, check the traffic handling first: is the system proxy enabled on desktop, is the browser using its own proxy settings, or has app filtering excluded the browser on Android? If the request arrived but keeps failing, check the active node, device time, and server availability. If the page loads but uses an unexpected route, revisit the routing rules instead of reinstalling the client.

You can compare results with another known-good node, but after each switch, confirm that the active configuration has changed before testing the same site again. Don’t change the node, routing, and DNS all at once; even if access starts working, you won’t know which change helped. If the client’s built-in test passes but the page doesn’t load, consider differences in test targets, browser cache, or app-specific settings.

Check Other Apps Separately; Don’t Extrapolate from Browser Results

Once the browser test passes, open the other apps you actually need, one at a time. Some desktop programs don’t read the system proxy; they may need a local proxy set in their own network settings or a separately configured TUN interface. Don’t assume every app follows the same route just because the browser works. Likewise, if one app still connects directly, don’t immediately replace the entire configuration.

An exit IP check can be a useful clue, but interpret it in the context of your routing mode. With traffic splitting, different destinations may connect directly or through the proxy. If an IP-check site matches a direct-connection rule, seeing your local network’s exit IP doesn’t by itself mean the proxy has failed. A more reliable approach is to compare the destination domain, the access result, and the corresponding outbound log entry.

Stop the Connection and Prepare for Next Time

When you’re done on desktop, select “Clear system proxy” in v2rayN before exiting the client. If you close the process first while the system still has a local proxy address configured, the browser may keep sending requests to a port that’s no longer open. If websites stop working after you exit, first check for a leftover system proxy instead of resetting the device’s network settings. On Android, stop the connection in v2rayNG and make sure the persistent notification or system connection indicator has disappeared.

Next time, you’ll usually only need to check the active node, start the connection, and repeat a quick test; there’s no need to import the subscription again. Update the subscription if the provider announces a configuration change or an entry needs refreshing, then check that the previously active node is still available. Before making a backup, consider what it contains—subscription URLs, client preferences, or custom rules—and don’t share an export containing credentials as if it were an ordinary help document.

For detailed routing, DNS settings, or the core’s JSON structure, see the Configuration Guide. If subscription updates fail, the connection keeps dropping, or an app isn’t using the proxy, check Troubleshooting by symptom. Still deciding which client to use? Compare three V2Ray clients, then return to the download page for your platform.

Download the Client