v2rayN and v2rayNG
Subscription Import and Connection Guide
Start with an active subscription and follow the steps to import it, choose a mode, connect, and verify. Allow about 10 minutes for setup; download time and network issues are separate.
Before you begin, install the client and get a subscription URL or single share link from a trusted source. The client reads configurations and runs a local proxy; installing it does not provide access to a remote service. The provider manages the server addresses, credentials, and expiration dates in a subscription. This site does not provide them. Links may contain access credentials, so use them only in the client after copying. Do not post them in public chats, screenshots, or online conversion tools.
For this guide, use the default settings and one configuration to verify the connection. Avoid changing DNS, transport settings, the core, or advanced routing, and do not run both clients at once. That makes it easier to tell whether a problem is with importing, proxy access, or the remote connection. For installation permissions, CPU architecture, and platform-specific settings, see the complete installation and setup guide for all platforms.
Step 1: Import a Subscription
First, identify the type of link you have. A subscription URL usually starts with https://. The client fetches a set of configurations from it. A single share link usually starts with vmess://, vless://, or trojan:// and describes one connection directly. Do not judge by link length or mistake a webpage containing a login screen for a subscription. Each link type has its own import option. Choosing the wrong one may produce a format error or save successfully without adding any servers.
v2rayN: Add a Subscription Group and Update It
Open v2rayN and find Subscription Group Settings in the subscription-related menu. Choose Add. Give the group a recognizable name, such as “Daily,” then paste the complete subscription URL into the address field. Check that there are no extra spaces or line breaks at either end, and make sure you did not copy any surrounding instructions. Leave the other options at their defaults for now, save, and close the settings window. This saves the URL but does not fetch the subscription yet.
Return to the main screen, select the group you just created, and choose Update Subscription or the corresponding option to update the current group. Wait for the update to finish, then check whether configurations appear in the server list. If your version offers both a regular update and an update through proxy, try the regular update first when setting up for the first time. Updating through a proxy depends on an already working proxy connection; it does not bypass every initial import problem.
v2rayNG: Save the Subscription, Then Update from the Main Screen
Open the v2rayNG side menu, go to Subscription Group Settings, and tap Add. Enter a name and the subscription URL, tap Save or the confirm icon, then return to the main screen. Choose Update Subscription from the menu. If the interface lists groups, make sure the newly added group is selected. When the update finishes, you should see server configurations to choose from. If the group name appears but there are no server entries, the subscription probably has not been updated or the response could not be parsed.
For a single share link, copy the entire URL and use the client’s import-from-clipboard option. After importing, check that the protocol and address in the list match the provider’s details. You do not need to create a subscription URL for it. A share link imports a snapshot of the configuration and usually does not receive updates like a subscription group. If you need ongoing updates, ask the provider whether a subscription URL is available.
If the list is empty, check the update result or logs first. For a failed request, check that the device is online, the subscription has not expired, and the URL is complete. For a parsing error, confirm that the response uses a format supported by the client. Do not try to fix the issue by adding the same group repeatedly or deleting all existing configurations. Correct the original group and update it again. Once entries appear in the list, importing is complete even if you have not connected yet. Next, decide which apps and requests should use the proxy.
Step 2: Choose a Proxy Mode
“Proxy mode” can refer to two different things in the interface. One is the traffic access method, such as a system proxy or VPN, which determines whether app requests can reach the client. The other is a routing preset, which determines whether requests that reach the client go direct, through the proxy, or are blocked. Routing rules cannot apply if an app’s traffic never reaches the client; enabling an access method does not mean every request will use the proxy. Keeping these two layers separate makes troubleshooting easier than repeatedly switching to Global mode.
Choose a Route, Then Enable Traffic Access
For a first setup, try a “Bypass mainland China” or similar allowlist preset. Requests matching mainland China domain, address, and local network rules go direct; other requests follow the preset’s configured route. The exact behavior depends on the rules included in that version. Names like “allowlist” and “blocklist” are not a substitute for checking the rules. Leave the preset unchanged for now rather than editing custom rules. If you briefly switch to Global for troubleshooting, remember that it mainly changes routing; it does not automatically make every app follow the system proxy.
In v2rayN, open the system proxy options and choose “Set system proxy” or the equivalent automatic configuration option. After saving, browsers that follow the operating system’s proxy settings will usually send requests through the client. Some apps have their own proxy settings, while others ignore the system proxy, so one app’s behavior does not tell you how the whole device is configured. For the first test, use a browser known to follow the system proxy. Do not enable TUN or change listening ports yet. For broader app coverage, see the system proxy and TUN section of the complete setup guide.
v2rayNG: Check VPN Mode and Per-App Scope
In v2rayNG settings, check the operating mode. The standard VPN mode is fine for most setups. It uses Android’s VPN interface to route traffic to the client running on the device, but system authorization alone does not mean the remote service is working. Choose a suitable bypass routing preset as well. The preset and operating mode may be in different menus. After setting them, return to the main screen; you do not need to keep tapping Start at this stage.
If per-app proxying is enabled, check whether it is set to “only proxy selected apps” or “bypass selected apps.” The same checked list means the opposite in these two modes, so do not rely on check marks alone. For an initial setup, temporarily turn off custom per-app settings, then adjust them one by one after the browser test succeeds. If you need to keep the app scope enabled, make sure your test browser is included.
You should now be able to answer two questions: how does the target app connect to the client, and which routing preset handles requests once they reach it? Confirm both before selecting a server and connecting. If other VPN or proxy tools are active on the device, disconnect them first to avoid conflicts with the system proxy or VPN interface.
Step 3: Select a Configuration and Connect
Return to the server list and select one configuration that the provider confirms is still active and that uses a protocol supported by your client. For the first test, do not import a large number of duplicate entries or switch servers repeatedly. A name is only a label, not proof that a configuration works. A listed entry only shows that the client can parse it; the connection still depends on the remote service, network path, and authentication details. Complete the full process with one configuration before organizing groups.
v2rayN: Check the Active Server and Core Status
In v2rayN, use the list’s context menu or the relevant action to set a configuration as the active server. Some versions also let you switch by double-clicking; follow the interface prompts. Check the active-item indicator or status area to confirm that the target configuration is selected, not merely highlighted. v2rayN usually starts or reloads the core based on the active configuration, so it may not have a Start button like v2rayNG. Then confirm that the system proxy is still set to the automatic configuration option you chose earlier.
Open the log or status output and look for startup failures, port conflicts, or configuration parsing errors. A port conflict means the local listener did not start properly. Check whether the client is running more than once or another proxy app is using the same port. For a parsing error, return to the import step and check the protocol and parameters; switching browsers will not fix it. A running core only confirms that the local process started. Test a real request in the next step to see whether it can reach the remote service.
v2rayNG: Start the Client and Approve the VPN Request
On the v2rayNG main screen, select the target configuration and check that the selection indicator changes, then tap Start. The first time you connect, Android will usually show a VPN connection request. Make sure the request is from the v2rayNG app you are using, then allow it. If you deny permission, VPN mode cannot connect. After authorization, the client’s running status and button should change. Android may also show a VPN indicator in the status bar, depending on the device.
If the client stops immediately after starting, check the logs instead of repeatedly approving the VPN request. Another app may already be using Android’s VPN interface, the configuration may use unsupported parameters, or local initialization may have failed. If the client stays running but reports a remote authentication or handshake error, check that the subscription is up to date and the device date and time are correct. Some authentication and secure connections rely on accurate time; try enabling automatic date and time before connecting again.
The client’s built-in test can provide useful context, but a single test result does not replace checking access in an app. A failed test may be caused by the test address, remote connectivity, or the configuration. A successful test does not mean every app is connected. Do not change all your routing rules based on one test. Keep the current setup, make a real request in a browser, and use the logs to locate the issue.
If the connection stops soon after you switch apps, check whether Android is limiting the client’s background activity. Adjust the device’s battery settings to allow background use as needed; there is no need to change protocol parameters first. On desktop, check whether closing the window only minimizes the client to the tray and whether its process is still running. Once you have checked these states, move on to the final step and verify that everything works.
Step 4: Verify the Connection
Open your test browser. First visit a familiar site that normally works without a proxy, then visit one that you expect to access through the proxy. The first test checks that regular internet access still works; the second checks the intended route. Use the same browser, configuration, and routing preset for both tests so you are not changing multiple variables. One successful page load is only a basic check: cached content, existing connections, and app-specific proxy settings can all affect the result.
Use Requests and Logs to Check the Route
For a clearer comparison, stop the connection or clear the system proxy, record how the target page behaves, then reconnect and request the same page again. Use a new tab and, if needed, fully close and reopen the browser to reduce the chance of reusing an existing connection. The results may be the same: some sites work directly, so that alone does not prove the proxy is inactive. Check whether the request that should use the proxy reaches the client and follows the expected route.
If the client logs show routing or outbound tags, check which route the target request uses, such as direct, proxy, or another actual outbound name. Startup logs without request details do not show where traffic went; some log levels do not record every request. Temporarily switch to a more useful log level for troubleshooting, then restore the original setting. Logs may contain visited domains and subscription details, so remove URLs and credentials before sharing a troubleshooting screenshot.
Narrow Down the Cause Based on What You See
If the browser works but a specific app does not, first check whether the app follows the system proxy or is included in the Android per-app scope. Do not replace the subscription right away. If no pages load, stop the connection to restore regular internet access, then check whether the device’s basic network connection works. Once it does, check that the client core is running, the system proxy still points to the active client, and the remote configuration is valid.
If regular sites work but requests expected to use the proxy fail, focus on the active configuration and remote connection errors in the logs. Update the existing subscription, select the configuration again, and repeat the same test. To check whether the routing preset is sending the request to the wrong route, briefly switch to Global routing and compare the result, then restore the original preset. If Global works but the original preset does not, inspect the rule match. If both fail, adding more custom rules is unlikely to help.
The four steps are complete when the subscription update returns configurations, the client stays running, the target app connects to it, and the request succeeds as expected. There is no need to keep changing settings just to show a particular status icon. Note the working group, active configuration, routing preset, and access method. Change one thing at a time later so you can return to this baseline if a problem comes up.
Disconnect and Restore Your Normal Network Settings
When you finish on desktop, clear the system proxy in v2rayN before exiting. If you close the client but leave the system proxy enabled, the browser may keep sending requests to a local port that is no longer active, making regular sites appear unavailable. If you have already exited, reopen the client to clear the system proxy, or check for leftover settings in the operating system’s proxy options. Do not change other network settings unless you know what they do.
On Android, tap Stop in v2rayNG and confirm that the client has stopped and the system VPN status has cleared. Then visit a familiar site to check that regular internet access works. If Always-on VPN or “Block connections without VPN” is enabled in Android settings, you may also need to review those options after stopping the client. For platform-specific installation permissions, TUN routing, DNS, and more advanced rule matching, continue with the complete installation and setup guide for all platforms; there is no need to cover those topics in this first setup.