A basic setup path that takes about ten minutes
v2rayN Quick Start: Import, Connect, and Verify
First separate the roles of the client, core, and proxy settings. Then follow a fixed order: import a usable profile, decide how apps should connect, start the connection, and verify each app in practice. If the client is installed and you already have a valid subscription URL, start with step one.
Before You Start
Prepare the client, subscription URL, and scope of use
Before configuring anything, confirm that the device has a graphical client installed rather than only a separately downloaded proxy core. v2rayN is a desktop client that stores subscriptions, generates runtime configurations, selects routing methods, and calls cores such as Xray or V2Fly. The core parses configuration and handles connections; it is not a complete desktop interface you can operate directly. Proxy settings are a separate layer that determines whether the browser, terminal, or other apps send traffic to the local client.
You also need a valid subscription URL or an individual profile provided by the service provider. A subscription URL is usually a link beginning with https:// that lets the client retrieve and update a profile list. Do not mistake a web account login URL, plan page, or ordinary text instructions for a subscription URL. If you receive a single share link, use the client’s “Import from Clipboard” feature, but note that its update process differs from that of a subscription group.
This guide assumes the client already opens normally. If it is not installed, first visit the client download page and choose the appropriate entry for Windows, macOS, Android, or Linux. For desktop devices, start with v2rayN; for Android devices, see v2rayNG. Return here after downloading and installing so installation, subscription, and proxy-mode issues are not investigated all at once.
The main window or settings page opens normally, and multiple instances are not running.
You have a subscription URL or individual share link and know which subscription group it belongs to.
Decide whether only the browser should connect, or whether the terminal and other apps that ignore the system proxy must be covered too.
Step 1
Import the Subscription and Confirm the Profile List
In the v2rayN main window, look for “Subscription Groups,” “Subscription Settings,” or a similarly named entry. Depending on the interface version, it may be in the top menu, sidebar, or subscription management page, but the goal is the same: create a subscription group, give it a recognizable name, and paste the complete subscription URL into the address field. The name is only for local organization, such as distinguishing sources by purpose; it does not change the subscription content. Remove any leading or trailing spaces from the URL, then save the settings.
Saving a subscription group does not mean that profiles have been retrieved. Return to the main window and run “Update Subscription,” “Update All Subscriptions,” or the update action for the current group. The client reads the subscription and adds recognizable profiles to the list. You should now see profile names or entries in the main list. If it is still empty, do not move straight to system proxy settings: there is not yet a usable profile for the core to run.
v2rayNG follows a similar sequence: open subscription settings, create a subscription, enter its name and URL, save it, return, and run an update. Some versions also offer an entry for importing an individual profile from the clipboard. Before using clipboard import, copy the complete share link and check that a new entry appears afterward. An individual import usually is not added to an auto-updating remote subscription, so changes later require re-importing or following the provider’s instructions.
Once the list appears, select the profile you plan to use. “Selecting” only tells the client which profile to call next; it does not mean that other apps on the system are already using the proxy. The subscription answers “which profiles does the client receive?”, while system proxy or VPN integration answers “which apps send requests to the client?”, and routing rules answer “which outbound path do requests take after entering the client?”. Check these three stages in order to narrow down problems more easily.
Once the main list contains profiles and the target profile is selected, decide how the browser and other apps should connect.
Step 2
Choose a System Proxy, Routing Rules, or TUN
For a first test with most desktop browsers, start with “Automatically Configure System Proxy” so the result is easier to observe. After v2rayN starts a local listener, this option writes the relevant proxy address to the system settings; browsers and desktop apps that follow the system proxy can then send requests to the local client. “Clear System Proxy” removes that system setting; it does not delete subscriptions or profiles. Manual system proxy configuration is suitable when you already know the local listening address and port, but it is not necessary for a first setup.
The system proxy does not automatically cover every program. Some terminal tools, development environments, game platforms, and apps with their own network options ignore system settings. They may require a proxy address entered within the app or a proxy parameter supported by the tool. Check the app’s own network documentation to determine whether it is connected; browser access alone does not prove that every program uses the same path.
Routing modes handle traffic that has already entered the client. Common interfaces offer options such as Rules, Global, or Direct, although names may vary with the routing configuration. For a first setup, use the client’s existing rules mode, then adjust it after the connection has been verified. Global mode sends more connected requests through the proxy outbound path, which can help briefly rule out matching problems. It does not cover every app: an app that never connects to the local proxy will not change its connection method when the routing mode changes.
TUN handles traffic from apps that do not read the system proxy. It usually covers more traffic than a standard system proxy, but adds variables such as system permissions, a virtual network interface, DNS handling, and conflicts with other networking software. TUN is not needed for an initial browser test. First complete the standard system proxy path and confirm that the subscription and profile work. If an app cannot connect through its own settings, read the TUN configuration section and check permissions, routing scope, and DNS behavior one by one.
In v2rayNG, the system treats the client as a VPN network connection. The first start requires system authorization; if per-app proxying is enabled, you must also specify which apps are included or excluded. Per-app scope is unrelated to the server configuration: it only determines which apps on the device send requests to the client. During the first test, keep the scope clear. Avoid changing the profile and the per-app list at the same time, or it will be difficult to tell which layer caused the problem.
Determines the protocol, address, and connection parameters that the client passes to the core.
Determines whether the browser, terminal, and other apps send requests into the client.
Determines how requests already inside the client match rules and choose an outbound path.
On desktop, select one profile, use the existing rules mode, and prepare to enable automatic system proxy configuration. On Android, confirm system authorization and per-app scope, then continue to startup.
Step 3
Start the Core and Connect the Target App
Return to the v2rayN main list and confirm that the selected profile matches the subscription you just imported. Then start it or set it as the active profile. The client generates runtime parameters for the core and attempts to establish a local listener. Next, open the tray menu or system proxy area and choose “Automatically Configure System Proxy.” The correct order is to make sure the client has started its local service first, then let apps send requests to that local endpoint. If no local listener is established, changing the system proxy may temporarily prevent the browser from accessing the network normally.
After startup, check the status or error messages provided by the client. The important question is not simply whether an icon changed color, but whether there is a clear error such as profile parsing failure, a local port that cannot listen, or a core that failed to start. If a port is already in use, a common cause is another client instance running or another program using the same port. Exit duplicate instances first, then restart. If you change the listening port, also update proxy addresses previously entered manually in the browser, terminal, or other apps.
In v2rayNG, select a profile and tap the connect action. On the first connection, a system VPN authorization window appears; the client can establish the relevant interface only after you approve it. If another similar connection is already active, end it before starting v2rayNG. With per-app proxying enabled, confirm that the browser or app being tested is within the expected scope. Otherwise, the client may be running while that app continues to use its previous network path.
A connection action only means that the client has started calling the core and establishing an integration endpoint; it does not guarantee that the remote profile works. A profile in the subscription may fail because of changed parameters, an incorrect system time, or network conditions. Do not change the subscription URL, routing mode, TUN, and DNS all at once. Keep the current integration method and test another profile from the same subscription for comparison. If every profile fails at the same stage, use the Beginner-to-Advanced Guide to find the relevant section based on the error.
Once the client shows no startup error, immediately test with the actual browser and target app. The setup is complete only when app requests pass through the proxy as expected.
Step 4
Verify the Browser, Terminal, and Target App Separately
Close old pages that are still loading in the browser, then open a new window and visit an HTTPS page that normally reveals differences in network routing, or test the target site you need to use. This reduces interference from browser caches, existing connections, and background tabs. If the page opens as expected, test again with another new page instead of drawing a conclusion from a single load.
If the browser still is not connected, first check whether it uses the system proxy. Most browsers that follow system network settings will use the proxy address written by v2rayN, but browsers configured with an independent proxy, proxy extension, or enterprise policy may use their own settings. Open the browser’s network settings and confirm whether it follows the system settings or points to another local port. Do not keep multiple overlapping proxy configurations active.
Next, test the software you actually plan to use. Terminals and development tools often ignore the desktop system proxy, and some programs require separate HTTP, HTTPS, or SOCKS proxy settings. First check the current local listener type, address, and port in v2rayN, then enter them in the format supported by the target program. Do not copy ports from another device or an old guide: users can change local ports, and different installations or configurations may use different values.
If the browser works but the terminal does not, the subscription and core connection are usually basically functional. Focus on the terminal’s own proxy parameters rather than repeatedly updating the subscription. If no app works, return to the client and check startup errors, the local listener, and the current profile. If only certain domains behave differently, inspect routing rules and DNS. These cases point respectively to app integration, core operation, and rule matching.
The client is running, the current profile is clear, and the local listener reports no errors.
Open a new window and confirm that the browser follows the system proxy or uses the correct independent settings.
Check the app’s own proxy parameters, per-app scope, and whether broader integration is required.
Routing rules and DNS troubleshooting only matter after the request has entered the client.
Everyday Operations After Setup
Update Subscriptions, Switch Profiles, and Stop Correctly
After the first verification, everyday use usually requires only three actions: update the subscription, select a profile, and start or stop the client. When the provider changes its profiles, update the existing subscription group instead of creating another group with the same name. After updating, check that the selected profile still exists. If an old profile was replaced, select a valid profile from the list before starting.
When switching profiles, select the target entry, let the client apply the change, and run a quick browser test. If you are only changing profiles within the same subscription, you usually do not need to modify the system proxy because apps still connect to the same local listening endpoint. Only apps with manually entered proxy parameters need updating when the local listening address or port changes.
When finished, desktop users should first choose “Clear System Proxy” and then exit v2rayN. This prevents the system from retaining a local proxy address that no program is listening on. On Android, disconnect the current connection and confirm that the VPN indicator has disappeared from the system status. If the browser cannot connect at all next time while the client is not running, first check for a leftover system proxy setting.
The basic setup is complete. For advanced routing, TUN, DNS, port changes, or long-term maintenance, read the Complete Beginner-to-Advanced Guide. If terms such as VLESS, Xray, subscription, or system proxy are unclear, use the Quick Glossary. Keep the current working profile as a baseline while learning, and change only one setting at a time so the source of each change is easier to identify.
Basic Workflow Check
You can move to everyday use when the subscription list updates, the current profile starts, the target app’s integration is clear, and both the browser and actual software have been tested separately.