Before you start
Prepare the subscription URL and a supported client
Before you begin, make sure the client opens normally and that you have a complete subscription URL ready. A subscription URL is usually a link beginning with a network protocol; it lets the client retrieve a set of server configurations. It is different from a single node link: a subscription can replace or add multiple configurations during an update, while a node link represents only one connection configuration. See “subscription” and “node” in the glossary for the distinction.
When v2rayN opens for the first time, the main window usually contains a menu area, server list, and status bar. An empty list is normal because the client has not read any configurations yet. v2rayNG may likewise show an empty configuration list on first launch. Do not repeatedly toggle the connection button; without an active configuration, a startup action cannot establish a complete forwarding path.
Next, check that the subscription URL is complete. When copying it, do not omit any leading or trailing characters, and do not include punctuation automatically added by a chat window. Remove any spaces before or after the URL after pasting it. You can choose any subscription name, such as “Daily subscription”; it is only used for local identification and does not change the subscription content. If the client is not installed, open the download page, choose the package for your current system, install it, and then return here.
The setup is ready when the client opens, the subscription URL has been copied to the clipboard, and the current network can access the subscription source. Start by importing it below. Handle the proxy mode only after the import succeeds; clear results at each step make problems easier to locate.
Import a subscription
Add the URL and update the server list
v2rayN desktop workflow
Open v2rayN and find “Subscription groups” or a similarly named subscription management entry in the top menu. Open the subscription settings and choose Add. Enter a note name and the subscription URL: use the note to distinguish multiple subscriptions, then paste the complete URL prepared earlier. Save and return to the main window. At this point, the URL is only registered; the server list may still be empty because the client has not actively retrieved the remote content.
Open the subscription menu again and choose “Update all subscriptions” or update the current group. During the update, watch the bottom status bar or log messages in the main window. When it completes normally, the main list should contain several configuration rows, typically with fields such as alias, address, port, and transport. You do not need to edit these fields individually; use the subscription-generated configuration as a whole. Once the list contains entries, continue to the next stage.
v2rayNG Android workflow
Open v2rayNG, open the top-right menu, and add a subscription in the subscription group settings. Enter an easy-to-recognize name, paste the complete URL, and save it. Return to the configuration list, then choose Update subscription from the menu. When the update finishes, selectable configurations should appear. Some interfaces select the first item automatically; others require a manual selection. The connection step below confirms the active configuration again.
If no configurations appear after the update, do not immediately delete and reinstall the client. Reopen the subscription settings and check whether the URL was truncated, then confirm that the update targeted the group you just added. If the interface reports a request failure, parse failure, or empty response, record the exact message. A request failure usually points to network access or URL status; a parse failure is more likely related to the subscription format. These require different troubleshooting paths.
At least one selectable configuration appears in the client's server list, and the subscription update is no longer stuck in a loading state.
Once the server list appears, do not change the port, transport parameters, and routing settings at the same time. The goal of this quick start is to make the first connection with the original configuration supplied by the subscription. Change one condition at a time so you can quickly return to the last known state when a connection fails. The next step covers only the proxy mode, not the subscription's internal fields.
Choose a proxy mode
Use the system proxy for the first setup
A running client does not necessarily mean that app traffic is being handled by it. The proxy mode determines which traffic enters the local proxy port and whether the client changes network settings at the system level. For a first setup, the system proxy is recommended because its scope is clear and it is easy to disable and restore. Browsers and desktop apps that follow system proxy settings will typically use it directly.
In v2rayN, check the bottom status bar or system tray menu for options related to “System proxy,” then choose automatic system proxy configuration or enable the system proxy. Menu wording may vary slightly by version, but the status should change from disabled to enabled. Keep the default routing mode for now, and do not enable multiple overlapping proxy tools, which can repeatedly overwrite system settings.
In v2rayNG, you usually do not need to look for a desktop-style system proxy menu. Select a configuration and press the connection button; Android will show a network connection authorization prompt. Approve it so the app can create a local forwarding interface. This authorization is part of the connection flow and does not mean the subscription itself is usable, so check the connection status and verify access in the next step.
When to consider TUN mode
Some apps do not read system proxy settings, and terminal programs may require separate environment variables. If the basic connection is verified but a specific app still connects directly, investigate TUN mode. TUN takes over eligible traffic at a lower level and usually covers more traffic, but it also depends more heavily on permissions, routing rules, and the local network environment. Starting with TUN combines subscription, permission, routing, and app compatibility issues, making troubleshooting harder.
Routing and proxy mode are separate switches. Proxy mode determines whether traffic can enter the client; routing rules determine which exit that traffic uses after entering it. Common rule modes match domains, IP addresses, or rule sets, while global mode sends more traffic through the same exit. Keep the default routing settings during this quick start. See the glossary for rule priorities, direct connections, and proxy exits; detailed configuration is covered in the routing section of the full manual.
The desktop client has the system proxy selected, or the Android client is ready to request network permission during connection; routing remains at its default setting for now.
Start the connection
Select the active configuration and watch the runtime status
Before connecting, return to the server list and deliberately select one configuration. In v2rayN, open the action menu on the target row and set it as the active server; some versions also support double-clicking or a shortcut. The status bar should then show the name or related information for the active configuration. Do not assume it is selected merely because it appears in the list: subscription updates populate the list but do not necessarily change the active item.
After confirming the active configuration, start the client core and make sure the system proxy selected in the previous stage remains enabled. v2rayN typically updates the bottom status information after startup, while the log window records configuration loading, core startup, and local listening activity. You do not need to read every line; simply confirm that errors are not repeating continuously and that the client does not stop immediately.
In v2rayNG, tap the target item in the configuration list until it shows the selected marker, then tap the connection button in the bottom-right corner. If Android displays a system authorization dialog on the first connection, approve it. The button state will change, and the top or notification area will usually show that the client is running. If the button immediately returns to a disconnected state, open the log to find the cause instead of tapping it repeatedly.
How to choose when you have many configurations
You do not need to chase the lowest latency during a quick start. Choose a configuration with a complete name and normal-looking fields, then complete the connection flow. The client's testing feature can help eliminate obviously unusable entries, but results depend on the local network, target address, and test time, so treat them only as a reference for the current environment. Comparing other configurations after a successful connection is more effective than repeatedly testing before the basic setup is complete.
If the core cannot start, first determine whether the error occurs before or after startup. An immediate pre-start error commonly points to incomplete configuration fields, a core component that failed to load, or a local listening port conflict. A post-start connection failure requires checking the active configuration, network requests, and routing. The first clear error in the log is usually more useful than later repetitions. See the troubleshooting section of the full manual for detailed log-reading guidance.
The client shows an active configuration, the core remains stable, and the connection button or system proxy status matches expectations without recurring startup errors.
At this point, the subscription has become a running local proxy service. The final step is not to keep changing settings, but to verify the result through the client status, browser access, and app-specific behavior. The basic path is complete only after all three checks pass.
Verify that it works
Check the client, browser, and individual apps
Start verification with the client itself. Confirm that the active configuration has not reverted to an empty state, the core is still running, and the system proxy or Android connection remains enabled. If the status stops immediately after startup, browser testing will not add useful information; return to the logs and address the startup error first. Once the client is stable, move on to the browser check.
Close any previously opened test pages and visit the site in a new browser tab. A new tab reduces the influence of old connections, cached pages, and established sessions. Choose a page whose normal loading behavior is easy to recognize, and check whether DNS resolution completes, a connection is established, and the full content appears. Do not judge success solely by whether the page frame loads; images, scripts, or subsequent requests that keep failing may indicate an incomplete connection path.
If the browser works but a terminal or standalone app is unchanged, do not assume the subscription has failed. Apps support system proxies differently: browsers often follow system settings, some terminal programs require an HTTP or SOCKS proxy to be declared separately, and other apps read updated system proxy settings only after restarting. Fully quit and reopen the target app, then check whether it has its own proxy settings. If it still does not work, consider configuring TUN for that use case.
If no apps can access the network, check these four items in order: first, is the client still running; second, is the active configuration the one just selected; third, is the system proxy or connection switch actually enabled; fourth, does switching to another configuration in the same subscription change anything? After each switch, wait for the status to stabilize before reopening the test page. Do not update the subscription, change routing, and modify ports at the same time, or you will not know which action changed the result.
How to identify the affected layer
Empty list
The issue is still at the subscription import stage. Check the URL, subscription group, and update message.
Core stopped
The issue is in the startup stage. Check the first clear error, configuration fields, and local port.
Browser works
The basic connection is working. For an individual app failure, check its proxy support and restart status.
Everything fails
Check the active configuration, connection status, and a replacement configuration in that order. Do not change multiple settings at once.
After verification, keep the current working configuration as a baseline. When trying routing rules, TUN, or other settings later, return to this verified setup first if something goes wrong, then add changes one at a time. A clear, reversible baseline is easier to maintain than several unverified combinations.
Maintain your setup
Update subscriptions, switch configurations, and stop the proxy
You do not need to add the same subscription again for everyday use. When the provider changes its configurations, update the subscription directly and the client will reread the corresponding group. After the update, check that the active configuration still exists; if it was replaced, select a configuration from the new list and reconnect. Frequently deleting and re-adding a subscription loses local group preferences and makes update failures harder to diagnose.
When you need to pause, disable the system proxy or disconnect before quitting the client. Closing the window does not always end the program; a desktop client may remain in the system tray. If the system proxy stays enabled after the client stops, local apps may continue trying to use an unavailable local proxy port, making the browser suddenly lose access. Reopen the client and disable the system proxy, or restore the proxy state in the system network settings.
How often to update depends on configuration changes; there is no need to manually update repeatedly every time you start the client. Update when configuration names change, older configurations stop working, or you receive a clear update notice. If automatic subscription updates are enabled, occasionally confirm that update notifications work instead of judging only by the number of entries in the list.
This quick start ends here. To continue with domain-based routing or learn about VMess, VLESS, Xray, and V2Fly, start with the glossary. For chapter-by-chapter guidance on installation, subscription maintenance, proxy modes, routing, TUN, and log troubleshooting, open the complete guide from beginner to advanced. If the system proxy is enabled but an app is not using it, read how to troubleshoot browsers and terminal programs separately.
Quick-start checklist
All four results confirmed
- The server list contains configurations after the subscription update.
- A proxy mode has been selected and the required permission has been approved.
- The active configuration is clear and the client remains running.
- A newly opened browser page passed the access check.