v2rayN Setup Guide
Import a subscription → Choose a proxy mode → Connect → Verify it works. If you have the client installed and a valid subscription, the initial setup takes about ten minutes. Network and permission issues may require separate troubleshooting.
Before You Start: Client and Subscription URL
Make sure the client is installed and opens correctly. If you still need an installer, visit the client download page and choose the version for your operating system and processor architecture. This guide starts from the main screen; you won't need to edit configuration files or enable TUN. Follow the shortest setup path first, then explore app routing or more advanced traffic handling after basic browsing works.
Next, get the subscription URL from your provider. Think of it as the address the client uses to fetch a list of configurations. The client reads this URL to create server configurations you can select. Installing the software alone does not provide a working service. If you only have a single configuration share link, use the client's clipboard import option instead of entering it as a subscription URL.
Copy the entire URL, including any parameters after the question mark. Subscription URLs may contain personal access credentials, so don't share them in group chats, public screenshots, or online testing tools. The example below is only to show the URL format and won't connect to a server. Before you begin, quit any other proxy or VPN apps to prevent them from changing system settings at the same time and complicating troubleshooting.
Menu names and locations may vary slightly between versions. Look for equivalent options such as Subscription Group Settings, Update Subscription, or System Proxy; the wording doesn't have to match exactly. If your system prompts you for network or installation permissions, check the app name shown in the prompt before granting access.
01 Import a Subscription: Add Configurations to the List
v2rayN: Add a Group, Then Update It
Open the v2rayN main window. From the Subscription Groups menu at the top, open Subscription Group Settings and choose Add. Enter a recognizable name for the group, such as “Daily subscription,” then paste the full subscription URL into the Address field. The name only affects how the group appears on your device; it doesn't change the configurations provided by your service. Check that there are no spaces or line breaks at either end of the URL, save, and return to the main window.
Saving the group doesn't fetch its configurations. Go back to the Subscription Groups menu and update the group, or use the corresponding option under Update Subscription. For a first-time setup, try updating without a proxy, since you haven't established a working connection yet. Once the update finishes, the server list should show configurations from that group. If the list already contains other groups, switch to the one you just added so you don't mistake old configurations for the new import.
Some versions offer an Enable Updates option and an automatic update interval. You can enable updates and keep the default interval to start. This lets the client fetch subscription updates periodically; it doesn't continuously test your connection or automatically choose a server. After the first manual update, adjust the interval to suit your provider's update schedule.
Alias: Daily subscription
Address: https://example.com/sub?token=xxxx
Enable updates: On
Automatic update interval: Keep default
The URL tells the client where to fetch configurations; the group determines where to organize them. Saving stores the URL, but updating fetches the configurations. Even after they appear in the server list, app traffic isn't necessarily going through the proxy—you still need to choose how traffic is handled. The example URL won't connect; replace it with the full subscription URL from your provider.
v2rayNG: Add a URL to a Subscription Group
Open v2rayNG and use the main screen menu to go to Subscription Group Settings. Tap Add, enter a label and subscription URL, then save. Return to the configuration list and select Update Subscription from the menu. This step is complete when configurations appear in the list. If you only have a single share link, use Import from Clipboard in the main screen's add menu, then check that the configuration appears in the list.
If the update fails, don't keep reinstalling the app. Copy the URL again and make sure the subscription is still valid. Then check whether the error indicates a connection failure, a timeout, or content that couldn't be parsed. Being able to open a website in your browser doesn't guarantee that the subscription endpoint is reachable; likewise, a successful subscription update doesn't mean every configuration will connect. If you need an existing proxy to update, first make sure you have a working configuration, then choose to update through the proxy. See the Help Center for a detailed troubleshooting sequence.
02 Choose a Mode: Set Traffic Handling and Routing Separately
Now that configurations are listed, address two separate questions: do apps send their connections to the client, and how does the client handle those connections? The first is handled by the system proxy or VPN; the second by routing rules. For your initial setup, use a common preset. Avoid changing DNS, transport settings, and advanced routing at the same time, or it will be hard to identify the cause if something fails.
v2rayN: Configure the System Proxy and Choose a Routing Preset
Find System Proxy at the bottom of the main window or in the tray icon menu, then select Auto Configure System Proxy. Apps that follow the system proxy settings will send their requests to the client. This doesn't guarantee that every app will use the proxy: some have their own network settings or ignore the system proxy. Check each app separately during the verification step.
Next, find the routing options and choose a preset. For everyday split routing, start with Bypass mainland China. If your version uses a different preset name, read its rule description and choose one with a similar purpose. This preset typically sends connections matching mainland Chinese domains or addresses directly, while routing other connections through the proxy, but the exact behavior depends on the preset, rule order, and routing data files. Don't assume a website's route from the preset name alone.
v2rayNG: Use VPN Mode and Keep the Default Settings
In v2rayNG settings, make sure VPN mode is selected. It uses Android's VPN interface to handle traffic from eligible apps. The first time you connect, Android will show a VPN connection request; allow it so the client can create its local traffic-handling interface. This system permission is needed to handle traffic, not to update subscriptions.
For your first setup, leave advanced settings such as per-app routing at their defaults. If you've previously set the app to proxy only certain apps or bypass others, check that your browser hasn't been excluded. Start with a routing preset that serves the same purpose as the desktop option. Bypass LAN only affects local network addresses; it doesn't bypass all websites in mainland China—the two options match different ranges. Don't enable options such as Mux just for troubleshooting, and keep protocol settings consistent with the imported configuration.
At this point, the client knows how to receive app connections and route them, but you still need to select a server configuration to use. For definitions of system proxy, VPN, TUN, and routing, see the glossary. For now, continue to the connection step.
03 Connect: Select a Configuration and Check the Core
v2rayN: Set the Active Server
Choose a configuration from the server list, then activate it using Set as Active Server in the right-click menu or an equivalent option. Depending on the version, the active entry may be indicated by a checkmark or a change in appearance; refer to your interface. Don't rely on a row being highlighted: that may only mean it's selected for an action, not that it has become the active server.
v2rayN usually reloads the core when the active configuration changes; there may not be a separate Connect button. The core is the background process that handles network requests. Check the log panel at the bottom for recurring errors such as configuration parsing failures, the core exiting, or a local listening port already in use. If the client isn't running properly, fix local errors before testing a website. Switching servers repeatedly won't resolve a local port conflict.
Next, make sure the system proxy is still set to Auto Configure System Proxy. Changing settings or starting another app can override the system proxy. You don't need to import the subscription again; just check the active server, whether the core is running, and how traffic is being handled. Change one thing at a time during testing and note the original setting so you can restore it.
v2rayNG: Select a Configuration and Tap Connect
Tap a configuration on the main screen to select it, then tap Connect. Confirm the system VPN request if it appears for the first time. If Android says another VPN is already running, disconnect it before starting v2rayNG. A changed button or status bar only shows that the local connection process has started; it doesn't prove that the remote server is reachable.
If the connection drops soon after you switch apps, check Android battery optimization and background activity restrictions, and allow v2rayNG to run in the background if needed. First verify a website with the app in the foreground, then address background operation. This helps separate system restrictions from an unreachable server. For handshake failures, connection refusals, or timeouts, see what log errors mean and how to troubleshoot them. Menu names may vary by client version.
04 Verify It Works: Check Websites and Logs Together
After connecting, open a website you can normally access and refresh it to make sure the network still works. Then visit a website that should be routed through the proxy. Open a new page for testing rather than relying on an already loaded tab—cached content and existing connections can be misleading.
Watch the client logs while testing. If the logs show the destination when you start browsing, the request has at least reached the client. If they also show an outbound tag or routing result, check whether the connection is direct or proxied. Log detail varies by version; if no destination appears, check the log level before assuming the client has failed. Before sharing logs, redact subscription URLs, server addresses, and personal credentials.
If regular websites load but a site that should use the proxy doesn't, first confirm the active configuration, then check whether the site's request reached the client. If it did but timed out, investigate server availability or the network path. For a handshake error, check whether the configuration has expired and whether the protocol and related settings match. If the request never reached the client, check whether the browser follows the system proxy or is excluded by Android's per-app routing.
| What you see | What to check next |
|---|---|
| Subscription updated, but websites won't load | Check the active configuration, whether the core is running, and the system proxy. A successful subscription update only confirms that configurations could be fetched. |
| Browser works, but other apps don't | Check whether the app uses the system proxy or is excluded by per-app routing. |
| Request reaches the client, but times out | Check that the selected server is available, then review the destination shown in the logs. |
| Some websites show a local IP address | First check whether routing sends them direct. A different apparent IP address doesn't by itself mean something is wrong. |
To check your apparent IP address, use a network information site you trust and compare the results with the proxy off and on. The lookup request is also subject to routing rules, so a local IP result doesn't necessarily mean all proxied connections are failing. First determine whether the request should go direct or through the proxy, then compare the page result with the logs. Split routing doesn't require every website to show the same IP address.
Run one final test: close the test page, reopen it, and visit the same destination to confirm the result is consistent. If only one website fails, test another similar site before drawing conclusions; don't reset all your settings right away. If the browser works but other apps don't, at least part of the basic connection path is working. App traffic handling, TUN permissions, and custom routing are next steps; see the all-platform setup guide.
Disconnect and Wrap Up: Restore Your Network Settings
When you're done on desktop, select Clear System Proxy in v2rayN before exiting. If websites suddenly stop loading after the app closes unexpectedly, check whether the system proxy still points to a local port that is no longer running. Restore the system proxy settings and test a regular website before considering deleting the subscription. If you used a workplace or other proxy before enabling v2rayN, restore its original settings instead of clearing everything.
On Android, tap the connection button to disconnect and make sure the system VPN indicator disappears. Disconnecting normally won't delete the subscription; you can select the same configuration next time. If you have connection problems later, check in this order: can the subscription update, is a configuration selected, is traffic handling enabled, and are there errors in the logs? Don't start by changing every setting.
For a first-time setup, keep only the subscription group, active configuration, and routing preset you've verified. Use those settings for everyday browsing. For protocol differences, see the glossary; for specific issues, visit the Help Center; for platform-specific installation, permissions, and advanced settings, see the all-platform guide.