Before you begin: Have a complete subscription URL from a trusted source that is still valid, or a complete server share link. The client reads configuration and forwards connections; it does not provide servers. If you see a system permission prompt on first launch, check the program's source and the prompt before proceeding.
Subscription URLs usually start with https:// and provide a set of server configurations. Share links usually start with vmess://, vless://, trojan://, or ss:// and import a single configuration. They use different import options, and link length alone won't tell you which type you have. Subscription URLs may contain access credentials. Don't post them publicly or submit them to an unfamiliar conversion site.
Step 1 · Configuration Source
Import a Subscription and Select a Server
Copy the complete URL provided by your subscription source. If you copy it from a chat app or webpage, check that no spaces, line breaks, quotation marks, or explanatory text were added at either end. A subscription URL is not a purchase page or account dashboard, and it may not display a regular webpage in a browser. Check the client's update result and server list to confirm the import.
v2rayN: Add a Subscription Group and Update It
Open v2rayN and find Subscription Group in the top menu. Choose Subscription Group Settings or an equivalent management option. Add a group, enter a recognizable source name as the remarks, and paste the URL into the subscription URL field. For first-time setup, leave the other options at their defaults. Check that the URL is complete, then save and close the settings window. This creates the subscription entry, but the server list may still be empty. Update the group to load its servers.
Open the Subscription Group menu again and choose Update Current Group. If your version offers both Update Without Proxy and Update Through Proxy, try updating without a proxy first if you haven't connected yet. Check the status message or logs and wait for the update to finish, then select the new group. The subscription has loaded when the list shows server names and protocol types. If the subscription can only be fetched through a proxy, you'll need an existing working connection or instructions from the provider. Enabling a proxy that isn't configured yet won't solve the problem.
v2rayNG: Save the Subscription Settings, Then Refresh the List
Open the v2rayNG side menu and go to Subscription Settings. Tap the add option, enter a name in the remarks field and the subscription URL, then save. Return to the home screen and use the top-right menu to select Update Subscription or update the current group. Wait for the update to finish, then check that configuration entries appear on the home screen. Don't tap repeatedly while an update is in progress. If it fails, note the error message, check the URL and network connection, and then decide whether to retry.
Import Share Links Separately
For a single share link, there's no need to create a subscription group. Copy the complete link, then in v2rayN look for Import from Clipboard in the Server menu, or in v2rayNG choose Import from Clipboard from the add menu in the top-right corner. After importing, check that the configuration type matches the source's description. QR codes can also transfer configurations. Verify the source before scanning, and don't include a QR code containing credentials in a public screenshot.
Once entries appear in the list, select a server from a known source that fits your needs. In v2rayN, right-click it and choose Set as Active Server or the equivalent. In v2rayNG, tap the entry; a selection indicator shows which configuration is active. For now, just select a server. Don't change transport, TLS, or REALITY settings: subscriptions usually include these details, and changing them can make the client configuration incompatible with the server.
You're done with this step when: The target group shows its servers, a configuration is clearly selected, and there are no unresolved update errors. To apply future subscription changes, update the group instead of adding the same URL repeatedly. For details on subscription replacement, keeping manually configured servers, and managing groups, see the subscription section of the full guide.
Step 2 · Connection and Routing
Choose System Proxy and Routing Modes
Once you've selected a server, two separate questions remain: how apps send requests to the client, and how the client chooses an outbound route for those requests. The first depends on the system proxy, Android VPN access, or an app's own settings. The second is controlled by routing rules. Switching to Global does not mean every app is connected to the proxy. Enabling the system proxy does not mean every request will go through the remote server.
v2rayN: Use the System Proxy for Your First Test
Find System Proxy in the main window's status area or the tray icon menu, then choose Set System Proxy or an equivalent option. This points the system proxy to the client's local listening address. Browsers and apps that follow the system proxy settings can then connect through the client. Clear System Proxy removes this setting; Do Not Change System Proxy keeps the existing system setting and does not turn the connection on or off. For your first setup, explicitly choose automatic configuration rather than guessing based on the menu position.
If your browser has its own proxy extension or an app is configured to use a different proxy, it may ignore the system settings. For your first test, temporarily disable the proxy extension or configure the browser to use the system proxy, so the settings don't conflict. Don't enable TUN on desktop yet; this avoids adding variables such as virtual network adapters, permissions, and DNS settings. After you confirm that a regular browser can connect, see the TUN section in the full guide if needed.
v2rayNG: Check App Access and Routing Presets
v2rayNG typically routes app traffic through the Android VPN interface. Open Settings and check whether per-app proxy is enabled. For first-time use, you can turn it off so general apps use the default access scope. If you need to choose apps individually, check whether the mode is Proxy selected apps only or Bypass selected apps. The same app list means the opposite thing in each mode. If your browser is excluded, the home screen can still show Connected while browser traffic bypasses the client.
Next, find Routing Settings or Routing Mode. For everyday use, start with Bypass mainland China or a similar preset that sends common destinations in mainland China directly. Presets rely on routing data and DNS lookups, not webpage language, so a few destinations may behave differently than expected. Global typically sends requests that reach the client through the proxy, except for any required rule exceptions. Use it briefly for comparison when troubleshooting; the exact exceptions depend on the selected preset.
Keep the preset routing for now; don't change DNS, domain strategies, or custom rules at the same time. That way, if the next step fails, you can tell whether the server connection failed or the destination was routed directly. To understand rule matching, read System Proxy vs. Global and Bypass Mainland China Modes. For now, choose one clear connection method and one known routing preset.
You're done with this step when: Desktop is set to configure the system proxy automatically, or you've checked which apps can connect through the Android client. A known routing preset is selected. Note these choices before connecting so you have a clear starting point for troubleshooting.
Step 3 · Start the Client
Connect to a Server and Check Its Status
Return to the server list and confirm which entry is selected. After a subscription update, entries may be replaced or reordered, so don't assume the server is still on the first row. Check its name, group, and protocol type. Don't post screenshots showing the full URL, user ID, or connection parameters. Once you've confirmed the entry, start the client using the appropriate steps for your device.
v2rayN: Check the Active Server and Core Status
Set the target entry as the active server in v2rayN. Many versions load the core automatically when the configuration changes. If the interface has an option to start or restart the core, use it as needed. Open the log panel at the bottom or find the runtime logs in the menu. Look for startup failures, port conflicts, or configuration parsing errors. An open window only means the GUI is running; it doesn't confirm that the core responsible for forwarding traffic started successfully.
If you see an error saying the local listening address is already in use, check whether the client is running more than once or another proxy app is using the same port. Quit any extra instances and try again. Don't assume a port number from an online example is the right one. If an app has a manually configured proxy port, it must match the current client setting. The client usually sets the system proxy automatically, so you don't need to enter a local address in your browser for first-time use.
v2rayNG: Allow the VPN Request and Check the Home Screen
Select a configuration on the v2rayNG home screen and tap Connect. The first time you connect, Android will ask to set up a VPN connection. Confirm that the request came from the current client, then allow it. When connected, the button on the home screen changes state, and Android usually displays a VPN icon. If another app is already using the system VPN interface, disconnect it first; the new request may replace the existing connection or fail to establish properly.
The VPN icon only confirms that a local traffic tunnel has been established; it doesn't prove the remote server is working. If the client stops immediately, check the first relevant error in the logs. If it stays connected but you can't access the internet, keep the current configuration and test an actual request in the next step. Don't switch between multiple servers while changing routing settings; that makes it difficult to match errors to the changes that caused them.
You can run a real connection latency test on the selected entry to check whether the proxy route can complete a specific test request. Results depend on the test destination, routing, and network conditions. One failed test doesn't necessarily mean the whole subscription is invalid, and one successful test doesn't replace checking an actual app. For an explanation of different test methods, see TCPing vs. Real Connection Latency vs. Download Speed Tests.
You're done with this step when: The client is running, the selected server is clear, the core has no startup errors, and Android has granted the VPN permission. Next, make a real request to confirm that the running client can actually reach its destination.
Step 4 · Verify the Results
Check Whether the Proxy Is Working
Open a new browser tab and visit a known working destination that should use the proxy under your current routing rules. Don't just refresh a page that's already loaded; cached content may not make a new network request. Wait for the page and its required resources to load, then try a different destination. If only one site fails, first check whether the site itself is down, DNS is failing, or a routing rule sent the request the wrong way. Don't immediately reinstall the client.
Check the Results, Outbound IP, and Logs
To check your outbound IP, use a trusted public IP lookup service, but first make sure your current routing rules send the lookup request through the proxy. In split-routing mode, the lookup may go direct, so seeing your local network's outbound IP doesn't necessarily mean the proxy is broken. For a quick comparison, temporarily switch to a clear global proxy preset and run a new lookup, then restore your original route. Change only the routing mode; keep the same server and connection method.
Check the client logs too. If the log level includes the relevant details, use the new request's destination and outbound route indicator to see whether it went through proxy or direct. The exact labels depend on the configuration. Don't assume a request was proxied just because its domain appears in the logs. If the default logs don't show individual connections, you don't need to enable the most verbose level immediately; you can start by comparing actual access with the outbound IP.
After testing a destination that should use the proxy, visit a familiar site that should connect directly to make sure routing hasn't disrupted normal access. On Android, test the app you actually plan to use, not just the browser. Desktop apps that don't follow the system proxy also need their network settings checked individually. If the browser works but an app doesn't, check whether the app is allowed through the client before changing server settings you've already verified.
If It Fails, Check These in Order
If no destinations work, go back to step one and confirm the subscription updated successfully, is still valid, and has the correct server selected. Then check the core's status from step three; without a running local core, correct remote protocol and routing settings won't forward traffic. Once the core is running, check the system proxy, browser extensions, or per-app settings from step two. Finally, confirm that the routing rules send your test destination through the expected route.
If the logs show connection refused, check whether the refused address is local or remote. For i/o timeout, check whether the timeout occurred during DNS resolution, connection setup, or later data transfer. For handshake errors, check the system time, service validity, and whether the configuration was edited manually. You can compare with another entry in the same subscription, but change only one variable at a time. For more troubleshooting guidance, see Understanding v2rayN Runtime Logs.
After Verification: Everyday Use
Once both proxied and direct destinations work as expected, restore your usual routing mode and note the working group and server names. Use subscription updates to apply future changes instead of importing the subscription again each day. If a server stops working after an update, select the active server again and check the logs. If the configuration appears malformed, ask the subscription provider which client formats are supported. Don't send credential-bearing data to an unfamiliar online tool.
When you're done on desktop, choose Clear System Proxy before quitting from the tray menu; closing the window may only minimize the client to the tray. On Android, disconnect in the client and make sure the system VPN is no longer active. For startup options, TUN, advanced routing, or managing multiple devices, continue with the complete V2Ray configuration guide. This completes the first-connection setup.
Final check: Destinations that should use the proxy are accessible, the outbound route matches your settings, direct destinations still work, and you've tested the apps you plan to use. Keep this verified configuration and add features one at a time; it's easier to maintain than enabling everything at once.