v2rayN for Desktop / v2rayNG for Android

Import a Subscription and Connect

Follow this order: import a subscription → choose a proxy mode → connect → verify. Get one node working before changing routing or other settings.

Subscription Groups System Proxy Routing Checks

Before You Start: Get the Client and Subscription Ready

If you haven’t installed a client yet, visit the client download page and choose the package for your operating system. Use v2rayN on desktop or v2rayNG on Android. This guide starts with a client that opens successfully and follows the usual first-time setup. If you already have an older configuration, note the group, node, and routing names you use before making changes so you can find them again.

The client and the connection service are separate. After installing the app, you’ll need a subscription URL you’re authorized to use or a complete node share link. A subscription URL retrieves and updates a node list; a node link describes a single connection. This site provides client downloads and setup instructions, not subscription accounts. Don’t use a general information page or login page as a subscription URL, and never post a subscription link containing access credentials in a public forum.

For this setup, use just one proxy client. If other VPN or traffic-routing tools are running on the device, pause them to avoid conflicts over permissions and traffic. Keep automatic time synchronization enabled and make sure the device can access the local network before you turn on the proxy. Then start with the subscription group below. There’s no need to edit JSON or enable TUN upfront.

Step 1: Import a Subscription and Update Nodes

v2rayN: Add a Group, Then Update It

Open the v2rayN main window, go to Subscription Group, and select Subscription Group Settings. Add a group. Use any memorable label for the group, such as “Daily use,” then paste the full URL from your service provider into the subscription URL field. Check for spaces at either end and make sure the URL parameters are intact, then save. This only saves the update source; the node list won’t change until you run an update.

Return to the main window, select the group you just added, and update it from the Subscription menu. If you see options for updating the current subscription or all subscriptions, update only the current group for now so the result is easy to identify. If you don’t have a working connection yet, try updating without a proxy first. If the URL requires an existing proxy, use another verified configuration rather than relying on nodes you haven’t retrieved yet.

When the update finishes, check that the selected group contains entries such as node names, protocols, and addresses. Don’t rely only on a message saying the operation completed: the group needs selectable entries for the update to have returned usable data. If the list is empty, check the log at the bottom of the window or open the log view. A timeout, an unparseable subscription, and expired account access are different issues; follow the relevant error rather than trying to fix it by adding the same group again.

v2rayNG: Save the Subscription, Then Update the List

Open the v2rayNG side menu and go to Subscription Group Settings. Tap the add button, enter a label and subscription URL, and save. Return to the main screen, open the top-right menu, and choose an option such as Update Subscription or Update Current Group Subscription. Wait for the update to finish, then check the nodes in the group. Seeing the URL on the subscription settings page only confirms that it was saved—it doesn’t replace this update step.

If you have a single share link starting with vmess://, vless://, or trojan://, don’t paste it into the subscription URL field. Copy the link, then use an option such as Import from Clipboard in the main screen’s add menu. Scan the QR code if you have one. A single link usually won’t update automatically with a subscription; if its settings change, import it again or follow the provider’s instructions.

Before moving on, confirm two things: you’re viewing the right group, and it contains at least one selectable node. The provider can choose any name for a node; its name alone doesn’t show that the connection works. Next, decide how traffic enters the client and how it’s routed, then select a node and connect.

Step 2: Choose a Proxy Mode and Routing

“Proxy mode” can refer to two different things. First is the traffic entry point: apps send requests to the client through the system proxy or the system VPN interface. Second is routing: after receiving a request, the client decides whether to connect directly, send it through a proxy node, or block it. Selecting a routing preset doesn’t send browser traffic to the client by itself. Likewise, enabling the system proxy doesn’t mean every request goes through a remote node.

v2rayN: Start with the System Proxy

Find System Proxy at the bottom of the v2rayN main window or in the tray menu. Choose an option that enables it, such as Set System Proxy Automatically. Labels vary by operating system and version; the goal is to let apps that follow system proxy settings connect to the client’s local endpoint. If the menu says Clear System Proxy, that usually means those apps will stop using the endpoint automatically. It isn’t a button for choosing a remote node.

For routing, start with one of the client’s preset rules. Common options include bypassing the local network, routing by region, or proxying all traffic. A sensible default is usually best for everyday use; there’s no need to change domain policies, DNS, and rule order all at once. To check whether a site is being routed directly, you can temporarily switch to global proxy for comparison. Restore your original rules after the test so you don’t mistake a troubleshooting setting for a permanent configuration.

The system proxy applies mainly to apps that honor that setting. Command-line tools, some games, and apps with their own proxy settings may ignore it. For the first test, use a browser that follows the system proxy rather than enabling TUN to solve every issue. TUN uses a virtual network interface and involves permissions and traffic routing, so configure it separately after confirming that a standard connection works. For more detail on the configuration structure, see the routing section of the JSON guide.

v2rayNG: Check Routing and Per-App Settings

In v2rayNG settings or routing settings, keep the default preset for now. Check that rules such as “Proxy only selected apps” or “Bypass selected apps” aren’t enabled unexpectedly. They work in opposite ways: the first can keep unselected browsers out of the proxy, while the second can send selected browsers directly. If you’re unsure, turn off per-app filtering for the first test and add apps one at a time after the connection works.

The v2rayNG connect button starts Android’s system VPN interface. The routing preset determines what happens to traffic that enters through it. A VPN icon in the status bar doesn’t mean every request uses a remote node; traffic matched to a direct route still connects directly. For now, note the current routing preset and leave the other settings unchanged so you can compare the results later.

Step 3: Select a Node and Connect

v2rayN: Set the Active Node and Check the Proxy

Return to the node list and select a node with a normal service status and complete settings. In v2rayN, use the right-click menu option such as Set as Active Server to enable it. If the interface shows a keyboard shortcut, you can use the one for your version. Selecting a row isn’t the same as setting the active node. Afterward, confirm the active marker or status bar shows which entry the client is using.

If your version supports testing, run a connection or latency test once. Treat the result as a preliminary check: a failure may reflect an unsuitable test target or method, and a successful test doesn’t replace opening a real webpage. For your first connection, choose a node with clear settings that the provider has confirmed is valid. Avoid testing every node at once, which can make test requests hard to distinguish from normal traffic in the logs.

After you set the active node, the client usually starts or reloads its core. Check that the system proxy from Step 2 is enabled and look for startup errors in the logs. If a local port is already in use, exit other proxy apps and try again. If the logs report a configuration parsing or field error, check the source and format of the imported node. Don’t work around unclear errors by disabling security software or widening the listening address. Refreshing the browser won’t help if the core isn’t running correctly.

v2rayNG: Select a Node and Approve the VPN Request

On the v2rayNG main screen, tap the node you want to use and make sure the selection indicator appears on that entry. Then tap Connect. The first time you connect, Android displays a VPN connection request. Confirm that v2rayNG is the app requesting access, then allow the connection. If you previously canceled, tap Connect again in the client; there’s no need to delete the subscription or reinstall the app.

After connecting, check the button state, persistent notification, and VPN icon in the system status bar, then review the client logs. If Android says another VPN is running, stop that connection before starting v2rayNG again. Most standard Android devices can’t run two VPN or traffic-routing apps as intended at the same time. When switching between them, confirm which app is handling the connection instead of relying on whether an app is still open in the background.

Keep the client running in the background while you briefly switch to the browser for the next test. If the connection starts but stops soon after the screen locks or you switch apps, check v2rayNG’s background activity and battery restrictions. Allow background activity if needed; there’s no need to change every battery setting upfront. At this point, the goal is to have the core running, a node selected, and the traffic entry point enabled. A “running” status alone doesn’t prove that the remote connection works.

Step 4: Check That the Proxy Works

First open a webpage that normally works without a proxy to confirm the connection setup hasn’t disrupted basic network access. Then open a site that should use the proxy under your current rules. Test both in the same browser and on the same network; don’t switch Wi-Fi or nodes between tests. A page loading is only the first check. Compare the result with your routing expectations and the logs to confirm that the request took the intended path.

If your desktop browser has an extension that manages proxy settings, set it to use the system settings or pause it before reopening the page. A browser-specific proxy can override the system proxy configured by v2rayN. Command-line tools may also use their own proxy environment variables, so a working browser and a failing terminal don’t necessarily indicate a node problem. Verify the browser first, then check the proxy settings of individual apps as needed.

Return to the client logs and check for new connection entries from your test, including the outbound tag or routing destination. Log fields vary by core, log level, and client version. If detailed request records aren’t visible, that alone doesn’t prove traffic never reached the client. Check for errors first, then temporarily increase the log detail if needed, repeat the test once, and restore the original setting. Before sharing logs, redact subscription URLs, account identifiers, and remote connection details.

For a clearer comparison, stop the connection, close the test page, and reopen it. Then reconnect and repeat the same test. Avoid reusing an existing long-lived connection or cached browser result. Checking your public IP also has limits: the lookup site may be routed directly by your current rules. An unchanged IP doesn’t necessarily mean the client has failed; first check which routing rule should apply to that request.

If the logs report a DNS resolution failure, confirm that the underlying network works, then check whether the DNS settings were changed manually. For a remote connection timeout, first verify the node address, port, and service status. For a handshake or authentication error, check whether the subscription has expired, whether the device clock is accurate, and whether the node settings are complete. Don’t change protocol, transport, and security options just because you see a timeout. These settings usually need to match the server; changing them at random only adds more variables.

Once the test succeeds, note the working group, node, proxy entry point, and routing preset, then restore your usual routing rules. Use this working setup as a baseline if you later enable per-app proxying or adjust rules, changing one thing at a time. Subscription updates refresh nodes; they don’t update the client app. To upgrade the client, visit the client page and choose the package for your operating system. Keeping these tasks separate makes changes easier to troubleshoot.

After completing these four steps, everyday use usually comes down to updating the subscription, selecting a node, and connecting. For custom inbounds, outbounds, DNS, or rule order, read the JSON configuration guide section by section. If you just need a reminder of the steps, return to the guide’s table of contents at the top; there’s no need to rewrite the entire configuration for a basic connection.