Get started · Set up in four steps

v2rayN Setup Guide
and v2rayNG Subscription Setup

Follow this order: import a subscription → choose a proxy mode → connect → verify it works. If the client is installed and you have a working subscription, the basic setup takes about 10 minutes. Network issues require separate troubleshooting.

Before you start, choose a client for your device from the downloads page and install it. Then get the full subscription URL from your provider. Subscription URLs may contain access credentials; store them securely and never include them in public screenshots, online converters, or support requests. This site explains the clients but does not provide subscriptions or servers. Installing a client does not create a connection-ready configuration.

01 Import a subscription and select an active server

A subscription is a way to update a set of server configurations, not a button to connect to one server. First, add the subscription to the client, then choose an active entry from the server list populated by the update. If the group name appears but the list is empty, you have likely saved the subscription URL without updating it.

v2rayN: Save a group, then update the subscription

Open the v2rayN main window and find the subscription group menu, then open “Subscription group settings” and add a group. Enter a recognizable name in the remarks field and paste the full subscription URL into the address field. Check that no spaces, line breaks, or punctuation from a chat message were added at either end, then save. Do not paste the subscription URL into individual server fields such as address or port; those fields do not parse subscriptions.

Return to the main window and update the subscription from the subscription group menu. If you do not yet have a working proxy and the menu offers both a regular update and an update through a proxy, choose the option that does not depend on an existing proxy. After the update, switch to the group you just created and check that server entries appear. Select one to use, then choose “Set as active server” from the context menu or use the equivalent command in your version. Confirm it is active by its status indicator or the status bar; highlighting alone does not mean the switch succeeded.

v2rayNG: Add a subscription group and refresh the list

Open v2rayNG, tap the top-right menu, and choose “Subscription group settings.” Use the add option to enter a remark and subscription URL, save, and return to the main screen. Open the menu again and update the subscription. If you can choose whether to update through a proxy, use the option that does not rely on an existing proxy for the first update. Wait for it to finish, confirm entries appear in the configuration list, and select one as the active configuration. Updating a subscription and connecting are separate actions; there is no need to start the VPN yet.

If your provider gave you a single share link rather than a subscription URL, use an option such as “Import from clipboard.” For a QR code, use the client’s scan feature. Seeing one configuration after import is normal, but it may not support future subscription updates. Check which type of link you received before choosing between group updates and single-link import, and avoid adding the same configuration repeatedly.

You should now see server entries and know which one is active. Keep the same entry for the next step; switching servers repeatedly before confirming how traffic reaches the client makes subscription, routing, and network issues harder to separate. To understand how subscriptions map to core fields, see the configuration reference.

02 Choose a proxy mode and routing rules

The proxy mode determines how apps send traffic to the client; routing rules determine where traffic goes after it enters the core. These are separate layers: apps that ignore system proxy settings may connect directly even when the system proxy is on, and choosing global routing does not automatically route traffic from every app on the device. Start with fewer interception options and add complexity only after you have a result you can reproduce.

v2rayN: Start by routing your browser through the system proxy

Find “System proxy” in the main window or tray menu. When you are ready to connect, choose “Set system proxy” or the equivalent option in your version. This points the system proxy to the client’s local listening address. If your browser has a separate proxy extension, disable it temporarily or set it to follow the system. If the browser has a manually configured proxy address, restore the system setting to avoid sending requests to another port.

Next, check the routing mode. For everyday use, choose rules that match your needs and note the name of the selected rule set. To find out why a particular destination connects directly, temporarily use a rule that routes all intercepted traffic through the proxy and compare the results. Rule names and default rule sets vary by version, so do not rely on the label alone. Global proxy routing helps narrow down problems; it does not prove that every app is being intercepted.

You do not need to enable TUN for the first test. The system proxy is enough to check a browser that normally follows system settings. TUN involves a virtual network interface, permissions, DNS, and system routing. Changing both methods at once makes troubleshooting harder. If an app does not follow the system proxy, finish the connection checks in this guide first, then see the configuration reference for traffic capture and routing options.

v2rayNG: Use VPN mode and leave app filtering off

In v2rayNG settings, check the operating mode and start with VPN mode. It uses Android’s VPN interface to receive traffic; it does not mean you have purchased a separate service. With “Proxy only,” the client mainly provides a local proxy endpoint, and other apps will not use it automatically. Unless you already know how to configure a proxy for the target app, keep VPN mode for your first setup.

Next, open routing settings, choose rules that match your needs, and leave per-app proxying off for now. If you have already set up an app list, check whether it means “proxy only selected apps” or “bypass selected apps”—these do the opposite. If your test browser is excluded, the connection indicator may look normal even though the results are unexpected. Keep one active configuration and one clear set of routing rules so you can assess the connection in the next step.

03 Connect and check the logs

You have an active server and have chosen how apps will send traffic to the client. Before connecting, quit other tools that manage the system proxy or occupy the VPN interface, while keeping essential security settings enabled. If multiple clients change proxy settings at once, one may appear to be running while requests actually go through another. Do not change ports, protocol options, and DNS all at once; first start the current configuration as it is.

v2rayN: Confirm the core is running, then enable the system proxy

v2rayN usually loads the core when it starts or when you switch the active server, so there may not be a separate Connect button. Return to the main window, confirm the active entry, and check the logs at the bottom for configuration parsing errors or a core exit. If your version offers a core restart command, use it once after selecting the entry. Then enable the system proxy as described above and check its status in the tray menu. An open window alone does not mean the core is listening properly.

If the logs show that a local listening port is already in use, check for a second client instance or another proxy tool. Close the duplicate first, then restart the core; do not leave the conflicting program running and change ports at random. If you must change the local port, update the system proxy and any apps with a manually configured proxy to use the new listening port. If the core starts but an app still uses the old port, the symptoms can look much like a remote connection failure.

v2rayNG: Tap Connect and approve the system request

Return to the v2rayNG main screen, confirm the selected configuration, and tap Connect. The first time you use VPN mode, Android will show a VPN connection request. Confirm it comes from the client you just opened, then allow the connection. If you cancel, the server configuration remains in the list, but Android has not started routing app traffic through it. Tap Connect again and approve the request; there is no need to reimport the subscription.

After connecting, check the client status and Android’s VPN indicator. Android usually allows only one active VPN service. If another app has claimed the interface, stop that service and reconnect in v2rayNG. Work profiles or device management policies may also restrict VPN permission; check system settings rather than repeatedly changing server fields.

If the connection works in the foreground but drops in the background, check Android’s battery optimization and background activity restrictions for the client. Allow background activity if needed and see whether the problem recurs; there is no need to change every battery setting at the outset. The VPN icon only confirms that local traffic capture is active, not that the remote server is reachable. Verify that with a real request and the logs in the next step.

04 Verify the connection and troubleshoot issues

The goal is to confirm that a specific request from a specific app reaches the client and uses the expected route—not merely that the Connect button changed color. First check that the device’s regular network access works, then test a destination expected to use the proxy. Open a new tab and make a fresh request to a known, trusted destination. A page already loaded may be cached and is not proof of a new connection.

Check the request, then compare the route

On desktop, open the target in a browser configured to follow the system proxy while watching the v2rayN logs. On Android, make sure per-app rules do not exclude the test browser, then check v2rayNG’s connection status or logs. The default log level may not record every successful request, so no new log entry alone does not prove the client failed to capture traffic. If needed, temporarily increase log verbosity, then restore the original setting to avoid recording excessive browsing activity.

With split routing, it is normal for rules to send ordinary websites directly. To test the proxy exit, use a destination expected to match a proxy rule, or briefly switch to a rule that proxies all intercepted requests and compare. If the test works with the comparison rule but not the original, check rule matching and DNS handling first. If both fail, check the active server and remote reachability. Do not mistake a successful direct connection for a successful proxy connection, or normal split routing for a failed connection.

Compare results with a disconnect and reconnect

Note the current mode, temporarily stop the connection or turn off the system proxy, and request the same destination again. Restore the connection and repeat the test. Interpret the results in context: some destinations work both directly and through a proxy, so success in both tests does not mean the client is inactive. An IP lookup can provide supporting evidence, but routing rules, browser cache, and destination choice affect the result. Prioritize checking that the app settings and route match your expectations.

If no websites load after connecting, check in this order: local traffic capture → active configuration → remote connection. On desktop, make sure the core is still running and the system proxy port matches the listening port. On Android, confirm the VPN service is active and the test app is included. Then verify that a subscription entry is actually active, and use the logs to distinguish timeouts, name resolution failures, and TLS handshake errors. For certificate errors, check the system time and configuration source; do not bypass verification by disabling it.

Change one setting at a time

If only one app fails, check whether it has its own proxy settings or is excluded from traffic capture. If the same server fails in multiple apps, test another entry you know is valid. Record each individual change, such as switching servers or adjusting routing. Do not reinstall the client, change DNS, and toggle TUN all at once. Changing one variable at a time makes it easier to identify the layer causing the issue.

When finished, you should be able to identify the active server, traffic capture mode, routing rules, and test results. Save this working setup before considering subscription auto-updates, per-app proxying, or more advanced routing. If you use v2rayN’s system proxy, clear the proxy setting it applied before quitting. On Android, stop the VPN connection in the client when you are done. This gives you a known starting point next time instead of leaving proxy settings behind.

What to read next after basic setup

To understand how inbounds, outbounds, routing, and DNS work together, see the configuration reference. Not sure which client fits your desktop or Android device? Read the client comparison. When switching devices, check the operating system and processor architecture on the downloads page; do not reuse an installer intended for another device.