For your first setup, take care of four things: choose the right client, import a working subscription, select an active server, and enable the right traffic entry point. This guide focuses on v2rayN for Windows, notes how desktop and Android client choices differ, and walks through subscription timeouts, browser access issues, port conflicts, and DNS errors separately. By the end, you’ll have a basic working connection without changing every setting at once.
1. Are V2Ray, Xray, and v2rayN the same software?
No. V2Ray and Xray are proxy cores; v2rayN is a client that manages configuration and runs a core. The core listens on local ports, connects to remote servers, and applies routing rules. The client displays server lists, imports subscriptions, and configures the system proxy. An open window only means the interface is running; it doesn’t confirm that the core started successfully.
- v2rayN: A desktop client with releases for Windows, macOS, and Linux. Supported configuration fields depend on the core in use and its version.
- v2rayNG: An Android client that uses the Xray core. Connections commonly use Android’s VPN permission.
- v2flyNG: An Android client that uses the v2fly core. Before importing, confirm that the core supports the node’s settings.
VMess and VLESS are protocol names, not client names. REALITY is a security layer, while XTLS Vision is a flow-control mode. A subscription that uses VLESS may include settings that not every core supports. If a field isn’t supported, check the client and core capabilities before switching to a different protocol.
2. How do I choose the right OS, architecture, and package?
Check your operating system and processor architecture first, then choose the package type. Windows x64 and ARM64, Intel and Apple Silicon Macs, and Linux package formats aren’t interchangeable just because their filenames look similar. In Windows, find your system type under Settings → System → About. All downloads are available from the Download Center.
-
Check your architecture
Note your operating system and processor architecture. On Linux, run
uname -m:x86_64usually means x64, whileaarch64usually means ARM64. -
Choose a package
Install a setup package using your operating system’s normal process. For an archive, extract all files to a writable folder before launching the app. Don’t run the main program from an archive preview window.
-
Launch for the first time
On Windows, run
v2rayN.exefrom the extracted folder. Standard system proxy use usually doesn’t require administrator privileges. Follow the prompts for authorization only when enabling features such as TUN. -
Check the logs
Make sure the client can read its configuration and that the core doesn’t exit immediately. If you’re prompted to install a runtime, install the one required by that release. Don’t mix program files from other versions into the current folder.
Menu names here follow the commonly used Chinese interface in v2rayN; their locations can vary between versions. Look for features such as “Subscription Group,” “System Proxy,” and “Routing,” rather than relying on the exact positions shown in older screenshots.
3. Can I connect as soon as the app is installed? Where do servers come from?
No. A client isn’t a server, and installing it doesn’t create a working connection. You need to import a node configuration or subscription link that you’re authorized to use. A subscription usually returns a list of nodes; each node contains details such as a remote address, port, protocol, and authentication. They serve different purposes.
| What you have | Where to import it | What to check after importing |
|---|---|---|
| Subscription link | Subscription Group settings | Whether a server list appears after updating |
| Single-node share link | Import share link from clipboard | Whether protocol, address, and transport settings are complete |
| Complete JSON configuration | The corresponding configuration import feature | Whether the configuration format matches the current core |
Don’t use the subscription page’s login URL as the subscription link, or paste a subscription link into a node’s “Address” field. Subscription URLs may contain account tokens that others could use if exposed. When asking for help, hide the link, user identifiers, and authentication details; share only the error category needed for troubleshooting.
4. Where do I paste a subscription link, and how do I update it?
Save the link in a subscription group, then update it. Saving a group name alone won’t download any nodes. These steps use the commonly seen v2rayN desktop interface. After importing, check that the list contains entries before trying to connect.
-
Open subscription groups
Go to “Subscription Group” → “Subscription Group Settings” and add a group. Give it a descriptive name so you can identify it later.
-
Paste the link
Paste the complete subscription URL into the URL field. Check for spaces or line breaks at the beginning or end, save, and return to the main window.
-
Update the subscription
Under “Subscription Group,” select “Update All Subscriptions (without proxy).” If you have a working connection and a direct update fails, try “Update All Subscriptions (through proxy).”
-
Check the result
Check the update status and server list. If the list is empty, review the update log first. If nodes appear, select one and use the right-click menu to set it as the active server.
On a first setup, you usually won’t have a working proxy yet, so choosing an update through the proxy can create a loop: you need a connection to get the configuration for a connection. If a direct update never retrieves the subscription, check that the link is valid and reachable from your current network. Ask the configuration provider how to import it if needed; don’t keep switching protocols at random.
5. Why doesn’t my browser use the proxy after I select a server?
The active server determines where traffic goes; the system proxy determines which apps send traffic to the client. In Windows, right-click the tray icon and select “System Proxy” → “Set system proxy.” Then visit a site in your browser and check whether the client log shows a new request.
The three values below are examples to help distinguish the local and remote ends of a connection, not settings to overwrite your existing configuration. Check the actual listening port under “Settings” → “Parameter Settings,” in the local listening options, and compare it with the startup log.
Check that the request reaches the local entry point first
If the log shows no new requests at all when you browse, check the system proxy and the browser’s own proxy settings first. If an outbound connection error appears, check the remote node. Don’t keep switching servers before the local entry point is working.
Some apps ignore the system proxy, and browser extensions can override system settings. So a working browser doesn’t mean every app is using the proxy. Avoid running multiple programs that change the system proxy at the same time; they can overwrite each other’s settings.
6. What’s the difference between the system proxy, global routing, and TUN?
The system proxy and TUN are traffic entry points; routing modes decide what happens after traffic enters the core. They control different layers. Switching routing to global proxy won’t make apps that ignore the system proxy start using it.
- System proxy: A good first test for browsers and other apps that follow system proxy settings. Its effects are relatively easy to identify.
- Global proxy routing: Usually sends traffic that has entered the core and falls within the mode’s scope through the proxy outbound. It doesn’t mean all device traffic is intercepted.
- TUN: Uses a virtual network interface to capture traffic from more apps. It involves permissions, routing, and DNS; exclusions, IPv6, and operating system limits still affect what it covers.
For a first setup, test a node with the system proxy before considering TUN. If you change the entry point, DNS, and routing all at once, it’s hard to tell what caused a failure. On Android, v2rayNG and v2flyNG connections typically require system VPN permission; check for other apps that may already be using the VPN slot.
7. How should I choose split-routing rules? Do I need to write my own?
Start with a built-in preset you understand; there’s no need to write JSON rules right away. Common rules that bypass the LAN and mainland China addresses can send some requests directly and route the rest through the proxy. The result depends on the preset’s domain and IP rules and whether its rule data loads correctly.
- Keep LAN traffic direct if you need to access your router or other local devices. With TUN enabled, also check the relevant exclusions and direct-connection rules.
- To check whether a routing rule is causing an issue with one site, briefly switch to global proxy routing for a test, then restore your previous policy.
- When adding custom rules, specify what they match and which outbound route they use. Rules are usually evaluated in order, so a broad rule near the top can override exceptions below it.
- Don’t paste configuration snippets from another core directly into the current configuration. The same concepts can use different field names, values, and default behavior across cores.
Split routing doesn’t inherently mean “mainland China sites always go direct, and everything else always uses the proxy.” Domain rules may be incomplete, and apps that connect directly to IP addresses have no domain to match. If one site has a problem, check which outbound route its request matched instead of guessing from the language of the webpage.
8. Why won’t a website load even though the latency test passes?
Different tests check different parts of the connection. A TCP connection test mainly checks whether a connection to the remote port can be established. It doesn’t confirm protocol authentication, the TLS handshake, proxy forwarding, or access to the destination site. A real connection test is closer to an application request, but only reflects the result for its specific test target.
- Check the test type first. Determine whether the result is TCP latency or real connection latency. Port reachability alone doesn’t prove the node is fully configured correctly.
- Then check the test target. A failed test against one address doesn’t mean every destination is unreachable. Cross-check with another known-good target instead of relying only on the color in the list.
- Check the authentication settings. Confirm the protocol, security layer, transport, server name, and other parameters match the provider’s configuration. Don’t disable the security layer without a reason.
- Check DNS separately. If the log shows a resolution failure, first determine whether it’s the node’s domain or the destination site’s domain, then check the corresponding DNS path.
Latency isn’t download speed. A low round-trip time doesn’t guarantee high bandwidth, and a single test can be affected by connection reuse and temporary congestion. To troubleshoot, keep the node, target, and entry point fixed, and change one setting at a time so you can compare results.
9. Which errors should I check first when a connection fails?
First confirm that the core starts, then check local listening, and finally check the remote server and DNS. Log details vary by operating system and core; the examples below are common error snippets. To find the cause, consider the connection address and surrounding log entries too—a single line isn’t enough to diagnose the issue.
Error: address already in use
Cause and fix: Another process is using the local listening address or port. Quit any duplicate client instances first. If the conflict persists, change the local listening port in the parameter settings and update any apps where you entered that port manually.
Error: connection refused
Cause and fix: The destination refused the connection. Check whether the destination is local or remote. For a local refusal, check whether the core is listening. For a remote refusal, verify the server address, service port, and server status.
Error: context deadline exceeded
Cause and fix: The operation didn’t finish before its deadline. The timeout may occur during connection, handshake, or request processing. Use the surrounding log entries to locate the stage, then check your current network, remote reachability, and node settings in order. Don’t assume DNS is the cause.
Error: no such host
Cause and fix: The domain couldn’t be resolved. Check the spelling and whether the subscription has expired, then check the resolver in use and its network path. Don’t mistake a destination domain issue for a local port problem.
To check whether the example port 10808 is listening on Windows, run the command below. LISTENING in the output means a process is listening; the last column contains its process ID. No output only means the query found no match—it doesn’t mean the remote server is unavailable.
netstat -ano | findstr ":10808"
Before sharing logs, hide subscription URLs, authentication fields, and personal identifiers. Include at least your operating system, client version, selected core version, entry mode, and a few lines before and after the error. “It won’t connect” alone doesn’t distinguish an entry point, DNS, handshake, or destination-site issue.
10. What should I watch out for when updating, quitting, or changing networks?
Keep a recoverable copy of your configuration and retest after your environment changes. Updating the client, updating a subscription, and switching networks affect different layers. If something fails, don’t immediately reinstall, overwrite the configuration, and change DNS all at once—you could lose useful troubleshooting information.
Why did my selected node change after updating the subscription?
A subscription update can add, remove, or rename nodes. After updating, check that the active server is still available and test a real connection. Manage custom nodes separately; don’t assume an update will preserve every old entry indefinitely.
Why can’t I browse after quitting the client?
First, select “Clear system proxy” under “System Proxy” in the tray menu, then quit. If the app exited unexpectedly, check Settings → Network & Internet → Proxy in Windows for a manual proxy still pointing to your local machine. Don’t overwrite proxy settings managed by your organization.
Why did the connection stop working after I switched from home Wi-Fi to a hotspot?
First make sure the hotspot itself has internet access, then test the current node again. If you’re using TUN, wait for the network to stabilize, then turn TUN off and back on to re-establish routing and DNS. If it still fails, save logs from before and after the switch, then check the entry point, remote server, and DNS in that order.
Before upgrading, save the client configuration and custom rules, and note which core is selected. After upgrading, test the basic connection with your existing node before trying new features. For more detailed instructions, read the installation and configuration guide. For help distinguishing protocol, routing, and DNS fields, see the technical reference.