Getting Started / Four-Step Setup
V2Ray Setup Guide
Import a subscription → choose a proxy mode → connect → test your setup. If you already have the installer and a valid subscription, follow these steps for your first setup; allow about 10 minutes. Network and subscription issues may require separate troubleshooting.
Before You Start
Choose an installer for your device from the client downloads page, then install and open the client. On desktop, start by running it without elevated permissions; on Android, open the app after installation. An empty list is normal at this point: installing the client does not add servers.
Get a subscription link you’re authorized to use and confirm that your current network is online. Subscriptions usually come from a service provider or a configuration service you manage yourself; the client and subscription are separate. A subscription link may contain access credentials, so don’t share it in public chats, screenshots, or bug reports. If you don’t have a configuration yet, stop here rather than repeatedly switching modes to try to connect.
This guide covers only the settings needed for your first connection. For installation details, device architecture, and platform permissions, see the cross-platform guide. If you already have a specific error, go straight to FAQs.
Step 1: Import a Subscription
Save the subscription as a group, then update it. Pasting a URL alone doesn’t import server configurations; proceed only after the update succeeds and entries appear in the main list. Copy the complete link first, making sure not to include surrounding instructions, line breaks, or trailing spaces. If your provider gave you a single server share link rather than a subscription URL, use the client’s clipboard import feature instead—these are separate workflows.
v2rayN: Add a Group and Update Servers
Open Subscription Group at the top of the main window, then select Subscription Group Settings and add a group. Enter a recognizable name under Remarks, such as “Daily use,” paste the link into the subscription URL field, make sure the group is enabled, and save. The remark is a local label and doesn’t affect the connection; what matters is that the URL is complete and the subscription is valid. Leave the other options at their defaults for now; you don’t need to add filters for the initial import.
Return to the main window, open Subscription Group, and select Update All Subscriptions (without proxy). A first-time setup has no working proxy yet, so this is usually the right option. If your provider specifically requires an existing proxy to access the subscription URL, follow its instructions and choose the appropriate update method. When the update finishes, select All or the group you just created in the left pane. The main list should show server details such as type, alias, address, and port. Entry names are set by the provider and don’t need to match the examples in this guide.
If the update fails, return to the group settings and check whether the URL was truncated, the subscription has expired, or your network can reach the subscription service. If the update reports success but the list is still empty, check that you selected the right group and haven’t applied filters. Don’t create the same subscription again and again; that makes later selection and troubleshooting more confusing. See FAQs about subscriptions and empty server lists for more details.
v2rayNG: Save the Subscription, Then Update It
Open the side menu on the main screen, go to Subscription Group Settings, tap the add button, enter a remark, and paste the subscription link. Save it and return to the main screen. Open the menu in the top-right corner and select Update Subscription. Some versions show separate options for updating with or without a proxy; for your first connection, choose the option without a proxy. When the update finishes, make sure server entries appear on the main screen and that you’re viewing the correct subscription group.
On both platforms, make sure the list contains servers before choosing a proxy mode. If the subscription returns a sign-in page, account prompt, or error text, the client may not recognize it—even if the link opens in a browser. Go back to your provider’s configuration page and get the correct subscription URL instead of manually editing server addresses or protocol fields.
Step 2: Choose a Proxy Mode
First, distinguish how apps connect to the proxy from how traffic is routed after it gets there. On desktop, the system proxy handles the connection; the routing mode determines whether traffic goes direct or through a server. They are separate settings. For a first setup, use the system proxy with a built-in routing preset. Don’t also enable TUN, a browser proxy extension, or another proxy client, as multiple programs changing the same settings can cause conflicts.
v2rayN: Set the System Proxy and Routing Separately
Find System Proxy at the bottom of the main window or in the taskbar tray menu, then select Set system proxy automatically. This sends requests from browsers and apps that respect system proxy settings to the local listening port. If the client core hasn’t started, those apps may temporarily lose network access, so continue to step 3 as soon as you’ve selected this option. Keep the default listening settings for your first setup; don’t enter a separate port in your browser, as the settings may not match.
Next, open Routing and select Bypass mainland China. This preset sends traffic covered by direct-connection rules straight to its destination and routes other traffic through the proxy. Rule matching depends on the destination domain, DNS results, and rule data. Check the access log to confirm the actual outbound. Global mode can help with a brief comparison, but it affects only requests that reach the client; it doesn’t automatically route traffic from every app or enable TUN.
Leave TUN off for now. The system proxy is enough to test common browser use. If you need to route apps that don’t respect system proxy settings, follow the platform setup section in the cross-platform guide to configure permissions, a virtual network adapter, and routing. This isn’t about giving up features; it keeps your first troubleshooting pass focused on a single, clear traffic path.
v2rayNG: Keep the Default Connection Method
Open Settings in the side menu and look for Routing settings. Choose a built-in preset to bypass LAN and mainland China addresses if it suits your needs. Depending on the version, it may be labeled Bypass LAN and mainland China addresses or something similar. Start with a preset rather than adding custom domain lists. If you can’t find the option, keep the default rules, connect first, and adjust routing later if needed.
On Android, keep the default VPN connection method and leave per-app proxy settings unchanged for now. If per-app settings are already enabled, make sure your test browser isn’t excluded; otherwise, its requests may bypass the proxy even when the client is connected. Once these settings are in place, return to the server list. The next step is simply to select a server and connect—there’s no need to change protocol, transport, or TLS fields.
Step 3: Select a Server and Connect
Now establish a real connection. A populated server list only means the configuration was imported; it doesn’t guarantee that every entry is currently available. Start with one server recommended by your provider for a clear purpose, and test it fully before switching. Don’t select and test multiple entries at once, and don’t assume a region in the server name guarantees network quality.
v2rayN: Set an Active Server and Check Its Status
Right-click the target entry in the main list and select Set as active server. Some versions also let you select a server by double-clicking it. Check that the active-server indicator changes, confirming that you’ve selected the server—not just highlighted its row. The client will usually reload the service automatically. If the logs stop updating or you’ve just changed settings, click Restart service at the top and wait for startup to finish.
Open the log panel in the main window. Check for configuration loading and listener startup messages, then look for errors that keep repeating. Seeing the core start or a local port begin listening only confirms that the local proxy process is running; it doesn’t prove the remote server is reachable. If a port is already in use, close duplicate client instances or other programs using the same port, then restart the service. Don’t disable your system’s security settings.
Also check System Proxy and confirm that Set system proxy automatically is still selected. Other network tools may override system proxy settings. If the core is running but your browser isn’t using the proxy, check this setting before switching servers. If you’re on a managed device or workplace network, follow its existing policies and don’t change administrator settings without permission.
v2rayNG: Approve the System Connection Request
Tap a server on the main screen and confirm that it’s selected, then tap the connect button at the bottom right. The first time you connect, Android will show a VPN connection request. Confirm that the request is from the current client and allow it. Return to the main screen and check the button, status message, and connection indicator in the status bar or notification. The icon’s location varies by system, and its appearance alone doesn’t prove that the network is working.
If another VPN app is already running, disconnect it before starting v2rayNG to avoid the system replacing the connection. While testing for the first time, keep the client in the foreground or allow it to run normally in the background; don’t rush to clear it from recent apps. If it disconnects immediately or drops as soon as you lock the screen, check battery optimization and background activity settings. These are stability issues to address later, not a reason to change every permission before a connection is established.
You’re ready for the next step when the target server is selected, the local service hasn’t immediately exited, and the system proxy or Android VPN is enabled. Test real website access next to confirm that the full connection works.
Step 4: Test Whether the Proxy Is Working
Test with a real request instead of relying on the connection button. Open your usual browser, start a new tab, and visit a website you intend to access through the proxy. Check that both the homepage and subsequent pages load. Then visit a site that should connect directly under your current routing rules to make sure normal browsing still works. Cached pages, offline content, or reused connections can give misleading results; if needed, close the original tab and try again.
Compare Website Access with the Logs
In v2rayN, check the runtime logs from when you tested. If your current log level records connection details, use the destination domain and outbound tag to check where requests went. Not every log level shows each request, so the absence of a particular log entry doesn’t by itself prove that a request bypassed the client. On Android, use v2rayNG logs or connection tests as a guide, but prioritize whether the website actually loads in your browser.
Latency tests are a diagnostic aid, not a final verdict. A test may check only port connectivity or send a request to a specific test URL; a blocked test URL or an unreachable destination on the server can affect the result. Conversely, a latency reading doesn’t guarantee that a target website’s login, images, and videos will all work. For details on different test results, see the V2Ray latency test guide.
If It Doesn’t Work, Check These in Order
First, make sure you selected the right server. If your provider allows it, test another entry. Next, check how the app connects: on desktop, confirm that automatic system proxy settings are still enabled and that a browser extension isn’t forcing a direct connection. On Android, check that the VPN is still connected and that per-app rules haven’t excluded the test app. If only some apps fail, start here rather than reinstalling the client.
If the app is using the proxy, check routing next. Temporarily switch to Global mode and test the same website in the same browser. If the result changes, review your routing rules and switch back; don’t treat the comparison mode as a permanent fix. Investigate DNS only if the logs show a resolution error. For handshake or authentication errors, check the device clock, subscription, and provider configuration. Change one setting at a time and note its original value so you can tell what made a difference.
If you still can’t pinpoint the issue, keep the problem in a reproducible state and check the troubleshooting FAQs. For TUN, advanced routing, or platform-specific desktop setup, continue with the cross-platform guide. This guide ends once you can access the target website; there’s no need to add extra routing rules just to finish the initial setup.
Disconnecting and Starting Again
When you’re done on desktop, select Clear system proxy under System Proxy before closing the client. Otherwise, your browser may keep pointing to a local port that’s no longer active. If your device originally used a workplace or manually configured proxy, restore those settings instead of clearing them. On Android, tap Stop to disconnect. If network access doesn’t return, check whether the system has an always-on VPN enabled or blocks connections outside the VPN.
You usually don’t need to import the subscription again next time. Open the client, update the subscription if needed, confirm the active server and routing mode, then enable the proxy and test real website access. If an update removes the old entry, select a valid server instead of relying on its former name. That completes the subscription, proxy setup, connection, and verification workflow; use the same sequence to check each layer when you make changes later.