Basic Setup · 4 Steps

v2rayN Setup Guide

Import a subscription → Choose a proxy mode → Connect → Test the connection. Get a standard proxy connection working first; consider TUN and custom rules later.

Before You Start: Client and Subscription URL

This guide walks through a basic setup that takes about 10 minutes, depending on your installation and network. First, choose a client for your device from the download page, install it, and open the main window. You’ll also need a valid subscription URL from your service provider. The client reads the configuration and connects to a server; it does not create a server account for you.

Subscription URLs usually contain access credentials, so treat them like account information. Copy the full URL without any surrounding instructions, spaces, or line breaks. Don’t post it in public forums or share screenshots that show the URL. If you don’t have a subscription yet, get a valid configuration before continuing. Repeatedly clicking Update won’t provide missing account details.

For your first setup, run only one proxy client and note whether your current network can access the sites you normally use. Change one type of setting at a time so you can revert if something goes wrong. Leave DNS settings and unfamiliar routing templates alone, and keep TUN off until you have a basic connection working.

01 Import a Subscription: Populate the Server List

Importing a subscription involves two steps: saving the URL and fetching its contents. Saving only tells the client to remember the URL; you must also update the subscription to populate the server list. First, check that the configuration was fetched. Don’t worry about whether the servers can connect yet.

v2rayN: Add a Subscription Group and Update It

Open the Subscription Groups menu at the top, choose Subscription Group Settings, and click Add. Give the group a recognizable name, such as “Daily,” then paste the full URL into the subscription address field. Keep the other defaults for your first setup. In particular, leave Server Filter (Regex) empty; a filter could hide every entry you just fetched. Save the settings and return to the main window.

Open the Subscription Groups menu again and choose Update Subscriptions (without proxy), or the equivalent option. Since you haven’t connected through a proxy yet, try updating over your current network first. Wait for the update to finish, then check the log at the bottom for a successful fetch. Switch to the group you just created and make sure it contains server entries. Don’t rely on the All group alone; it may include older configurations.

If a direct update fails, check that you copied the full URL, your account is still active, and your current network can reach the subscription service. Try Update via proxy only if you already have a working proxy connection. It won’t fix every subscription error; without a working connection, the request will still fail. See subscription update troubleshooting in the FAQ for more help.

v2rayNG: Add a Group and Fetch the Subscription

Open Subscription Group Settings from the side menu, tap Add, enter a name and subscription URL, then save. Return to the main screen and choose Update Subscriptions from the top-right menu. If you can update either the current group or all subscriptions, select the group you just created for your first update. When it finishes, switch to that group and check for server entries.

Import from clipboard is better suited to a single shared configuration. Don’t treat every subscription URL as a link for one server. If parsing fails after pasting, add the URL in Subscription Group Settings instead of repeatedly importing it. A subscription URL fetches a collection of configurations; a single share link describes one connection configuration.

You’re ready to continue when the group contains server configurations. That doesn’t mean you’re connected or that every server in the list is usable. Keep the parameters provided by the subscription; don’t manually change the port, transport, or REALITY fields. Next, choose how traffic should enter the client.

02 Choose a Mode: Separate Traffic Entry from Routing

The system proxy determines how requests enter the client. Routing rules determine which outbound connection handles them. They’re separate settings.

v2rayN: Start with the Standard System Proxy

Find the System Proxy and Routing options in the status bar at the bottom of the main window. Some versions also provide them in the tray icon’s right-click menu. For your first connection, use the standard system proxy and leave Enable Tun turned off. Under Routing, choose the built-in Bypass LAN and mainland China addresses preset, or its equivalent. If the preset has a different name in your version, read its description to confirm it includes the direct and proxy rules you need.

The system proxy mainly affects apps that follow system proxy settings, such as browsers using their default network settings. It does not force every connection on your device through the client. If an app still connects directly, check whether it has its own proxy settings before assuming the server is down. If you later need to route traffic from more apps, follow the advanced setup guide for TUN and permissions.

Global Proxy is usually a routing option: it sends regular requests that enter the client through the proxy outbound. It does not automatically route every app through the client. To troubleshoot a basic connection, you can briefly compare this mode with split routing, then switch back to the preset that suits your daily use. Don’t change the system proxy, routing, and DNS all at once to fix a single page.

v2rayNG: Keep the Default Routing and Approve the VPN Request

v2rayNG typically receives app traffic through Android’s VPN interface, rather than asking you to set a local proxy port in each app. Keep the default routing for your first setup. Don’t enable custom rules or per-app proxy settings yet. If you previously chose which apps to proxy, make sure your test browser is included; otherwise, the connection may be active while the browser bypasses the client.

Use only one tool at a time that needs Android’s VPN interface. Other VPN services and network tools that use the same interface may conflict with the client. Stop any other connection before continuing. A VPN status showing as active only means the device’s traffic entry point is set up; it doesn’t prove the remote server is reachable.

By the end of this step, you should be able to describe your setup: the desktop client uses the system proxy to receive browser requests, while the Android client uses the VPN interface to receive requests from selected apps. Leave the built-in routing rules in place for now. Next, choose a server and connect.

03 Connect: Select a Server and Check the Logs

The highlighted row in the server list may not be the active server. In some versions, clicking a row only selects it; you still need to set it as the active server. Confirm which configuration is active before enabling traffic. This avoids checking one entry while connecting through another.

v2rayN: Set the Active Server and Enable the System Proxy

Select a server in the subscription group, double-click it, or choose Set as Active Server from the right-click menu. Check that the active indicator or main window status changes. If your version supports connection tests, use the results as a guide, but don’t rely on them alone: the test destination may differ from the site you’ll visit in your browser.

Next, set System Proxy to Auto Configure System Proxy. After you select an active server, v2rayN usually starts or reloads the core. If your version provides an option to start or restart the service, follow the on-screen instructions. Open the logs and check the latest startup entries. The lack of a separate Connect button doesn’t mean you missed a step. What matters is that the active configuration is loaded, the core is running, and the system proxy points to the client.

If the logs show a port conflict, close other proxy processes before restarting the client. Don’t change multiple listening ports at random. If configuration parsing fails, update the subscription again and check that you haven’t broken any parameters by editing them manually. If a remote connection times out after startup, test a request in the next step to tell a local entry-point issue from a remote connection issue.

v2rayNG: Tap Connect and Approve the System Request

Return to the main screen, select the server you want to use, and check that it’s marked as selected. Then tap Connect. The first time you connect, Android will ask to set up a VPN connection. Review the request, confirm it’s from the client you’re using, and approve it. Without permission, the client can’t route app traffic through the VPN interface.

After connecting, check the status on the main screen and the VPN indicator in Android. If the connection stops right away, open the client logs to check the error. If it disconnects only after running in the background, note when it happens, then check battery optimization and background restrictions in the FAQ. Keep the app in the foreground during your first test to reduce interference from background policies.

At this point, you’ve confirmed only that the client tried to run. A “Running” status, an Android VPN indicator, or a successful subscription update doesn’t prove that traffic works. Keep the other settings unchanged and test a request in your browser.

04 Test the Connection: Compare Page Results and Logs

Open a new browser tab and visit a page you expect to access through the proxy. On desktop, use a browser that follows system proxy settings, and temporarily disable any browser extensions that set up their own proxy. On Android, make sure the browser isn’t excluded by per-app settings. Load a fresh page rather than relying on an existing tab, so cached content isn’t mistaken for a new network request.

Confirm Traffic Reaches the Client, Then Check the Remote Response

Check the client logs while loading the page. If the current log level records access requests, look for the domain at the time you visited and check for connection status or outbound details. The information shown varies by core and logging settings, so the absence of a domain entry alone doesn’t prove the request never reached the client. Check that access logging is enabled and set to the right level, then compare the logs with the browser result.

Next, visit a familiar site you expect to connect to directly and confirm your regular network still works. With split routing, the two pages may use different outbound connections; that’s expected. To check your public IP address, use a trusted network diagnostic site and compare the result with your service provider’s guidance. Remember, one result reflects only that request; it doesn’t prove every app on your device uses the proxy.

Inconsistent Results? Troubleshoot by Layer

If the list is empty, go back to the subscription step. Check the group, subscription URL, and filter settings. There’s no point changing proxy modes before the client has a usable connection configuration. If the list is populated but parsing fails, update the subscription again and check that your client and core support the protocols and transport parameters it contains.

If the core is running but browser requests aren’t reaching it, check the traffic entry point. On desktop, confirm Auto Configure System Proxy is still selected and the browser isn’t set to bypass the proxy or use a different one. On Android, make sure the VPN connection is active and the test app isn’t excluded. Command-line tools and some apps don’t follow system proxy settings, so don’t use them as your only test for a basic setup.

If requests reach the client but remote connections fail, check the server and network. Switch to another server in the same subscription without changing any other settings, then revisit the same page. If only one destination fails, check for a site-specific, routing, or DNS issue. If all destinations fail, note the error in the logs and follow the troubleshooting guide. Before sharing logs, remove subscription URLs, user IDs, and other account information.

If you see a name resolution error, don’t immediately replace all DNS servers with addresses you found online. First confirm whether a regular connection works, then distinguish between local DNS resolution, proxy-side resolution, and the destination connection path. The advanced setup guide explains DNS, FakeDNS, and custom routing in detail. For now, stick with the basic setup to keep troubleshooting focused.

When You’re Done: Restore Network Settings Before Exiting

On desktop, set System Proxy to Clear System Proxy before exiting v2rayN. Closing the main window may only minimize the app to the system tray, not quit it. If the client exits unexpectedly and your browser stops working while other network functions still work, check whether the system proxy still points to a local port that is no longer active.

On Android, tap Stop in v2rayNG and make sure the VPN indicator disappears before leaving the app. If you enabled Always-on VPN or Block connections without VPN in Android settings, those options can affect connectivity after you stop. Check the relevant system settings instead of repeatedly removing the subscription.

After confirming the connection works, keep a copy of the basic setup that you tested. When adding per-app proxy settings, subscription filters, or TUN later, enable one feature at a time and repeat the page-and-log checks in this section. See the client selection guide if you want to switch clients, or the advanced setup guide to customize routing. There’s no need to turn on every advanced option during your first connection.