BEFORE START
Before you start: the client, subscription link, and system clock
This guide assumes the client is already installed and that you have a working V2Ray subscription link. A subscription link is not an ordinary web address; it is usually generated by the service provider to return a set of server configurations to the client. When copying it, select everything from the first character to the last, without surrounding spaces, line breaks, or punctuation added by a chat app. If you only have a single share link, you can import it directly, but updating and grouping it later will work differently from a subscription.
After opening the client, check the device date, time, and time zone first. VLESS, VMess, and TLS configurations involve time and certificate status during connection setup, so a significantly incorrect system clock can cause the handshake to fail. On desktop, also make sure no other tool is managing the system proxy at the same time. On Android, disconnect any similar client that is occupying the system connection channel. This does not change the configuration; it simply rules out conflicts on the local device.
If the client is not installed yet, visit the client downloads page and choose your platform. Desktop systems typically use v2rayN, while Android devices can use v2rayNG. This page covers only the shortest path to a first connection; system-level guidance for protocol parameters, routing rules, and DNS is available in the troubleshooting documentation and glossary.
Import a subscription: add a group and update servers
Target state: servers appear in the client's server list and belong to the subscription group you just created.
v2rayN desktop instructions
After starting v2rayN, find “Subscription Groups” or a similarly named subscription management entry in the top menu of the main window. Depending on the version, it may be under a “Subscriptions” menu or appear directly as a subscription group button, but the essential action is to add a group. In the management window, choose “Add,” enter a recognizable group name—such as one based on its purpose or service provider—and paste the complete subscription address into the address field.
Do not close the client immediately after saving the group. Return to the subscription menu and choose “Update current subscription” or “Update all subscriptions.” During the update, the status area at the bottom or the log window will show the request and parsing process. Normally, several new records appear in the server list, with rows typically showing an alias, address, port, protocol type, or subscription group. The number of servers depends on the subscription and does not indicate connection quality by itself.
If the list is still empty after saving, first confirm that you actually ran an update rather than only creating the group. Then reopen the group settings and check that the address is complete at both ends and contains no spaces. If the log reports a request failure, empty content, or a parsing error, keep the current screen open and consult the subscription help section; do not create several identical groups in succession, as duplicate servers will make the results harder to interpret.
v2rayNG Android instructions
Open v2rayNG and go to “Subscription Group Settings” from the main menu. Tap the add button, enter a note or name first, then paste the subscription link into the subscription address field, save it, and return to the server list. Open the menu again and choose “Update subscription.” When the update finishes, the main screen will list the servers returned by the subscription. The selected server usually has a radio marker, highlighted background, or status indicator.
Saving a subscription and updating a subscription are separate actions on Android. Saving the address alone does not guarantee that the list has refreshed, so wait until the updated server list is visible before continuing. If the interface says the update is complete but the list has not changed, check that the correct subscription group is enabled and that group-based display or filtering is not hiding the results. For a first setup, keep only one group under test until the connection is stable, then organize other sources.
Choose a proxy mode: start with rule-based routing, then handle special cases
Target state: the client knows which requests should use a proxy outbound, and the local system proxy or connection channel can receive application traffic.
The proxy mode determines how traffic enters the client and which outbound it matches. For first-time use, there is no need to edit complex rules immediately. Prefer the client's built-in rule mode or preset routing mode so common local resources connect directly while eligible requests use the proxy. Rule-based routing is a practical daily default and makes it easier to use logs to determine whether a domain matched direct or proxied traffic.
v2rayN desktop: routing mode and system proxy are separate settings
In v2rayN, routing rules and the system proxy are separate switches. First choose the client's built-in rule set from the settings or routing menu, and make sure you have not accidentally selected an empty custom rule set. Then find the “System Proxy” entry and choose automatic system proxy configuration or the equivalent enable option for your version. Afterward, the client icon in the notification area or the status area of the main window should normally indicate that the system proxy is enabled.
If you choose a routing rule but do not enable the system proxy, browsers and most applications that follow system settings will not automatically send requests to v2rayN. Conversely, if the system proxy is enabled but no valid server is selected, traffic can enter the client yet still fail because there is no usable outbound. This step only establishes the traffic entry point; you must select a server and start the core in the next step.
“Global proxy” sends more requests through the proxy as a single outbound path. It can help temporarily determine whether rule-based routing is causing an access difference, but it should not be the first answer to every connection problem. Global mode cannot fix subscription errors, server timeouts, certificate failures, or local port conflicts. For the boundaries between modes, see routing and split-tunneling terms.
v2rayNG Android: choose routing settings and prepare to connect
In v2rayNG settings, find “Routing settings,” “Predefined rules,” or a similarly named entry, and choose a rule set suited to everyday use. The connection button at the bottom of the main screen starts the connection; leave it untouched for now while you finish checking the mode and selecting a server. Android will show a system confirmation dialog the first time a connection is started; whether it appears again depends on the system state.
If the settings page also includes options such as “Bypass LAN,” “Domain strategy,” or DNS settings, keep the client defaults during the first setup. Changing several advanced options at once makes the source of a problem difficult to identify. Adjust them only after basic connectivity works, based on LAN access, resolution for specific domains, or routing needs. For advanced routing and DNS diagnostics, see systematic troubleshooting.
Connect to a server: run a real connection test, then set the active server
Target state: the server completes the actual handshake, the client core starts running, and the connection status changes from stopped to connected.
A subscription may contain multiple servers. For a first connection, do not rely on server names alone or treat a basic ping as the final test. Ping mainly reflects a network-layer response: some servers ignore ICMP while the proxy protocol still works, and others may have low ping latency but fail during the proxy handshake. A client-provided “real connection latency,” “test latency,” or connection test is more useful because it includes the proxy protocol handshake and target access.
v2rayN desktop connection steps
Select the server you want to test in the server list. You can start with several candidates from the same subscription group, then use the context menu or top test menu to run a real connection latency test. After the results return, prefer a server that completes the test consistently. The latency number is only one selection factor and does not represent download speed; a completed test is more useful for first-time verification than simply chasing the lowest number.
Double-click the target server or use the context menu to set it as the active server. The selected row should show a current-selection marker, and the main window status bar should display the active server name. Then confirm that the system proxy is still enabled. Some versions start the core automatically after a server is selected; others require “Start service” or a core restart. Use normal startup messages in the log—such as a listening port being established or the current configuration being loaded—as the authority.
If the server name appears in the status bar after you double-click it but the browser still cannot access websites, do not replace every setting at once. Check the last few log lines first. If connection timeouts repeat, switch to a server that passes the real connection test. If a local port is occupied, exit other programs that may use the same proxy port and restart the client. If configuration parsing fails, update the subscription again rather than manually changing protocol fields you do not yet understand.
v2rayNG Android connection steps
Return to the v2rayNG server list and tap an imported server to select it. Use the test function in the menu to check connectivity and confirm that at least one server completes the test. Then tap the connection button at the bottom of the main screen. During the first connection, the system will ask you to confirm creation of a local connection channel; approve it and wait for the status to change.
Normally, the connection button changes to a running state and the system status area shows a connection indicator. Do not tap the button repeatedly; rapid repeated actions can stop a connection immediately after starting it. Wait a few seconds before moving to verification. If the status quickly returns to disconnected, open the log to find the startup failure. Common causes include an unreachable server, invalid subscription parameters, an incorrect system clock, or another client still occupying the connection channel.
Verify that it works: cross-check the browser, client status, and logs
Target state: application requests enter the client, the active server forwards traffic, and the routing result matches the selected mode.
A connection button in the enabled state only proves that the client attempted to start; it does not prove that application traffic is actually using the proxy. Reliable verification requires checking three places at once: whether the browser can load a new request, whether the client keeps the connection alive, and whether the log shows the corresponding request. Together, these results confirm one another and quickly identify the failing layer.
Layer 1: make a new browser request
Close the earlier test page or open the target website in a new tab to avoid interference from old connections and cached content. On desktop, use a browser that follows system proxy settings; on Android, reopen the browser after the connection starts. If the page loads, continue watching the client log and confirm that the request time matches your recent action. Seeing old page content is not complete verification because a cached page may not have sent a new request.
If ordinary websites open but a particular site fails, the client, system proxy, and server may not be failing as a whole. The issue may involve DNS resolution, routing matches, or the target site's connection. Do not delete the subscription. First compare another server that passed the real connection test, then briefly compare rule-based and global modes. A detailed DNS and routing diagnostic process is available in the complete troubleshooting guide.
Layer 2: check the client's ongoing status
In v2rayN on desktop, confirm that the active server name is still present, the system proxy remains enabled, and the core is not repeatedly exiting and restarting. You can also check the operating system's proxy settings to ensure they match the client state. If v2rayN exits while leaving an old proxy enabled, the browser may fail to open every page; restart the client and disable the system proxy correctly to recover.
In v2rayNG on Android, return to the main screen and confirm that the connection button still shows a running state. If the system terminated the connection after a network change, disconnect and reconnect once. Switching between mobile data and Wi-Fi changes the underlying network path, so needing to re-establish the connection does not necessarily indicate a subscription problem.
Layer 3: use logs to confirm the request path
Open the client log and watch for a new connection record while refreshing the browser page. Seeing the target domain, an outbound tag, or connection-establishment details means the request entered the client. If the browser reports an error but the log has no new record, check the system proxy first on desktop and whether the connection is still running on Android. If the log shows the request but repeated timeouts, switch servers or check the current network. If it clearly shows a direct or proxied outbound, compare it with the selected routing mode to determine whether the result is expected.
A single warning in the log does not necessarily mean the entire connection failed. Focus on whether it matches the target, time, and repetition frequency of the action you just took. For first-time verification, distinguish only among three outcomes: the request never entered the client, it entered but the server failed, or it succeeded and returned. There is no need to explain every core message line by line. Look up common log terms in the glossary.
FIRST CONNECTION CHECK
A fixed checklist for first-connection failures
The troubleshooting order matters more than repeatedly changing settings. The six checks below move layer by layer from the local entry point to the remote server. Complete each one before moving to the next to avoid changing multiple variables at once.
-
Confirm that the client is still running
On desktop, check the main window, notification area, and core log; on Android, check the connection status on the main screen. If the client has exited, later proxy settings cannot forward traffic.
-
Confirm that the traffic entry point is enabled
Check the system proxy status in v2rayN and the connection switch in v2rayNG. If the log shows no new requests at all, check this layer first.
-
Confirm that the active server belongs to the current subscription
Check the selection marker and subscription group so you are not still connecting to a server record that was deleted, disabled, or belongs to an old group.
-
Run the real connection test again
Choose a server that completes the actual handshake. If every server in the current group fails, update the subscription once more and inspect the log instead of repeatedly starting each server.
-
Briefly compare rule-based and global modes
Do this only when the connection is established but access to a specific site fails. If global mode restores access, the routing rules are likely involved; if both modes fail, continue checking the server or network.
-
Record the error time and key log terms
Keep the time of the failure, client type, current network, server test result, and key messages at the end of the log, then visit the Help Center and search by symptom for the appropriate fix.
SETUP COMPLETE
Everyday tasks after connecting
Routine use usually involves three actions: update the subscription when its contents change; run another real connection test and switch the active server when quality drops; and, when you no longer need the desktop proxy, disable the system proxy from the client menu before exiting. Do not add the same subscription again every time you start the client, and you do not need to reinstall it to switch servers.
If you plan to configure split routing for traffic in mainland China and outside China, DNS, geosite, geoip, or multi-device sync, keep the currently verified basic configuration first, then change one item at a time and record the result. For complex issues, use troubleshooting to locate the symptom; consult the glossary for protocol and core concepts; and visit client comparison to review client differences.