1. Import a Subscription and Select a Configuration
Before you begin, get a subscription URL from your provider or a complete node share link. The client manages configurations and connections; installing it does not provide a remote service. A subscription URL retrieves and updates multiple configurations, while a share link usually describes a single node. Import them through different options. Don’t paste your provider’s website login URL into the subscription field, or include explanatory text with the URL.
v2rayN: Save a Subscription Group, Then Update It
Open v2rayN, find Subscription Group or Subscription Group Settings in the top menu, and choose Add. Enter a recognizable name in Remarks, paste the complete subscription URL into the address field, and save. Saving creates the group but does not download configurations. Back in the main window, open the subscription menu and update the group you just added. For your first connection, update without using a proxy. If your provider requires the subscription URL to be accessed through a proxy, you’ll need an existing working connection.
After the update, the main list should show details such as node names, protocols, and addresses. If it’s still empty, check the log or update message to determine whether the request failed or the response couldn’t be parsed. For a request failure, check that the URL is complete and hasn’t expired, and that your network can reach it. For a parsing error, ask your provider whether the subscription format is supported by this client. Repeatedly clicking Update won’t fix an invalid URL or format.
Select a configuration from the list, then use the context menu to choose Set as active server or the equivalent option. Confirm that the active marker moves to the intended row. Highlighting a row alone may not switch the active configuration. For your first setup, pick one configuration and keep it selected so you can tell which settings affect the results.
v2rayNG: Add a Subscription, Then Update It from the Main List
Open v2rayNG, go to Subscription Group Settings in the side menu, tap Add, enter a name and subscription URL, then save. Return to the main screen and choose Update subscription from the top-right menu. If you can update a specific group, select the one you just added. When the nodes appear, tap the one you want to make it the selected configuration. This selects a configuration but does not yet route device traffic through it.
For a single share link, copy the complete link and choose Import from clipboard from the Add menu. Use the scan option for a QR code. Before and after importing, check that the protocol, server address, and port match your provider’s instructions. Subscription URLs and share links may contain access credentials; don’t post them in public comments or screenshots. To clarify the difference between subscriptions, nodes, and cores, see the glossary. Once you’ve confirmed the configuration, continue to proxy mode settings.
2. Choose a Proxy Mode and Routing
There are two separate questions to answer: how app requests reach the client and which outbound route they use once they get there. The system proxy or Android connection service handles the first; routing rules handle the second. Switching routing to Global does not automatically connect every app. Likewise, an app can send traffic to the client and still be routed directly by the rules.
v2rayN: Use the System Proxy for Your First Test
Find the local listening port settings and note the actual HTTP or mixed-proxy port. Defaults vary by version, so check the current interface and logs. For example, 127.0.0.1:10808 is just a sample local address; it doesn’t mean the current port is necessarily an HTTP proxy. The proxy type used by an app must match the protocol supported by that inbound. For your first setup, keep the listener local; there’s no need to enable Allow connections from the LAN.
Next, find System Proxy at the bottom of the main window or in the tray menu, then choose Set system proxy automatically or the equivalent option. “Automatically” usually means the client configures the system proxy; it does not mean traffic is automatically split by website. Routing mode controls that. If the system asks for permission to change network settings, confirm that the request came from the client you just started. For your first test, use a browser that follows the system proxy. Skip TUN for now, and don’t also configure a manual proxy in the browser.
Then open Routing or Routing Settings and choose a preset for your needs, such as a split-routing mode that sends local network addresses directly. Preset names can change between versions; read the descriptions instead of guessing what they cover. To confirm that a test site uses the proxy, temporarily switch to a proxy-first mode, then restore split routing. Leave custom domain lists, rule priorities, and DNS policies unchanged for now.
v2rayNG: Check Routing and Per-App Proxy Scope
Open Settings or Routing Settings in v2rayNG and choose a routing preset for your needs. If per-app proxy is enabled, check whether it proxies only selected apps or bypasses them; the same app selection means the opposite in each mode. Make sure your test browser is included in the apps being handled, or its results won’t show whether the current node works.
For your first setup, turn off complex app filtering so it’s easy to tell which traffic is covered. Add app selections back later if needed. Stop any other VPN service on the device first to prevent it from replacing the connection. For more on Global, Rule, and Direct modes, see the glossary. To write rules individually, see the routing configuration reference. Now that the traffic capture and routing modes are set, you’re ready to connect.
3. Connect and Check the Logs
Before connecting, confirm the active configuration again so you don’t accidentally use an old entry after updating the subscription. When troubleshooting for the first time, don’t change the node, routing, and DNS settings all at once. Keep the configuration fixed and observe what happens. A running status only shows that the local service started; it doesn’t prove that the remote connection or web access works.
v2rayN: Check That the Core Is Running and Listening Locally
Some v2rayN versions start or reload the core as soon as you select an active server, with no separate Connect button. Open the log area in the main window and check the latest startup entry for errors such as a configuration parse failure or a local listener failure. If the interface says the core isn’t running, use the client’s restart service or reload configuration option. Don’t keep refreshing pages while the system proxy points to localhost but the core isn’t running.
If you see a port-in-use error, close other proxy programs that may be listening on the same port, then restart the service. If you need to change the local port, save the new value in the client and reapply the system proxy. Update any browsers or apps you configured manually as well. Changing only the inbound port leaves apps sending requests to the old address, which can look like a remote node failure.
For errors related to protocol fields or transport settings, first check whether the imported configuration is supported by the current core. Don’t delete unfamiliar fields and hope for the best, and don’t change the server port supplied by your provider. The client interface may let you save a configuration even if the selected core doesn’t support every field. Compare it with the outbound configuration reference. This guide doesn’t require you to write a complete config.json by hand.
v2rayNG: Approve the System Connection Request
Return to the v2rayNG main screen and tap Start. On the first launch, Android usually displays a VPN connection request. Check the app name and prompt, then approve it. After approval, the button or running status should change, and Android may show a VPN status icon. This enables Android’s traffic capture service; it doesn’t confirm that the remote service passes an access test.
If the button quickly returns to the stopped state, open the logs and look for the first clear error before the service stopped. The connection service cannot keep running if you don’t approve the system prompt. Another VPN service on the device may replace this connection; check the system’s network settings. If it starts successfully but disconnects frequently in the background, check battery and background activity restrictions. Don’t change every battery-saving option at the outset. Keep the log open and test the connection with a real request.
4. Verify Access and the Expected Outbound Route
Open a browser that’s included in the proxy scope, create a new tab, and visit a familiar HTTPS site that’s currently available. Then try another unrelated site. Use fresh requests so cached pages don’t give a false impression of a working connection. Loading a page is only the first check; also confirm that the request used the expected outbound route for the selected routing mode, rather than succeeding through a direct connection.
Match Browser Activity to the Logs
Note the time before refreshing the page, then check the client logs for entries from around that time. If access logging is available and enabled at the current log level, you should see the destination domain or connection target, along with relevant inbound and outbound markers. If the default logs don’t show a request, don’t assume traffic never reached the client. Check whether access logging is enabled, then temporarily use an appropriate log level provided by the client. Logs may contain visited destinations; restore your usual settings afterward and hide addresses and credentials before sharing screenshots.
If there’s no matching request from the browser but other apps appear in the logs, check whether the browser has its own proxy settings or is excluded by per-app rules. On desktop, confirm that the system proxy still points to the port the client is listening on. On Android, check that the connection service is still running. Troubleshoot how traffic reaches the client before switching remote servers.
If the logs show requests but connections keep timing out, check the active node’s server address and port, and confirm that the provider’s service is operational. Compare with another known-working configuration. For a clear TLS certificate or hostname mismatch, check the system clock and the server name in the configuration; disabling certificate verification is not a general fix. If only some domains fail, investigate DNS and routing rather than resetting every setting.
Test Proxied and Direct Traffic, Then Disconnect
With split routing enabled, choose one destination that should be proxied under the current rules and another that should connect directly. Send a request to each and check the outbound route. Checking only the exit IP can be misleading: a particular lookup may have gone direct, and one result doesn’t represent every app. The client’s built-in connection test is only supplementary; a successful test doesn’t prove that browser traffic, DNS, and access to the destination site all work.
After testing, keep the node and routing combination you’ve confirmed works, then add per-app or custom rules as needed. Change only one setting at a time and repeat the same access tests to pinpoint the cause of any change. After future subscription updates, check that the active configuration still works; a familiar node name doesn’t guarantee that the server parameters are unchanged.
Finish by practicing a normal disconnect. In v2rayN, first choose Clear system proxy or the equivalent off option, then exit the client. If another tool originally managed the system proxy, restore its previous settings. In v2rayNG, tap Stop and confirm that the system connection indicator disappears. Closing a window, minimizing to the tray, and stopping the proxy are different actions. Knowing how to start and restore your setup completes your first configuration. For later changes to inbounds, outbounds, routing, or DNS, see the configuration reference; there’s no need to change everything during your first connection.