v2rayN · v2rayNG / Quick Start
V2Ray Subscription Import and Connection
For your first setup, follow these steps: import a subscription → choose a proxy mode → connect → verify. Start with one server configuration and the default rules. Adjust advanced options only after confirming the connection works. Allow about 10 minutes; the actual time depends on subscription validity, system permissions, and network conditions.
Before You Begin
First, choose a client for your operating system from the Download Center, install it, and open the main screen. You don’t need to configure desktop and Android at the same time; just follow the instructions for your current device. If you’re unsure which client to use, read the client comparison first, then come back here.
The client reads configuration and routes traffic; it does not include a ready-to-use server. Before you start, get a valid subscription URL or a single share link from your service provider. Make sure you know where the URL came from and can tell a subscription URL from a website login URL: account management links usually can’t be used to update a subscription. Don’t enter your account password in the subscription URL field, or share a full link containing access credentials in a public forum.
Before setting up the client, make sure your device can access the internet without it and that the system date and time are reasonably accurate. Temporarily stop other apps that manage proxies or VPN connections to prevent them from competing for network access. If you already have a configuration, note the current mode and active server name so you can restore them later. You don’t need to delete existing groups to follow this guide.
Step 1: Import a Subscription
Importing a subscription involves two actions: saving the URL and fetching server configurations from it. Seeing a group name alone doesn’t mean the configurations have been retrieved. You’re done when the current group contains selectable configurations on the main screen, not just an empty group.
v2rayN: Add a Group, Then Update It
Open the “Subscription Groups” menu on the main screen, go to “Subscription Group Settings,” and choose Add. Give the group a short label that identifies its source, then paste the subscription URL into the address field. Check that it has no leading or trailing spaces, line breaks, or punctuation added by a messaging app, then save. If the screen includes optional fields such as filters, leave them at their defaults for the first import to avoid filtering out valid entries.
After saving, return to the “Subscription Groups” menu and update the group you just added. Some versions offer separate options to update through or without a proxy. If you don’t have a working connection yet, start with the direct update method, provided your current network can reach the URL. If the URL requires an existing proxy, set up a working connection first, then choose the appropriate update method. Don’t keep repeating an action that can’t reach the URL.
When the update finishes, check the notification and switch to the new group. The server list should show configuration details such as the protocol, address, or label. If the update reports success but the list is empty, clear the search field, check that the correct group is selected, and review the update log. You don’t need to enable TUN or change routing to fix an empty list; you haven’t started the connection step yet.
v2rayNG: Save the Subscription and Refresh the List
Open the side menu and go to “Subscription Group Settings.” Tap Add, enter a label and subscription URL, and save. Return to the main screen and choose Update Subscription from the menu. If your version offers “Update Current Group” and “Update All Subscriptions,” update only the new group the first time so you can identify which source produced the result. Wait for the update to finish, then check the server list.
If you have a single share link rather than a subscription URL, use the add option on the main screen to import it from the clipboard. A single share link describes one server; a subscription URL retrieves multiple configurations and lets you update them later. Both may look like links, but they use different import options. When the client asks to read the clipboard, make sure it contains exactly what you want to import.
After importing, check that the number of configurations looks reasonable and that there are no clear error messages in either client. If an update fails, don’t keep creating duplicate groups. Keep one group and check whether the URL is valid, reachable, and in a supported format. See the subscription update troubleshooting checklist for details. For the difference between subscriptions and share links, see the quick reference. Once the list looks right, move on to choosing how to route traffic.
Step 2: Choose a Proxy Mode
The proxy mode determines whether traffic can enter the client; routing rules determine where that traffic goes next. Treat these as two separate settings. For your first setup, use an approach that’s easy to monitor and undo. Don’t change the system proxy, TUN, DNS, and custom rules all at once. Otherwise, even if a page loads, it will be hard to tell which setting made the difference.
v2rayN: Start with the System Proxy
Find “System Proxy” on the main screen or in the tray menu, then choose “Set system proxy automatically” or the equivalent option. “Automatically” means the client configures the system proxy; it doesn’t automatically select a server. Keep the default routing preset and skip custom rules for now. If the interface offers options such as rule-based routing and global proxy, start with rule-based routing and use your test results to decide whether to change it.
The system proxy usually works with browsers and apps that read the system proxy settings, but not every program will follow it. If a particular app doesn’t work, check whether it has its own proxy settings before assuming the server is unavailable. Desktop environments and apps may handle system proxy settings differently on macOS and Linux. Check the system network settings and the behavior of the app you’re testing.
TUN is a separate way to capture traffic. It may require elevated permissions and uses a virtual network interface. Leave it off while getting started so you don’t have to troubleshoot both the system proxy and TUN at once. If you need to capture traffic from apps that don’t use the system proxy, configure TUN separately using the TUN guide in Advanced Configuration. Don’t enable it just because the option is there.
v2rayNG: Route Traffic Through VPN Mode
In v2rayNG settings, make sure VPN mode is enabled rather than a mode that only opens a local proxy port. VPN mode uses an Android system interface to receive app traffic; it doesn’t mean all traffic is sent to a remote server. Routing rules still decide whether traffic goes direct or through the proxy. Keep the default rules for your first setup, and handle system authorization when you connect in the next step.
If you’ve changed per-app proxy settings before, check what the app list means. Some settings proxy apps on the list; others bypass the proxy for listed apps. Make sure the browser you plan to test hasn’t been excluded by mistake. For your first test, temporarily turn off per-app filtering so you can establish a reliable baseline. Once it works, add the apps you need one at a time.
Step 3: Select a Server and Connect
Select one server with a clear source and a complete configuration. Don’t test every entry at once or change multiple settings at the same time. A label in the server list is just a name; it doesn’t prove the server is reachable right now. A successful subscription update only means the configuration was retrieved. Authentication, transport, and actual access can still fail.
v2rayN: Set an Active Server and Check the Core
Select the server you want in the server list, open the right-click menu, and choose “Set as active server” or a similar option. Some versions also let you switch servers by double-clicking. Afterward, check the active marker in the list and the status area; don’t rely on the mouse highlight alone. The client usually starts or reloads the core based on the current settings. If the interface shows that the core isn’t running, use the relevant start or restart option.
Then make sure the system proxy is still enabled as selected. If the system firewall prompts you the first time you connect, check the program name and installation location before deciding what to allow. Don’t disable the firewall entirely to troubleshoot. This guide only requires apps on your device to access the client; you don’t need to allow connections from your local network.
Expand the log panel and check for startup failures, port conflicts, or configuration parsing errors. A port conflict usually means another program or an old process is using the listening port. Stop the conflicting program or exit the old instance normally, then restart the client. Don’t change the local listening address to the remote server address; they serve different purposes.
v2rayNG: Select a Configuration and Approve the VPN Request
Tap the server you want on the main screen and make sure its selection marker is visible, then tap the Start button at the bottom. The first time you run it, Android will show a VPN connection request. Check that it comes from the current client, approve it, and wait for the app to show that it’s running. If another VPN is active, stop it normally before starting this client to prevent the connections from replacing one another.
After connecting, look for the VPN indicator in the notification bar or system status area, and check the client logs. The system indicator only confirms that the traffic-capture interface is active; it doesn’t prove the remote connection is working. If the connection stops when the app goes into the background, check battery optimization and background activity restrictions. Adjust settings only for the client that’s having the problem; there’s no need to grant unrestricted permissions to every app.
If the client reports an error as soon as you start, read the message before switching servers. For a configuration parsing error, go back to the import step and check the format. For a connection timeout, try another configuration from the same subscription. For an authentication error, check your subscription status and update it again. Change one thing at a time, note the result, then verify access in the final step.
Step 4: Verify the Connection and Disconnect
A proper test checks both whether the app you want to use works and whether its requests are going through the client as expected. A “running” status, a single latency test, or a VPN icon alone isn’t enough. Keep your current settings unchanged. Open a new browser tab, visit a page that normally works and shows fresh content, then try the specific service you need to access through the proxy.
Retry the Request and Check the Logs
Don’t rely on a page that was already open; cached content can still appear after the connection drops. Refresh the page or open it again and check that it continues to load. If you’ve already tested the same service, the app may be reusing an old connection. Close the relevant tabs or restart the app and try again. If the client provides logs or connection records, check for a request at the corresponding time and look for any related errors.
To check your exit IP, use a trusted IP lookup service and compare results before and after connecting under the same network and browser conditions. Routing rules may send the lookup page directly, so an unchanged IP doesn’t necessarily mean the client has failed. First check which route the lookup request uses. Likewise, a changed IP on one page doesn’t prove that all apps are being routed through the client.
Try two or three real tasks for a more reliable result, such as opening the target service, navigating to a subpage, and loading its normal resources. If only one type of resource fails, note the steps needed to reproduce it and then check routing or DNS rather than reinstalling the client right away. Don’t share screenshots that expose a full subscription URL, server credentials, or logs containing access tokens.
Troubleshoot in a Consistent Order
First, check whether traffic reaches the client: on desktop, check the system proxy and the browser’s own settings; on Android, check the connection status and per-app list. Next, verify that the correct server is active and try another configuration from the same source. Then check whether routing sends the target traffic through the intended outbound, and finally check DNS resolution and the system clock. Following this order helps avoid repeatedly changing remote settings before traffic even reaches the client.
If ordinary pages work but one service doesn’t, note the service and its error message. If every page fails, start with the local proxy entry point and connection logs. For more help with “connected but can’t open webpages” on desktop, see the system proxy, routing, and DNS checklist. Save custom routing, FakeDNS, and multiple outbound settings for Advanced Configuration; you don’t need them for this quick start.
Stop the Client Properly and Check Your Connection
When you’re done on desktop, first select Clear system proxy in v2rayN, then exit from the client’s menu. Closing the window may leave the app running in the system tray, so check the tray status. Clearing the system proxy only removes the system-level setting; it won’t undo proxy settings entered manually in other apps. Restore those separately if needed.
On Android, tap Stop in v2rayNG and make sure the VPN indicator disappears before exiting the app if you want to. Open an ordinary webpage to check that your connection is back to the expected state. Uninstalling the app isn’t a way to stop a connection. Manually configured proxy or traffic-capture settings may still affect connectivity after the app is removed.