Skip to content

v2rayN First Connection Guide: Choose a Server, Test Real-World Latency, and Verify Your Proxy

After importing a subscription, test server latency to find a working connection. Set the system proxy and routing mode, then verify traffic in your browser and from the command line.

At a Glance

For users who have imported a subscription but aren't sure how to connect. Start by testing server latency to identify working nodes. Then check the active server, local listener, and system proxy. Finally, compare browser access, command-line requests, and core logs to tell apart an unreachable server, an app that isn't using the proxy, and a routing mismatch.

1. After Importing a Subscription, Check Your Servers and Local Listener

A successful subscription update only means the client downloaded a configuration it could parse; it doesn't mean every server in it is reachable. v2rayN is the management interface, while the selected core establishes the connection. Once server names, addresses, and protocols appear in the list, you still need to test a server, set it as active, and start the core.

This guide uses v2rayN on Windows desktop. Menu locations may differ between Desktop and WPF interfaces, so use the menu labels below to find settings. If you can't find a matching item, check your interface and version rather than guessing from screenshots. For the initial test, leave TUN off and disable other proxy apps to reduce routing and port conflicts.

  1. Check the Subscription Group

    Open “Subscription Group” in the main window, select the group you just imported, and make sure the server list isn't empty. Check the expiration date and data allowance. A region in a server name is only a label; it doesn't confirm the exit location or availability.

  2. Check the Listening Port

    Go to “Settings” → “Parameter Settings” and find the local listening port options. Note the port and supported proxy types. The examples below use the mixed port 10808 configured on this machine. If your interface shows a different port, update the commands accordingly.

  3. Choose a Few Servers

    Start with 3–5 servers from the same subscription, prioritizing nearby locations and routes the provider recommends for your network. Don't test hundreds of servers at once; concurrent requests can skew the results.

  4. Open the Logs

    Expand the log panel in the main window and check the core startup messages. If you see address already in use, resolve the local port conflict first; switching remote servers usually won't help.

2. How to Test Real-World Latency and Choose a Server

Select the servers you want to test, right-click the server list, and choose “Test server real connection latency.” Wait for the results. Some interfaces add a multi-select or keyboard shortcut hint to the menu item. Don't keep switching cores, changing the test URL, or updating the subscription while a test is running; results from different runs won't be easy to compare.

A real-connection latency test accesses the configured test URL through a server, making it a better proxy-path check than simply probing the server's TCP port. Still, the result reflects only one test against one target, on one server, under current network conditions. It doesn't guarantee that every website will work or indicate download speed. If the test target is unavailable, several healthy routes may all appear to fail.

Result or symptomWhat it tells youNext step
TCP probe succeedsThe server port accepts a connection, but proxy authentication may still failRun a real-connection latency test
Real-connection test returns a latencyThe test target was reachable through this server for that testRepeat the test and verify access to actual websites
Timeout or failureThe request didn't complete under the test conditions; this alone doesn't prove the server is downCheck the logs, test target, and network
Occasionally very low latency, frequent failuresThe connection is unstable; choosing by the lowest number alone can be misleadingPrefer servers that succeed consistently

Choose based on repeated results, not just the lowest latency

Run three tests in a row on each candidate server, waiting a few seconds between runs. For example, if one server returns 120, 135, and 128 ms while another returns 80 ms, times out, then returns 900 ms, start with the first one. These figures illustrate how to interpret results; they aren't measurements from this site or a performance guarantee. Bandwidth, congestion, and rate limits on the destination can all make a low-latency server slow to download.

3. Set an Active Server and Enable the System Proxy

Select a server that passed the test, right-click it, and choose “Set as active server.” Wait for the core to reload. A highlighted selection isn't necessarily the active server, so confirm which item is marked active. Next, open “System Proxy” in the tray menu and choose “Automatically configure system proxy.” Then check the logs for startup errors.

For the initial check, temporarily select “Routing” → “Global” so ordinary requests are more likely to use the proxy, reducing interference from routing rules. “Global” describes how the core routes connections it receives; it doesn't make every app send its traffic to the core, nor does it necessarily remove special rules for loopback or local network traffic. Switch back to your preferred routing mode after verification.

Initial Verification Settings

Active server
A server that passed multiple real-connection tests
System proxy
Automatically configure system proxy
Routing mode
Temporarily select Global
TUN mode
Off, to isolate variables

Verify the explicit proxy path first; don't enable multiple traffic-capture methods at once.

Everyday Settings

Active server
A frequently used server confirmed to be stable
System proxy
Choose based on whether the app follows system settings
Routing mode
Select routing rules as needed
Backup server
Keep another server that passed the tests

After switching back to rule-based routing, check which outbound route matches the target domain. Don't rely on results from Global mode.

4. Verify in a Browser: Check the Page, Exit IP, and Logs

With the system proxy enabled, open a new page in a browser that follows Windows system proxy settings. If the browser has a proxy extension, a separate proxy configured, or its own bypass rules, disable those overrides temporarily. A page loading is only the first clue: the site might have been reachable directly anyway.

  1. Test a fresh request: Open a frequently used HTTPS site and refresh it; don't judge by a cached page. Note the time so you can find the corresponding log entries.
  2. Check the exit IP: Use a trusted IP lookup page and compare the public IP with and without the proxy. Don't use a lookup service that asks for your subscription or account details.
  3. Check the outbound route: Find the destination domain and outbound route in the core logs for the same time. If the outbound is shown as direct, the request may have reached the core but matched a direct-routing rule.
  4. Test routing rules: After switching from Global back to your everyday rules, visit a site that should use the proxy and one that should connect directly. Confirm both behave as expected.

A changed exit IP is useful evidence, but geolocation databases can be outdated, and a single route may use multiple exit IPs. Don't rely solely on the country or city shown, and don't assume a mismatch between the exit region and server name means the connection failed. Check the IP, actual requests, and logs together. If logging is set to a low detail level, missing per-request entries alone don't prove that a request bypassed the core.

5. Verify from the Command Line with an Explicit Local Proxy

Command-line tools may not read Windows system proxy settings. To check the path from the local core to the remote server, specify a SOCKS proxy explicitly as shown below, without relying on the system proxy toggle. First confirm that 127.0.0.1:10808 provides a SOCKS or mixed listener on your machine. If your port differs, replace it before running the command.

10808
Local proxy port used in this guide
10 seconds
Maximum time for the connection phase set by the command
20 seconds
Maximum total time for the request set by the command

Run the following command in PowerShell. Use curl.exe to avoid invoking a same-named alias in some environments. socks5h sends the destination hostname to the proxy for resolution, helping separate local DNS effects from proxy connectivity. If you've set the NO_PROXY environment variable, make sure it doesn't bypass the proxy for the test domain.

curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com

Receiving an HTTP response from the destination means the explicit proxy request completed a network exchange. For a response such as 403, distinguish the website's access policy from a connection failure. This alone doesn't prove your browser is using the proxy. To compare with a direct request, run the command below; even if both requests succeed, that doesn't prove they use the same exit IP.

curl.exe --noproxy "*" --connect-timeout 10 --max-time 20 -I https://example.com

If needed, check whether the port is listening

Check the local listener in PowerShell. OwningProcess in the output is the process ID. A listening port only proves that a process has bound to it. In Task Manager, open “Details” and check whether that ID belongs to the expected core. If there's no output, return to the logs and resolve the startup error first.

Get-NetTCPConnection -LocalPort 10808 -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess

6. First-Connection FAQs and Final Checks

The real-connection test returned a latency. Why won't the website load?

The test URL and the website are different targets. Set the server that passed the test as active, temporarily select Global routing, then try the website in your browser and with the explicit proxy command. If only that site fails, check its access restrictions, DNS, and logs. A successful test doesn't mean every destination is reachable.

System proxy is enabled. Why is an app still connecting directly?

Some apps don't read system proxy settings, or their own proxy configuration overrides them. Check the app for HTTP or SOCKS proxy settings and enter the local address and port you've confirmed. Once the basic connection works, consider TUN if the app requires it. Don't make it the first switch you try while troubleshooting.

Do I need to reimport the subscription after switching servers?

Usually not. Right-click the new server, choose “Set as active server,” and wait for the core to reload before opening a new browser connection. Existing long-lived connections may still use the previous route. If needed, close the relevant page or restart the app you're testing, then try again.

Why can't my browser connect after I exit the client?

Reopen v2rayN, go to “System Proxy,” and choose “Clear system proxy” before exiting. If the problem persists, check for leftover settings under Windows “Settings” → “Network & Internet” → “Proxy.” On a work-managed device, follow your administrator's instructions and don't remove organization-managed settings.

A successful first connection isn't just a green latency number. Look for repeatable results: the active server is clear, the core is listening normally, explicit proxy requests succeed, and the browser's exit IP and routing match your expectations. Note the working server, local port, and everyday routing mode. If something breaks later, you can repeat the same tests to identify what changed without altering several settings at once.

Download a clientWindows · Android · macOS · Linux