Before You Begin: The Client and Subscription URL
Have the client installed and a subscription URL from a trusted configuration provider. If you have not installed the client yet, go to the client download page to choose an installer for your device, then return here. The client reads configurations and runs the proxy core; installing it alone does not provide a working connection. Check with your provider that the subscription is valid and the service is available.
Allow about ten minutes for the initial setup, and make sure your device can access the internet. Temporarily quit other tools that manage proxy or VPN connections to avoid multiple programs changing your network settings at once. Subscription URLs may contain personal access credentials; do not post them in public comments, online conversion tools, or screenshots. When troubleshooting, share only the error type and relevant setting names. Remove URLs, identifiers, and authentication details before sharing logs.
Step 1: Import a Subscription and Check the List
v2rayNG: Open “Subscription Group Settings”
Open v2rayNG, expand the sidebar, and tap “Subscription Group Settings.” On the groups screen, tap the add button. Enter a descriptive note for the group, then paste the full subscription URL into the subscription URL field. The note is only a local label; it does not affect connection settings. The URL is what the client uses to fetch configurations. Check the beginning and end of the pasted URL, remove extra spaces, and do not include explanatory text, quotation marks, or line breaks.
After saving the group, return to the main screen, open the menu in the upper-right corner, and select “Update subscription.” If your version offers separate options to update the current group or all groups, update the group you just added. The client fetches the subscription and creates the configuration list only after this step, so saving a group and importing its configurations are separate actions. When the update is complete, switch to the group, confirm that entries appear, and select one as the active configuration.
v2rayN: Save the Group, Then Update the Subscription
In v2rayN, open the “Subscription Group” menu at the top, choose “Subscription Group Settings,” and add a group with an alias and subscription URL. Save it, return to the main window, then choose “Update subscription” from the “Subscription Group” menu. Some versions offer separate options to update through the proxy or without it. Before you have a connection, if the subscription URL is directly accessible on your current network, choose the update option that does not use the proxy. This avoids relying on a connection that has not been set up yet.
After the update succeeds, find the imported configuration in the main list and use the right-click menu to select an option such as “Set as active server.” Simply selecting a row with the mouse may not make it active; check the client’s active status indicator. Start with a configuration your provider identifies as working. There is no need to change transport, security, or authentication settings during initial setup; subscriptions usually include these parameters.
Know the Difference Between a Subscription URL and a Single Share Link
A subscription is usually an updateable URL, while a single share link often begins with vmess://, vless://, trojan://, or ss://. If you received a single share link, use the client’s “Import from clipboard” option instead of pasting it into the subscription URL field. A QR code may also contain just one configuration; scanning it successfully does not mean you have created an updateable subscription group.
If the list is still empty after an update, first check that the URL is accessible, the subscription has not expired, and the provider offers a format compatible with your client. A page that opens but shows a login screen or an error is not a valid subscription. Do not add the same group repeatedly or delete all existing configurations as a first step. For more on format differences, see Subscription Import Options and Format Guide. Once configurations appear and you have selected an active one, move on to proxy mode settings.
Step 2: Choose a Proxy Mode and Routing Rules
First decide how apps hand requests to the client; then decide how the client forwards those requests. The first is the connection method, while the second is routing. On desktop, “Set system proxy” and the “Global” routing mode operate at different levels. If apps are not routed through the client, the local core may run normally but never receive their requests.
v2rayNG: Choose VPN Mode for the Initial Setup
In the v2rayNG sidebar, open “Settings” and find the options for running mode. For the initial setup, choose “VPN mode” so Android can route eligible traffic to the client through the system VPN interface. “Proxy-only mode” mainly starts a local proxy endpoint that apps must be configured to use; it is not a better choice just because its name sounds simpler. If you have changed modes before, stop the service first, change the setting, and restart.
Also check “Per-app proxy.” For initial testing, leave it off to reduce variables related to app scope. If you need it enabled, check whether the list means “proxy selected apps” or “bypass selected apps,” and make sure your test browser is included as intended. An excluded app may connect directly even while the VPN is active. That points to a scope setting, not necessarily a failed subscription.
v2rayN: Configure the System Proxy and Routing Separately
Find “System Proxy” in the v2rayN main window or tray menu. Note where it is; after the core starts in the next step, choose an option such as “Auto configure system proxy.” The client sets the current user’s system proxy to a local listening address. Browsers and apps that follow the system proxy will use it, but software with its own proxy settings and some command-line tools may not.
Next, check the client’s routing selection. For everyday browsing, start with “Bypass mainland China” or the equivalent routing preset, which sends matching destinations directly and handles other requests according to the preset. Follow your provider’s compatibility guidance if it specifies different rules. To test the proxy exit, you can temporarily choose “Global” routing, which sends requests received by the core through the proxy outbound. Global routing does not force every app to use the system proxy; apps that do not use it may still bypass the client.
Preset names may vary between versions, sometimes appearing in English or with slightly different wording. Check the direct, proxy, and block rules instead of relying on the name alone. Routing order, domainStrategy, and protocol capabilities are outside the scope of these basic steps. For advanced changes, see the Protocols and Core Handbook. Once the connection method and routing are set, start the active configuration.
Step 3: Connect and Check the Status
Android: Approve the System VPN Request
Return to the v2rayNG main screen, confirm that the selected configuration is the one you just chose, and tap the connect button. The first time you run VPN mode, Android displays a system prompt saying the app wants to set up a VPN connection. Confirm that v2rayNG is the app making the request, then approve it. This permission creates a local VPN interface; it is not a subscription account sign-in, and you do not need to submit the subscription URL to Android.
After starting, check whether the client shows a running status and look for a connection indicator in the system status bar or VPN settings. This confirms only that the local VPN interface is up, not that the remote connection works. If the system says another VPN is in use, stop the conflicting connection and try again. Avoid repeatedly starting multiple VPN tools; it becomes difficult to tell which app is routing your traffic.
Desktop: Set the System Proxy After the Core Starts
v2rayN typically starts or reloads the core when the program is running and an active configuration is set. Check the status message in your version. Look at the main window status or logs and confirm there are no recurring configuration parsing errors, core exits, or port conflicts. Then choose an option to set the system proxy from the “System Proxy” menu and test in a browser. If the client is running but traffic still follows its original route, first check whether the system proxy was actually set rather than immediately changing connection parameters.
If a listening address is already in use, check whether you opened the client more than once or another proxy tool is still running in the background. Initial setup usually does not require “Allow connections from the LAN” or a mode that takes over traffic and requires extra permissions. Expand the listening scope only when you understand why it is needed. Apps on your device can connect to a proxy on the same device; other devices on the network do not need access to that port.
Use Logs to Troubleshoot, Not to Declare Success from One Message
Once the client is running, open its log and visit a web page again. Check for DNS, handshake, or timeout errors around the time of the request. If the log shows a local listener but no new requests, the browser may not be using the proxy, or the log level may hide access records. Use the exit test below to help determine which. If every request produces the same remote connection error, check the device’s clock, configuration validity, and network access.
Do not treat a single test result or a response time in the list as the whole story. Basic connectivity tests and real web browsing may use different destinations, protocols, and DNS routes. Leave other settings unchanged and verify an actual app in the next step. If the connect button immediately returns to the stopped state, the permission prompt keeps reappearing, or the core repeatedly exits, see the FAQ: Setup and Troubleshooting category and follow the checks for the specific symptom.
Step 4: Verify That the Browser and Apps Are Using the Proxy
Compare Before and After in the Same Browser
Choose a website you can normally access and confirm it still opens after connecting. Then visit a trusted IP lookup page and compare the displayed exit address in the same browser with the client off and on. Note the routing preset before comparing. If the lookup page is routed directly, seeing the same exit address does not prove the proxy is failing. If needed, temporarily switch to Global routing, reload the page or start a new browsing session, and check the logs as well.
A changed exit address means that browser request used a different network exit, but it does not mean every app is using the proxy. The lookup page may be cached, and different destinations may take different routes, so consider the page result, routing settings, and client logs together. There is no need to share your exit address or enter subscription URLs or credentials on unfamiliar websites. When testing is complete, restore the everyday routing preset you noted in Step 2.
Check Other Apps After the Browser Works
On Android, open an app you actually need and perform a network action. If the browser works but the app’s behavior is unchanged, check the include and exclude scope under “Per-app proxy,” and see whether the app has its own network settings. On desktop, disable browser extensions that may change proxy settings and confirm the browser uses the system proxy, then test other software separately. One app working proves only that its own network path works; it says nothing about other programs.
Terminal requests need to be checked separately. Setting the system proxy in v2rayN does not mean every terminal tool will use it; some rely on their own proxy options or environment variables. For the initial setup, focus on browser testing rather than adding terminal settings to the same troubleshooting session. To route command-line tools, see System Proxy Troubleshooting for Browsers and Terminals. Use the local port shown by your client instead of copying a port number from another device.
Everyday Use and How to Disconnect After Testing
After the initial test succeeds, keep the working group, active configuration, and routing combination. When the subscription changes, select “Update subscription”; you do not need to create the group again each time. After updating, check that the active configuration still exists, as your provider may have removed or renamed it. When troubleshooting, change one thing at a time: try another configuration, test the network, then adjust routing or DNS. This makes it easier to identify what caused the change.
When you are done, tap Stop in v2rayNG and confirm that the system VPN is disconnected. In v2rayN, first choose “Clear system proxy” from the “System Proxy” menu, then quit the client. This prevents apps from pointing to a local port that is no longer running. Clearing the system proxy does not delete subscription or routing settings; you can use them again next time. If another management tool controls your system proxy, note the original settings and restore its usual configuration after testing.
The basic setup is complete: the subscription updates, configurations appear, the active configuration is clear, apps connect as expected, and real requests can be verified. Adjust features as needed; there is no need to enable every option at once. For protocol types and differences between Xray and V2Fly, see the Protocols and Core Handbook. For unstable connections, failed subscription updates, or background disconnects, visit Frequently Asked Questions and troubleshoot by symptom.