v2rayNG Subscription Setup
and Proxy Modes
Start with your saved subscription URL, then choose a mode, connect, and verify access. If the client is installed and your subscription is valid, the initial setup takes about 10 minutes. Network or configuration issues may require separate troubleshooting.
Before you begin, make sure the client opens normally, your device has internet access, and you have a valid subscription URL from your provider. If you haven't installed the client yet, choose the right installer for your system on the client downloads page, then return here. The client reads configuration and establishes connections; installing it does not automatically provide a working subscription.
Subscription URLs often contain account-specific parameters, so treat them like passwords. Don't post the full URL in public forums or share screenshots that reveal it. You don't need to change any server-side fields for this guide; save the existing subscription from the menu, keep the default settings, and verify each step. If you only have a single share link, use the clipboard import instructions below.
Import a Subscription and Update the List
You're done when configuration entries appear in the subscription group on the main screen—not just when the URL has been saved.
Open Subscription Group Settings
On the v2rayNG main screen, open the side menu and select “Subscription Group Settings,” then tap Add. Enter an easy-to-recognize label under “Remarks,” such as “Daily setup,” and paste the full subscription URL into “Optional address (url)” or the equivalent field. Labels can vary by version, but you need to enter a group label and subscription URL—not a single server's domain.
After pasting, check the beginning and end of the URL. Chat apps may include trailing punctuation when copying, and line breaks or spaces can also get into the address. Keep all parameters supplied by your provider; don't remove anything after the question mark. If the group has an “Enable updates” option, leave it on, then save. This only registers the URL; the server list may not have changed yet.
Return to the Main Screen and Update the Subscription
Return to the main screen, open the More menu in the top-right corner, and select “Update subscription” or a similarly named option. Some versions offer both a regular update and an update via proxy. If you haven't connected yet, use the option that doesn't rely on the current proxy. When the update finishes, select the group you just created and check that configuration entries appear. If you see a success message but the list is empty, make sure you're not viewing another group or a filtered list.
If the update fails, first check that your device can access the internet over a regular connection. Then check that the URL is complete and hasn't expired. If the subscription URL is only accessible through an existing proxy, you'll need a working configuration before you can update through that proxy; repeatedly tapping Update won't resolve this dependency. Don't treat an error page returned by the subscription URL as configuration to paste manually.
Tell Subscription URLs Apart from Single Share Links
Links beginning with vmess://, vless://, trojan://, or ss:// are usually single-server share links. Copy the entire link, then use the import-from-clipboard option in the main screen's Add menu. Don't paste it into the subscription group URL field. A single imported link won't receive subscription updates; if its details change, import it again or follow your provider's instructions.
v2rayN on desktop: Open the relevant “Subscription Group” menu at the top, go to group settings, and add an entry. Enter a label and subscription URL, then save. Next, use the subscription menu to update and check the server list. As on Android, saving the URL and fetching configurations are separate actions. Once entries appear, don't edit ports, transport settings, or security options yet; the next step is to configure the proxy mode on your device.
For the difference between subscriptions, nodes, and share links, see the glossary. If a URL has expired or returns an unsupported format, continue troubleshooting in the FAQ. The steps below assume the list has loaded successfully.
Choose a Traffic Mode and Routing Rules
First make sure requests from the app you're testing reach the client; then decide which requests should use the proxy.
Use VPN Mode on Android First
Open v2rayNG settings and find the operation mode or VPN settings. For a standard setup, choose “VPN” rather than “Proxy only.” VPN mode uses an Android system interface to receive traffic, making it suitable for testing browsers and everyday apps. Proxy-only mode usually provides a local proxy listener that apps must configure separately; it doesn't automatically route traffic from every app.
For the first test, turn off “Per-app proxy” so the browser isn't accidentally excluded. This disables per-app filtering, not the proxy itself. If you previously used bypass mode, switch back to a setting that doesn't filter by app, then add app rules after confirming the connection works. If another VPN service is running, stop it before starting v2rayNG to avoid confusion when Android switches VPN services.
Start with a Standard Routing Preset
Next, open routing settings and choose a standard preset provided by the client, such as bypassing LAN addresses. This usually keeps local resources like routers and printers directly accessible. Routing rules determine where requests go; VPN mode determines how traffic enters the client. They're not alternatives to each other. Choosing VPN mode doesn't mean every address will use the remote exit.
Keep the default domain strategy for now. There's no need to change AsIs, IPIfNonMatch, or IPOnDemand just to connect. Avoid importing multiple routing rule sets, adding custom DNS, and enabling extra filtering all at once. Keeping variables to a minimum makes it easier to identify whether a problem comes from the subscription, traffic mode, or routing.
Start with the System Proxy on Desktop
v2rayN on desktop: Keep the standard routing preset for now. After starting the core in the next step, select the option to configure the system proxy automatically from the main screen or tray menu. The system proxy provides an entry point for apps that respect the setting, but not every program will use it. Leave TUN off during initial setup and first establish a testable baseline in your browser.
If you later need to route apps that don't use the system proxy, see the relevant chapters in the beginner-to-advanced guide for TUN, permissions, and routing. Don't enable the system proxy, TUN, and a manually configured app proxy in the same attempt; combining these routes makes it harder to identify where requests are going. Save your settings, then return to the server list and select a configuration.
Select a Configuration and Connect
You're done when the client service is running and Android confirms the VPN is connected. You'll still need to verify actual access.
Select an Entry and Approve the System Prompt
On the v2rayNG main screen, tap the configuration you want to use and confirm that it appears selected. A long press may open multi-select or management options rather than activate the configuration, so look for the selected indicator. Then tap Start. The first time you use VPN mode, Android will ask to set up a VPN connection for the app. Check the app name and tap Allow.
After granting permission, check whether the Start button and client status have changed, and look for the system notification or VPN indicator. Its location varies across Android versions, and the running notification may be in the notification shade. The VPN indicator only confirms that the device's traffic-routing interface is active; it doesn't prove the remote configuration works or replace the web access test in the next step.
If Startup Fails, Check the Logs First
If the client stops immediately after you tap Start or reports a core startup failure, open the log screen from the client menu and look for the first relevant error near the time of the attempt. Configuration parsing errors, listener address conflicts, and connection refusals are different problems with different fixes. Note the error category before switching configurations. Don't reinstall the client as soon as you see a failure; you could lose useful diagnostic information.
If the logs mention a TLS certificate or handshake error, first check that your phone's date, time, and time zone are correct, then confirm the subscription is up to date. Don't disable certificate verification to hide the problem. Before sharing logs for help, remove the full subscription URL, account identifiers, and authentication fields. Keep only the error type and necessary context. For more detailed guidance, see the troubleshooting FAQ.
Keep the Client in the Foreground for the First Test
Once connected, leave the client running and switch to your browser to test access. Don't clear it from the background yet. If the connection drops only after the screen has been locked for a while, check battery restrictions and background permissions in Android's app settings, and adjust them based on the available options. First confirm it works reliably in the foreground; then troubleshoot background operation so you don't mistake a remote connection issue for a battery setting problem.
v2rayN on desktop: Set the target entry as the active server, check the status area or logs to confirm the core stays running, then enable the system proxy. Some versions restart the core automatically when you select a configuration, so there's no need to repeat the action. Keep v2rayN running in the tray during testing. Closing the window may minimize it to the tray, while exiting the program stops the service—make sure you know which action you're taking.
Verify Access and Check Your Network After Disconnecting
Test a regular webpage, the target address, and the app you actually use—instead of relying on the status icon alone.
Test a Webpage, Then the App You Use
Open your browser and visit a known-good HTTPS page first to confirm that your device has basic internet access. Then visit the destination that requires a proxy. Open a new page or refresh its content so cached data doesn't make an old page appear to work. One page loading only confirms that this particular request succeeded; other domains and apps may use different routes.
Next, open the app you actually intend to use and try an online action. If the browser works but one app doesn't, check whether per-app proxy filtering is still active, then see if the app uses its own proxy, DNS, or specialized network connection. On desktop, remember that some programs don't use the system proxy. If the browser works but one of these programs doesn't, check which traffic is being routed before assuming the subscription has failed.
Use the Exit IP and Logs as Supporting Evidence
To check whether a webpage is using a remote exit, use a trusted public IP lookup and compare the results before and after connecting, taking your routing settings into account. With split routing enabled, the lookup page may use a direct connection, so an unchanged IP doesn't necessarily mean the client isn't working. A changed IP only confirms the route used by that lookup request; it doesn't prove that every app's traffic is being routed through the proxy.
Check the client logs around the time of your test. If the current log level shows access records, use the destination domain and routing result as clues. If the logs show errors only, the absence of access records doesn't necessarily mean no traffic passed through. There's no need to keep verbose logging enabled; restore the usual setting after troubleshooting to avoid retaining sensitive connection details.
Change One Setting at a Time Based on What You See
If no pages load, stop the client and check whether regular internet access returns. If it doesn't, troubleshoot the device's network first. If it does, review the configuration and mode you just used. If only one configuration fails, try another entry in the same subscription group and repeat the test. Note the original setting and change just one thing at a time so you can compare results.
If only certain domains fail, check the routing rules and DNS settings. Don't change the domain strategy, remote address, and certificate options at the same time. The client's connection test can help narrow down options, but it may use a different destination from your actual app. A successful test doesn't guarantee the service you need is available. For details on DNS, route matching, and transport protocols, see the glossary; there's no need to adjust each setting during your first setup.
Stop the Service and Confirm Your Network Works
When you're done testing, return to v2rayNG on Android, tap Stop, and confirm that the system VPN disconnects. On desktop, first clear the system proxy set by v2rayN, then exit the client. Restore the previous value if you had a custom proxy before. Open a regular webpage after exiting to make sure a leftover proxy setting isn't sending traffic to a stopped local service.
At this point, the subscription is loaded, a mode is selected, the connection is running, and access has been verified. For everyday use, you usually only need to start the client when needed, update the subscription when your provider changes it, and check the logs if something goes wrong. For per-app controls, advanced routing, or TUN, work through the beginner-to-advanced guide one chapter at a time. For a specific issue, go straight to the FAQ instead of repeating every step.