Getting Started · Setup in Four Steps

v2rayN Setup GuideImport a Subscription and Test Your Connection

Follow these steps: import a subscription → choose a proxy mode → connect → verify. Allow about 10 minutes for the initial setup; server settings and network conditions can affect the time required.

Make sure you have the client installed and a valid subscription URL. The client reads configurations and establishes connections; it does not create working servers automatically. If you haven't installed it yet, choose an installer on the client download page, then return here.

Setup steps

Get a server to appear in the list before setting up how traffic enters the client. Confirm the result at each step before moving on.

STEP 01 / SUBSCRIPTION

Import a subscription: add a group and update servers

First, distinguish a subscription URL from a single share link. A subscription URL fetches multiple servers and is usually an HTTPS address with access parameters. A single share link describes one server configuration. They may use different import options. For a subscription URL, use the subscription group settings; don't paste it into a server address field. Server addresses, ports, IDs, and other fields are generated when the subscription is parsed, so you don't need to enter them individually for initial setup.

v2rayN: Add a subscription group

Open v2rayN and go to “Subscription Group Settings” from the “Subscription Group” menu at the top. Choose to add a group. Enter a recognizable label under “Remarks,” such as “Daily use,” then paste the full subscription URL into “Optional Address (URL).” Any parameters at the end of the URL are part of the configuration. Copy everything after the question mark, don't add quotation marks, and don't include explanatory text from a chat message.

“Enable updates” controls whether this group is included when subscriptions are updated. Leave it enabled for initial setup, and leave “Filter” blank to avoid excluding every server by name. Keep the default update interval for now. If the field is blank and your version allows you to save, use a manual update to verify the setup. After saving the group, return to the main window and choose “Update current subscription” from the subscription menu, or use that version's “OK and update subscription” option.

Check the update result and server list. After a successful update, the group should contain selectable servers, usually with details such as remarks, protocol, address, or port. A populated list means the configuration was parsed; it doesn't mean you're connected. If the update reports success but the list is empty, first check that the new group is selected, then check the filters. If the request failed, confirm that the full subscription URL was copied, that it hasn't expired, and that your network can reach the subscription service.

v2rayNG: Save the group, then update from the list

Open the v2rayNG side menu, go to “Subscription Group Settings,” and tap the add option. Enter a label and paste the subscription URL. After saving, return to the main screen and use the top-right menu to select “Update subscription” or the equivalent option. Some versions offer updates over a direct connection or through a proxy. If you don't have a working connection yet, try a direct update first; use a proxy update only if you already have a working proxy and the subscription URL requires it.

For a single share link, copy the complete link. In v2rayN, use “Import share links from clipboard”; in v2rayNG, use the clipboard import option in the add menu. Don't keep trying a subscription URL and a single-server link in each other's import options. After importing, check that the server type matches the provider's instructions. If it doesn't, verify the original content rather than changing it to another protocol. You can't convert between protocols just by editing a label.

This step is complete when at least one server with a full configuration appears in the intended group. Don't run multiple speed tests or edit transport and security settings yet. Keep the original subscription configuration, then choose how traffic will enter the client.

STEP 02 / TRAFFIC MODE

Choose a proxy mode: understand traffic entry and routing

“System proxy” and “routing rules” solve different problems. The system proxy determines whether apps that honor system settings send requests to the client. Routing rules determine whether the client sends those requests directly, through a proxy, or to another configured outbound. Enabling the system proxy doesn't send traffic from every app to the client, and choosing a global proxy route doesn't capture apps that don't use the proxy entry point. Understanding these two layers makes troubleshooting more straightforward.

v2rayN: Start with the system proxy

Find “System Proxy” in the status bar at the bottom of the main window or in the corresponding menu. For initial setup, choose an option such as “Set system proxy automatically.” Check its status both before and after connecting. Don't enable TUN yet; that adds variables such as a virtual network adapter, permissions, and routing. If your browser has a separate proxy extension, temporarily disable it or set it to use system settings to avoid overriding the system proxy.

Next, find “Routing” or “Routing Settings” and choose a common preset available in your version. To route matched traffic directly or through a proxy, select the corresponding bypass or split-routing preset and read its description. “Global” in the menu usually means that requests entering the client use the proxy outbound under that preset; it isn't a system-wide traffic capture switch. Don't infer the exact rules from a preset's name, and don't import rules from unknown sources just to make a page load.

For initial testing, choose a preset with clear, predictable rules. If a page is routed directly, temporarily switching to global proxy routing can help compare results. Restore your preferred split-routing rules after testing. Note the original setting and change only one thing at a time. For details on domain rules, IP rules, and matching order, see the protocol and core reference. This guide focuses on a practical basic setup.

v2rayNG: Check the running mode and routing settings

Check the running mode in v2rayNG settings. Typical Android use sends traffic through VPN mode. If you switch to a mode that only provides a local proxy port, other apps won't use that port automatically when you tap Connect. For your first setup, use the default VPN mode and choose a suitable routing preset. Avoid adding custom rules or per-app restrictions for now.

If per-app proxying is already configured, make sure your test browser is included in the selected scope. Whether the list includes or excludes selected apps depends on the option shown in the current interface; don't assume based on which apps are checked. Other apps using the system VPN channel may also prevent a connection from starting, so stop similar connections before you begin. If you later need a specific app to connect directly, adjust its scope and test again.

At the end of this step, you should be able to answer two questions: how does the test app send requests, and which routing rules is the client using? Keep these settings and move on to connecting to a server.

STEP 03 / CONNECTION

Connect: select a server and check the core status

Choose a server with a complete configuration and a clear purpose for your first test. Check its remarks and protocol; don't just pick the one with the lowest latency. A TCP probe only indicates whether an address and port can be reached. A connection test more closely resembles a proxy request, but it still doesn't replace testing in an actual app. If your server comes from a subscription, keep its original parameters rather than changing the port, transport, or security options to chase a particular test result.

v2rayN: Set the active server

Select the server and choose “Set as active server” or the equivalent option from the right-click menu. Some versions also let you double-click a server to make it active. Check the active indicator and status bar to confirm that the server you selected is enabled, not just highlighted. v2rayN usually starts or reloads the relevant core when applying the configuration or switching active servers; a separate Connect button isn't available in every version.

Open the log panel and check for configuration loading, core startup, or clear error messages. If a port is already in use, check whether you opened multiple client instances or another program is using the same local listening port. If a protocol or field isn't supported, compare the server requirements with the selected core and client support. Don't simply remove security parameters. Xray and V2Fly differ in their capabilities; see protocol details for when to switch cores.

Once the core is running normally, confirm that the system proxy is enabled. If the system displays a permission or network access prompt, verify that it comes from the client you're using and grant permission as needed. Don't disable system protection to bypass the prompt. If the connection fails, keep the first important error message. Changing several servers and settings in a row makes it harder to match logs to the current state and identify where the problem began.

v2rayNG: Connect and grant permission the first time

Return to the main list, select a server, then tap Connect. The first time you start in VPN mode, Android will show a connection request. Check the app name and allow it. Return to the client and check the Connect button and system VPN status. Permission only allows the app to create a local traffic tunnel; it doesn't confirm that the remote server works. Test access in the next step.

If the connection drops immediately after you allow it, check the client logs for configuration errors, startup failures, or permission issues. If it only drops after the screen locks, check the system's background activity and battery restrictions for the app, and allow background activity if needed. Don't change battery settings, routing, and server parameters all at once after an initial connection failure. First fix startup errors you can reproduce, then address background operation after the screen locks.

This step is complete when the active server is clear, the core or connection service stays running, and there are no repeated startup errors. Leave the client running and return to your browser. Use a real request to verify the connection rather than relying on the connection icon.

STEP 04 / VERIFICATION

Verify the connection: compare access and logs

Open a browser and visit a known working HTTPS page, then try a site you normally access through this proxy. Open a new tab and reload the page to avoid seeing cached content. A single page loading doesn't prove that all apps are using the proxy: the page may have connected directly, or the browser may use its own proxy settings. Check both app behavior and client logs.

First, check whether requests reach the client

Return to the client logs and look for entries around the time you loaded the page. If your version and log level show connection details, check the destination domain, connection errors, and selected outbound. Not seeing every request in the logs doesn't necessarily mean the request never reached the client. Check the log level and what it displays, then consider the system proxy, browser settings, and active server together. Don't leave logging set to an unnecessarily high level just to capture more detail.

If a regular page loads but the target site doesn't, keep the server unchanged and adjust only the routing preset used for testing. Try global proxy routing and load the page again. If the result changes, check the original split-routing rules first. If no pages load, check that the core is running and the proxy entry point is enabled, then check the server connection; don't assume routing is the cause. If you see a certificate warning, don't ignore it and continue. Check the system time, destination address, and local security software instead.

Check DNS: distinguish resolution errors from connection failures

If the logs explicitly report a domain resolution failure, first check whether the device's current network can resolve ordinary domain names. Then check whether the client's DNS settings include custom entries that don't suit the current network. For initial setup, start with the version's default settings. Don't layer browser secure DNS, custom client DNS, and multiple complex routing rules all at once. Different traffic entry points may use different resolution paths, so a browser resolving a domain doesn't prove the client's DNS path is working.

If the logs show that an address was resolved but the connection timed out, check the server, port, remote availability, and network path instead; changing DNS alone may not help. If only one app has a problem while the browser works, check whether that app honors the system proxy or is excluded by Android per-app rules. For more on DNS and routing, see the protocol and core reference. In this basic guide, change only the setting directly related to the current error.

Finish by comparing results with the proxy on and off

On the same network, in the same browser, and on the same page, note the result, temporarily turn off the proxy entry point, and reload. Then turn it back on and compare. Don't change the server or routing between tests. If the results are the same, the page may work without a proxy, or requests may not be reaching the expected entry point; check the logs to find out. The goal isn't to force different results, but to confirm a clear link between the current setup and actual requests.

After verifying the connection, note the working group, active server, and routing preset. Before enabling automatic updates, manually update the subscription and confirm that it still works. Server remarks and parameters can change when a subscription refreshes, so check the active server again afterward. When sharing troubleshooting details, include only the client name, operating system, steps taken, and redacted error text. Don't share the full subscription URL or personal browsing history.

The subscription, proxy entry point, core, and actual access have now been checked separately. To repeat a step, return to subscription import or proxy mode settings. For protocol selection, core compatibility, and subscription formats, see protocol details. There's no need to configure every advanced option during initial setup.