v2rayN Setupand Android Quick Start
Get one configuration connected before changing routing or app coverage. If the client is installed and you have a working subscription, follow these steps for a first setup that takes about 10 minutes. Download time and network troubleshooting are not included.
Step 1 · Add a server configuration
Import a subscription and update the list
You're done when server entries appear in the subscription group—not just the group name.
Before you start, check whether you have a subscription URL or a single server share link. A subscription URL is usually a web address the client retrieves to get a set of configurations. A share link describes one specific configuration. They use different import options. The client does not provide servers, and installing it does not automatically give you a usable configuration. If you don't have a configuration source yet, first get an authorized subscription you can use. There's no need to change ports or routing in advance.
v2rayN: Subscription Group → Subscription Group Settings
Open Subscription Group on the main screen and go to the group settings, then choose Add. Enter a recognizable group name in Remarks, paste the full subscription URL into the address field, check for spaces or line breaks at either end, and save. The group name is only for local organization and does not affect the connection. Subscription URLs may contain access credentials; don't share the URL, its QR code, or screenshots that show it publicly.
After saving, return to the main screen and choose Update subscription from the Subscription Group menu. If the menu offers Update via proxy and Update without proxy, try the direct option first if you haven't connected yet. After a successful update, switch to that group and check for server entries. Seeing the group label alone doesn't mean the import is complete: saving the URL and fetching its contents are separate steps. Confirm that configurations actually appear in the list.
v2rayNG: Top-right menu → Subscription Group Settings
Open Subscription Group Settings, tap Add, enter a remark and URL, and save. Return to the main screen and choose Update subscription from the menu. For the first update, use a method your current network can access directly. If you have a share link, copy the full link and choose Import from clipboard. For a QR code, use the client's scanner. Don't keep trying to update a share link as if it were a subscription URL, and don't mix the two sources while troubleshooting.
If the update fails, first check whether regular websites load, then make sure the URL hasn't expired, was copied in full, and doesn't need to be regenerated by its provider. Don't keep tapping Update: check whether the error is a download failure, empty content, or a parsing error before deciding what to do next. If the content downloads but can't be parsed, check that the subscription format is supported by the client. For more details, see FAQ.
Once entries appear, keep the existing settings and avoid editing protocol fields by hand. A subscription usually already includes the server address, port, and transport settings; changing them adds unnecessary variables. At this point, the client has retrieved the configuration, but that doesn't prove the network is working. Next, choose how app traffic enters the client, then connect to one configuration.
Step 2 · Choose how traffic enters the client
Choose a proxy mode
You're done when the desktop system proxy is set and the Android operating mode and app coverage are confirmed.
First, distinguish proxy mode from routing. System proxy, VPN mode, and TUN mode determine how traffic enters the client. Routing determines whether traffic goes direct, through the proxy, or gets blocked. Setting routing to Global does not mean every app is being captured. For your first setup, use one clear traffic entry point. Expand coverage after connecting so it's easier to tell which change made a difference.
v2rayN: System Proxy → Set system proxy automatically
Look for System Proxy at the bottom of the main screen, in the status area, or in the tray menu, then choose Set system proxy automatically. Apps that use system proxy settings will then use the client's local proxy, making a browser a good first test. Clear system proxy restores the system proxy settings. Do not change system proxy means the client will leave existing settings alone; it does not mean the proxy is enabled. Don't assume the system proxy is working just because the client window is still open.
Keep the default routing provided by the client, or choose a preset such as Bypass mainland China if it suits your network. Don't add custom rules yet. Bypass means requests that match the rules may connect directly, so it's expected that some sites show the same exit location. For your test, choose a request that's expected to use the proxy, not a page that should connect directly.
Leave TUN mode off for your first setup. TUN is useful when you need to capture traffic from apps that don't use the system proxy, but it also involves permissions, a virtual network adapter, and routing. Changing the system proxy, TUN, and DNS at the same time makes problems harder to diagnose. Verify the connection in a browser first. If you need to capture traffic from other apps, check permissions and your network environment one item at a time in the troubleshooting guide.
v2rayNG: Settings → VPN mode
In Settings, confirm that the operating mode is VPN. This mode receives device traffic through Android's VPN interface and is a good choice for first-time use. Proxy only provides a local proxy endpoint; other apps must be configured to use it, so it is not equivalent to VPN mode. If Settings includes per-app proxy, leave it off at first so your browser isn't excluded from the VPN.
If you need per-app proxy, first check whether the current option means Only proxy selected apps or Bypass selected apps. The same list of checked apps has opposite effects in these two modes. Make sure the browser you're using for the test is included, then connect. Bypass LAN addresses is for local network access; don't toggle it repeatedly to test external websites.
You can close other proxy or VPN tools that are managing network traffic to avoid conflicts with system settings. Android generally can't run two regular VPN services at once, and another desktop client may override the system proxy. Keep your network, server configuration, and default routing unchanged. Confirm the traffic entry point here, then move on to connect.
Step 3 · Start the core and connect
Select a server and connect
You're done when the active server is clear, the client isn't reporting persistent errors, and a real connection test succeeds.
Return to the server list and choose one entry from a trusted source with a complete configuration. You don't need to test every server on your first connection or guess connection quality from the display name. Keep the same network and work through the steps with one configuration first; if it fails, try another for comparison. Selecting a row may only highlight it—you may still need to choose Set as active server or take a similar action.
v2rayN: Set as active server → Check the running status
Right-click the entry and choose Set as active server. In versions that support it, you can also double-click to switch. Confirm that the active server indicator changes on the main screen, then check the status area and logs. Many versions automatically reload the core when you switch servers, so there may not be a separate Connect button. Check the actual running status rather than repeatedly restarting the whole client to look for a button.
Run Real connection test, or a similarly named test, on the selected entry. This is closer to an actual proxy request than simply checking whether a server port is reachable, but only confirms that the test path worked at that moment. An open port doesn't prove that authentication, transport, and access to the target all work. A successful real connection test also doesn't mean every app is using the system proxy. Check the result, then verify your target app in the next step.
If the logs say an address is already in use, close other programs that may be using the same listening port and try again. For authentication, handshake, or certificate errors, update the subscription and check the system time first. Don't disable security settings. The local port shown in the interface may vary by version or custom configuration. If you need to enter a proxy manually in an app, use the current settings rather than copying a number from another guide.
v2rayNG: Select an entry → Tap the Connect button at the bottom
Select the configuration you want to use, then tap the round Connect button at the bottom. The first time you connect, Android will ask you to authorize the VPN connection. Allow it after confirming that you just initiated the request. This permission creates the system network interface; it is not a subscription account login. If you dismissed the prompt, tap Connect again in the client. You don't need to delete the subscription or reinstall the app.
After connecting, check the client status and look for Android's VPN status indicator. Then run a real connection test. If the connection stops right away, open the logs and read the latest errors. Check that the configuration is valid, your current network is working, and no other VPN app is running. Don't change the operating mode and per-app scope at the same time after a failed test, or you won't know whether the problem is with the server or local settings.
If the connection works while the screen is on but drops after it turns off, that's a background-running issue to handle later. Complete the foreground checks on this page first, then review battery optimization, background activity, and system cleanup settings in Notes on Android VPN permissions and battery settings. Once the connection stays stable, do one final check in a real app.
Step 4 · Check real-world access
Verify that the proxy is working
You're done when the running status, target app access, and routing results all line up—not just when you see a connection icon.
Check three things: whether the client is running, whether the app sends requests to the client, and whether those requests follow the expected route. The real connection test in the previous step mainly checks the client's own test path. Now make a fresh request from your usual browser or target app. Use a familiar page you're allowed to access, close any old tabs, and open it again so you don't mistake cached content for a fresh network response.
Check the settings, then test app access
On desktop, first make sure v2rayN is still running and System Proxy is still set to Set system proxy automatically. Open the proxy page in your system network settings and check that the proxy endpoint matches the client's listening settings. Desktop operating systems vary in their support for system proxies. If your browser uses a proxy extension or its own network settings, make sure those aren't overriding the system proxy.
On Android, make sure v2rayNG's VPN connection is still active, then check that your browser is included in the current per-app proxy scope. If the browser works but another app doesn't, don't assume the server is down. The app may be excluded, use a different request method, or be affected by its own account or network policies. Keep the verified browser as a reference and change only settings related to the target app.
Check the client logs for a connection or routing entry that matches your recent request. The details depend on the log level; the default log not showing every request doesn't necessarily mean it failed. If needed, briefly increase the log detail, then restore your usual level after testing. Before asking someone for help, hide private information such as server and subscription URLs, user IDs, and browsing records.
Confirm the scope with a comparison test
On the same network and target, compare access with the proxy on and off. On desktop, record the result, clear the system proxy, and make a fresh request. On Android, record the result, disconnect the VPN, and try again. Restore the settings you've already verified afterward. Different results can offer a clue, but don't prove that all traffic is going through the proxy. If the target is reachable directly or matches a direct routing rule, both requests may succeed as expected.
An exit IP lookup only shows the exit used by that particular request; it doesn't represent all traffic from the device. If you need to check the exit, consider the route used by that request. Don't replace all your custom rules just to make an IP lookup page show a different address. The goal of a first setup is to confirm that the apps and requests expected to use the proxy are working.
If the real connection test succeeds but the browser fails, check the system proxy and the browser's own settings first. If all tests fail, revisit the configuration, basic network access, and logs. If only some domains fail, investigate DNS and routing next. Following this order helps avoid changing servers at the first sign of trouble. See troubleshooting for a diagnostic flow, or the FAQ for common settings.
After completing the four steps, keep the working configuration and default routing. For everyday use, select a server, connect, and check the status. Add per-app proxy, LAN sharing, or TUN mode later only if needed; change one setting at a time and use the verification steps here. This gives you the same troubleshooting path to get back to a working setup after a client update or routing change.