01 Import a subscription: add the URL, then update the group
First, get a subscription URL from your service provider. A subscription is usually a link the client can read and may contain account identifiers. It isn’t your account sign-in page or purchase history. Use the provider’s Copy subscription button if available, so you don’t miss trailing parameters or copy surrounding instructions. Don’t post the full subscription URL in public forums, screenshots, or shared documents. For troubleshooting, describe the error without sharing the URL.
v2rayN on desktop: saving a group doesn’t import its contents
Open the main window, go to Subscription Group Settings from the Subscription Groups menu, and add a group. Give it a name that identifies the source, then paste the copied link into the subscription URL field. Leave options you’re unsure about at their defaults. Save and return to the main window, then open Subscription Groups and choose Update subscription (without proxy). This step fetches the subscription and adds its server configurations to the list.
After the update, check that the main window’s group filter is set to the group you just created. Server entries in the list mean the client has read the configurations, but they don’t guarantee the servers will connect. If the update reports success but no entries appear, switch to the right group or All groups and clear any search filters. Don’t rush to add another group with the same name; it will be harder to tell which one you’re using.
If the update times out, first check that the device itself can access the internet, then make sure the subscription URL is valid and your service account is active. Use Update subscription (via proxy) only if you already have a working proxy connection. During initial setup, there’s no usable connection yet, so a proxied update may get stuck waiting for a tunnel that hasn’t been established. If parsing fails, check the URL format and client compatibility first. A webpage opening successfully doesn’t mean its contents are a valid subscription.
v2rayNG on Android: add a group, then return to the list to update
In v2rayNG, open Subscription Group Settings from the side menu. Tap Add, enter a remark and subscription URL, and save. Return to the main screen, open the menu, and select Update subscription. Check that configurations appear in the list, then select the one you want to use. Importing a single configuration by QR code or clipboard is a different process from adding a subscription group. A single configuration won’t receive updates for a full subscription group.
Before moving on, decide which group and server you intend to use. Don’t change transport protocols, ports, or encryption fields yet; subscription-provided settings should usually be kept together. Changing one setting yourself can make an otherwise correct configuration fail to connect. For more on managing subscriptions, see the general setup section of the complete guide. For now, choose a proxy mode.
02 Choose a proxy mode: keep traffic handling separate from routing
Two common client settings solve different problems. System proxy and TUN determine how app traffic reaches the client. Routing options such as Bypass mainland China, Blacklist, and Global determine whether traffic goes direct or through the proxy once it reaches the client. Enabling the system proxy doesn’t route traffic from every app through the client. Choosing Global routing won’t make an app that ignores the system proxy change how it connects. Keep these two layers separate during initial setup to make troubleshooting easier.
On desktop, start with Set system proxy automatically
Open the menu from the v2rayN tray icon, find System proxy, and choose Set system proxy automatically. This points the system’s proxy settings to the client’s local listening address. Keep v2rayN running and temporarily disable any separate proxy extensions in your browser. This lets your test browser use the system proxy without competing rules. Some browsers and desktop environments require you to explicitly enable the system proxy in their network settings.
Clear system proxy in the same menu removes the system proxy settings when you stop using the client. Don’t confuse it with Do not change system proxy, which tells the client to leave the existing system settings alone; it doesn’t clear a proxy address that was already set. Keep the distinction in mind: if the system still points to a local port after the program listening on it exits, your browser may show a proxy connection error.
Keep the current routing preset for now and note its name. With Bypass mainland China, some destinations going direct is expected. With Global, check the specific rules for exceptions such as local addresses. To compare results, you can briefly switch presets during testing, but change only one setting at a time. Don’t change the server, routing, and DNS together; even if the connection comes back, you won’t know which change fixed it.
Enable TUN only if needed; allow the VPN request on Android
If your browser works but apps such as games or command-line tools don’t follow the system proxy, consider TUN. First complete the browser test on this page, then use the complete guide to handle virtual network interface permissions, routing, and DNS. Don’t enable multiple traffic-handling tools at once during initial testing. If TUN fails to start, turn it off and check the logs instead of repeatedly toggling it. When changing how traffic is handled, confirm whether the existing system proxy will remain enabled.
On Android, v2rayNG handles traffic through the system VPN service. The first time you tap Connect, the system displays a connection request. Check the app name and allow it. If another VPN is already connected, stop it before returning to v2rayNG. If you’ve configured per-app proxying, make sure the browser you’re testing is included. The VPN icon only shows that traffic handling is active on the device; it doesn’t prove the remote server is reachable. Check the startup result in the next step.
03 Connect: set the active server and check that the core starts
Once your subscription and mode are ready, return to the server list. Pick one server you expect to work; there’s no need to test every server in the group first. Selecting a row may only move the interface focus. Confirm the configuration is actually in use by choosing Set as active server or checking the active status. For similar-looking server names, check the group and remarks so you don’t select an outdated configuration from an old subscription.
v2rayN: confirm the active server and check startup logs
Right-click the target entry and choose Set as active server. The client loads the core with that configuration or restarts it; an existing connection may briefly drop. Check the current server label or active marker in the main window, then open the logs and look for errors such as startup failure, configuration parsing failure, or a port in use. The window opening doesn’t mean the core is running: the graphical interface and the component that handles connections are separate.
If the logs report that a local port is in use, check whether the client is running twice or another proxy app is still active. Closing the extra instance is more likely to restore a consistent setup than changing several ports at random. If you do need to change a listening port, update the system proxy or any manually configured app proxy to match. For permission errors, follow the steps for your platform, especially for TUN. Don’t grant the entire app broader permissions just to test the regular system proxy.
Some versions load the configuration automatically when you change the active server, so there may not be a separate Connect button. Leave the client running; minimizing it to the system tray usually won’t affect it. Hold off on enabling launch at startup or background auto-start until you’ve confirmed a manual connection works. If you can select from multiple cores, keep the option that matches the configuration. For protocol and core compatibility, see the core guide.
v2rayNG: select a configuration, then tap Connect
Select the target configuration on the main screen and make sure the selection marker is on the right entry. Then tap Connect. The first time, allow the system VPN connection request and watch the button and status bar. If the service stops immediately after you allow the request, check the app logs for configuration format, service startup, or permission errors. If the app stays running but the target website won’t open, check routing and the remote connection in the next step; don’t reset every permission first.
Android battery settings may restrict background services when the screen is locked. Complete the test with the screen on first. Once the connection works, allow the app to run in the background as needed in system settings, and avoid using cleanup tools that stop its service. Desktop sleep, switching networks, or moving from Wi-Fi to mobile data on Android can also interrupt an existing connection; reconnect if needed. At this point, the client should be ready to receive app requests. Next, verify the full path with an actual visit.
04 Check that it works: test websites and review the logs
Your test should answer three questions: Is the device’s underlying network working? Is the test app sending traffic through the client? Is the request reaching its destination as expected? A connected icon only confirms part of the picture, and a latency test doesn’t prove that a full webpage will load. Use the same browser and set of destinations for each check; it’s easier to compare results than when you keep switching apps.
Test a regular website first, then check a destination expected to use the proxy
First, open a website that normally works to confirm the new settings haven’t disrupted your internet connection. Then visit a destination you expect to use the proxy, and check that both the main page and its resources load. Open a new tab or refresh to avoid relying on cached content. If no websites load, check that the client is still running, the system proxy points to its current listening port, and no other software has left conflicting settings behind.
To check your exit IP, you can use a trusted lookup page, but don’t enter your subscription URL or account details. The result only shows the route your browser took to that lookup destination. Routing rules may send it direct, so an unchanged exit IP doesn’t by itself mean the client has failed. Check which route applies to the lookup destination, then switch presets briefly for comparison if needed. Restore your original rules when testing is done.
Watch the logs as requests run and narrow down the cause
Keep the log window open and make a new request in your browser. If the client shows no related entries, first check whether the app uses the system proxy or is excluded by an Android per-app rule. Log verbosity affects what you can see, so no detailed request entry doesn’t prove the request never reached the client. If needed, briefly increase the log level using the client’s settings, then restore it when you’re done. Before sharing logs, remove addresses, user identifiers, and other sensitive information.
If a request reaches the client but times out while connecting to the remote server, try another entry in the same subscription and check the service status and network conditions. If only domain name resolution fails, check DNS settings rather than changing protocol parameters. If a website works but one app doesn’t, check the app’s proxy settings and traffic handling first. Change one thing and test once at a time, noting the result. For more complex issues, see the routing rules guide.
Check speed only after the connection is working. Response time from one test destination doesn’t tell you how fast large downloads will be. A slow website may also be caused by the destination itself, network congestion, or your local Wi-Fi. Confirm that regular browsing is stable first, then compare servers using the connection testing guide. Don’t cycle through updating the subscription, reconnecting, and changing modes as a routine; doing so can hide the actual source of the problem.
Record your settings, and restore your network when you’re done
Your basic setup is complete when the expected websites load, the client runs reliably, and routing behaves as intended. Note the subscription group, active server, traffic-handling mode, and routing preset. If something goes wrong later, return to this verified setup first. There’s no need to enable every feature for the sake of a complete setup; leave TUN, custom routing, and DNS changes until you have a specific reason to use them.
When you’re done on desktop, choose Clear system proxy from the System proxy menu before exiting v2rayN. If TUN is enabled, turn it off first and confirm your connection is restored. On Android, stop the service with the v2rayNG Connect button and confirm the system VPN is no longer active. If your browser reports that the proxy server is unavailable afterward, check for a leftover local proxy address in the system or browser settings. When you’re ready to install on another device, handle permissions, or organize routing rules, go straight to the complete guide for all platforms; there’s no need to repeat steps you’ve already verified.