Client Guides
v2rayN Setup Guide
Import a Subscription and Test Your Connection
Complete your first setup in four steps: import a subscription, choose a proxy mode, connect, and verify access. If you have the client and a valid subscription ready, the process takes about ten minutes. If something goes wrong, troubleshoot the current step instead of reinstalling everything.
Before You Start: Check the Client and Subscription
First, choose a client for your device from the client downloads page, install it, and open the main screen. An empty server list on first launch is normal: the client does not include ready-to-use servers. Get a subscription URL or a complete server share link from your service provider, and make sure the service is still active.
A subscription URL is a web address that can provide multiple server configurations when updated. A share link usually starts with a protocol name and contains a single configuration. Import each through its own menu. Subscriptions may contain access credentials, so don't post the full URL in public forums or leave it visible in screenshots. Also make sure your device is online, its date and time are correct, and other network-capture tools are temporarily disabled to avoid conflicting settings.
This guide follows the shortest path to a working setup. You don't need to edit configuration files or enable a virtual network adapter. If terms like inbound, outbound, or subscription are unfamiliar, consult the V2Ray glossary and then return to the current step.
Step 01 · Configuration Source
Import a Subscription: Save the URL, Then Update
v2rayN: Add a Subscription Group
Open the Subscription Group menu on the main screen and select Subscription Group Settings, then add a group. Enter a recognizable name, such as "Everyday use," in the remarks field, and paste the full subscription URL into the address field. Check for extra spaces or line breaks at either end, and make sure you copied the entire URL rather than just part of a webpage. Then save. This saves the source for retrieving configurations; it does not mean server entries have been downloaded.
Return to the main screen and select Update Subscription from the Subscription Group menu. For a first-time setup, choose an update option labeled "without proxy," since you don't yet have a working proxy connection. After the update, select the new group and check whether server entries appear. Once the list contains selectable configurations, continue to the next step; there's no need to edit protocol settings one by one.
v2rayNG: Save the Subscription, Then Update It
Open Subscription Settings from the side menu, tap the add button, enter a remark and subscription URL, and save. Return to the server list and select Update Subscription from the top-right menu. Some versions update the selected group, while others offer a single update option, so check which group is active first. After a successful update, selectable server entries should appear on the main screen—not just another URL in Subscription Settings.
If your provider gave you a single server share link, copy the full link and use the client's import-from-clipboard option. Don't paste a single share link into a subscription URL field that expects to fetch data over the network. Configurations imported this way usually won't update automatically with a subscription group; if server-side settings change, import the updated configuration again.
If the List Is Empty, Check the Update Result
If the update fails to download, check whether the URL is still valid, whether your current network can reach the subscription service, and whether your provider requires an additional login. A parse error may mean the client received a login page, an error page, or an unsupported subscription format instead of configuration data. Don't keep deleting and recreating the group. Read the update message first, then ask your provider which subscription format works with your client.
If the subscription is only reachable through an existing proxy, first import a separate, working configuration. Connect with it, then try updating the subscription through the proxy. A subscription URL cannot remove the access requirement needed to reach itself. Once server entries appear, configure how traffic reaches the client and which route it takes afterward.
Step 02 · Traffic Entry
Choose a Proxy Mode: Traffic Capture vs. Routing
System proxy and routing mode solve different problems. The system proxy determines how an app passes connections to the client; routing determines whether the client sends those connections directly or through a proxy outbound. Changing routing without connecting the app to the client may leave the browser using its usual network path. Enabling the system proxy alone doesn't mean every connection will use a proxy outbound.
v2rayN: Use the System Proxy for Your First Setup
Check the local listening address and port in settings; keeping the defaults usually makes troubleshooting easier. Then find System Proxy in the main screen's status bar or tray menu and select Set system proxy automatically. This points the relevant system proxy settings to the local client. Browsers and apps that follow those settings will use this entry point. Don't enter a remote server port as the local proxy port: they occupy different points in the connection path.
Clear system proxy removes the system proxy settings. Do not change system proxy means the client won't actively modify those settings; it doesn't automatically turn off a proxy that was already configured. For your first setup, explicitly choose automatic configuration rather than relying on settings left behind by a previous session. Leave extra traffic-capture methods such as TUN disabled until you've tested the system proxy path, reducing variables related to permissions, routing, and virtual adapters.
Next, check the routing preset. For everyday use, start with a preset such as "Bypass mainland China," which routes matching destinations in mainland China directly and handles other connections according to the preset. To briefly test whether proxy outbound works, switch to Global and compare, then restore a suitable everyday preset. The exact behavior depends on the preset and rule order. Global routing also doesn't mean every app on the system is captured.
v2rayNG: Check VPN Mode and Per-App Settings
In v2rayNG settings, confirm VPN mode is enabled rather than a mode that only provides a local proxy port. VPN mode usually routes Android app traffic through the client via the system interface, without requiring you to enter a proxy address in each app. If you've configured per-app proxying before, check that your test browser isn't excluded. For a first setup, leave app lists simple until the connection works, then narrow the traffic-capture scope if needed.
Keep the default routing configuration, or choose a bypass rule that fits your needs. Don't change DNS, custom rules, and per-app lists all at once; if access fails in the next step, it will be hard to tell which setting caused it. The port examples socks 10808 and http 10809 illustrate local entry points only; use the values shown in your client. After connecting, see the protocol guide for rule priority and protocol choices. For now, keep the setup simple.
Step 03 · Active Configuration
Connect: Select a Server and Check Its Status
v2rayN: Set an Entry as the Active Server
Return to the server list and choose the entry recommended by your provider. You can usually switch it from the right-click menu by selecting Set as active server; some versions also support shortcuts such as double-clicking. Then check the active indicator in the list or the status bar to confirm the selected entry is actually in use—not just highlighted. Use one entry for your first test, and don't switch repeatedly while a page is loading.
In v2rayN, setting an active server usually applies the configuration and starts or restarts the core; there may not be a prominent Connect button like the one in a mobile app. Check the status and log areas at the bottom for repeated errors such as configuration parse failures, listener errors, or the core exiting. If a port is already in use, check whether another client instance is running or another program is using the same port. If you change the port, update the system proxy to point to the new local entry point.
Some protocols require specific core capabilities. If the logs clearly report an unsupported protocol or security-layer field, check which core the configuration requires instead of randomly changing encryption or transport options. For configurations using REALITY, make sure the client is running a compatible core and keep the parameters supplied by your provider. For common core and client pairings, see the glossary section on cores and clients.
v2rayNG: Select an Entry and Connect
Tap the target server on the main screen and confirm the selection indicator has moved, then tap Connect. The first time you connect, Android usually asks for permission to establish a VPN connection. Check the app name and allow the request. After approval, the main screen should show a running state, and a VPN icon may appear in the system status bar. If you dismiss the permission prompt, selecting an entry alone won't route traffic; tap Connect again and grant permission.
If another VPN connection is active on the device, the new connection may replace it or be blocked by device management policies. Stop other network-capture tools first, then test the client again. If the Connect button doesn't stay active, check the logs for the startup error instead of repeatedly importing the same subscription.
At this point, "started" means only that the local service is running; it doesn't prove the remote server is reachable. Some proxy connections are established only when an app sends a request, so a clean startup isn't enough to verify access. Next, load a webpage and check whether the client receives traffic.
Step 04 · Real-World Access
Verify It Works: Compare Web Access with the Logs
Send a New Request, Then Check the Outbound
Open a new browser tab, visit a known working website, then try a destination that the current routing rules should send through the proxy. Don't rely on a page that's already open: its content may be cached, and existing connections may still use the previous route. Start with ordinary webpages and avoid large downloads so you can match a specific request to its log entry.
Return to the client and check the logs. If the current log level doesn't show access records, temporarily enable them in settings. Check whether the new request arrived, which domain it targeted, which outbound was used, and whether it timed out or failed to resolve. Before sharing logs, redact subscription URLs, server credentials, and other personal information. Access works as expected for the test destination only when the page loads and the logs show the expected outbound.
Built-in latency tests can help compare entries when you use the same test method, but they don't prove a connection works on their own. Different tests may measure a handshake, a webpage request, or another step. A successful test doesn't mean every website is reachable, and a timeout may be caused by the test destination. For your first setup, focus on loading a real page and checking the outbound logs; don't keep switching servers to chase a slightly lower test result.
If a Website Won't Load, Check the Connection Path Step by Step
First, check whether the client received a request. If there's no matching log entry, on desktop check that automatic system proxy configuration is still enabled, the local listening port matches, and the browser doesn't have its own proxy settings. On Android, check that the VPN is still running and the browser isn't excluded by per-app rules. Apps that don't follow the system proxy may not use it, so one app's result doesn't tell you how all apps will behave.
If a request appears but uses the wrong outbound, check the routing preset first. Temporarily switch to Global and send the same request again. If access works, the issue is more likely a rule match than the server configuration. Note the destination and matched rule, then restore your original settings and consult the relevant section of the protocol guide. Don't delete all your routing rules.
If the request reaches proxy outbound but still fails, check the error type. For a DNS resolution failure, check the DNS settings and your device's basic network connection. For a handshake or authentication failure, check the system time and subscription parameters. If connections keep timing out, compare with another known working entry. Change one setting at a time and repeat the same request to see whether it helped. If all entries fail, ask your provider to check your account, data allowance, and server status.
Finally, Test How to Stop and Restore Network Access
After verifying the connection, make sure you know how to disconnect. In v2rayN, select Clear system proxy before exiting so the system doesn't keep sending requests to a stopped local port. Restore any custom system proxy settings you had before. In v2rayNG, tap Stop, confirm the VPN has stopped, then check that your regular network access is back.
Once the initial setup works, remember the working group, active server, and routing preset. There's no need to enable every advanced feature right away. If server entries change later, update the subscription first. If only some sites have trouble, check routing. If no apps can connect, review traffic capture and the basic network settings one by one. This helps pinpoint the problem instead of starting over with a reinstall.