V2RAY HELP
Common V2Ray Installation, Subscription, and Connection Issues
Common questions about v2rayN, v2rayNG, and v2flyNG are organized into fundamentals, installation and configuration, usage tips, and troubleshooting. First identify which layer is affected, then check the client, subscription, nodes, local proxy, and system network settings in order.
01 / Fundamentals
Clients, Cores, and Subscriptions
First distinguish the GUI client, runtime core, protocol type, and subscription format. Similar names do not mean that packages or configurations can be exchanged directly.
What are V2Ray, v2rayN, and v2rayNG?
V2Ray generally refers to the protocols, configuration system, and core ecosystem associated with Project V. v2rayN is a desktop GUI client for Windows, macOS, and Linux that handles subscription management, node selection, system proxy settings, and routing. v2rayNG is an Android GUI client that primarily uses the Xray core. They are not the same installation package, so choose the client based on your device platform.
What is the difference between the V2Fly and Xray cores?
V2Fly continues Project V’s open-source implementation and configuration system, while Xray extends a similar configuration structure with broader protocol and transport capabilities. Common VMess, VLESS, Trojan, and Shadowsocks configurations share many fields across the two cores, but their specific transport options are not identical. When importing a subscription, follow the protocol specified by the service provider and the features supported by your client.
Which client should I choose for Windows, macOS, Android, and Linux?
For Windows, macOS, and Linux, v2rayN is generally the best starting point for managing subscriptions, routing rules, and system proxy settings in one place. On Android, consider v2rayNG, which uses the Xray core; choose v2flyNG only when you specifically need the V2Fly core. Do not install packages across platforms: desktop and Android packages use different formats and runtime environments.
How should I choose between VMess, VLESS, Trojan, and REALITY?
The protocol selected in the client must match the server configuration; do not switch protocols based on the name alone. With an existing subscription, manual selection is usually unnecessary because the client reads the protocol from the subscription. When adding a node manually, verify the address, port, user ID, transport, TLS settings, server name, and path one by one. REALITY also requires matching fields such as the public key and short ID.
What is the difference between a subscription link and a single-node share link?
A subscription link usually contains multiple nodes and can sync additions, removals, and parameter changes through updates. A single share link describes one node, with common prefixes such as vmess, vless, trojan, or ss. For long-term use of multiple nodes, create a subscription group; for a temporary one-node import, use a share link from the clipboard. Before deleting a subscription group, confirm that it contains no nodes you still need.
02 / Installation and Configuration
Version Selection and First Import
Choose the package first by operating system and processor architecture. After installation, handle subscription saving, updates, and the first connection.
Which v2rayN version should I choose on Windows: the desktop edition or the classic WPF edition?
The desktop edition uses a newer cross-platform interface and suits users who want a similar workflow across desktop operating systems. The classic WPF edition is designed for Windows and more closely matches existing tutorials. Both support subscription, node, and system proxy management. Start with the desktop edition for a first installation; if you already have a stable setup and established workflow, continuing with the WPF edition is also reasonable.
Should I download the arm64 or x64 package for macOS?
Choose arm64 for devices with Apple silicon and x64 for devices with Intel processors. Open System Information and check the chip or processor name under Hardware Overview. Choosing the wrong package architecture may result in the app failing to open, an incompatible-architecture warning, or a need for additional translation. Confirm the architecture and download the matching package; your subscription does not need to be changed.
Which Android version should I choose: arm64 or universal?
Most mainstream Android phones and tablets released after 2015 can use arm64, which keeps the package more focused. If you cannot confirm the processor architecture, have an older device, or arm64 installation fails, use the universal build instead. The two versions provide essentially the same features; the difference is the range of processor architectures they include. When updating, it is best to keep using the same package type as the current installation.
Why are there no nodes after importing a subscription link?
First confirm that you used the add-subscription option rather than the manual single-server option; after saving the subscription, you must also run an update. If the group exists but contains no nodes, check that the link is complete, has no extra spaces, has not expired, and returns a format supported by the client. You can also open the link in a browser to confirm that it is accessible, but never publicly share a subscription URL containing personal authorization information.
What is the correct connection order after importing a subscription for the first time?
First update the subscription and confirm that the node list appears, then choose a node suited to your current network conditions. On desktop, enable the system proxy afterward; on Android, tap Connect and approve the network connection permission prompt. Use a browser to verify access to familiar websites. If it fails, test another node first, then check the local port, routing mode, and system time instead of changing many settings at once.
03 / Usage Tips
Proxy Modes, TUN, and Groups
Once the client starts successfully, connection behavior is mainly determined by the system proxy, TUN, routing mode, and subscription groups.
How do I manually update a subscription in v2rayN?
Find the update action in the subscription group or subscription management menu, then choose whether to update the current group or all groups. After the update, check whether the node count and names changed, and select the node you want to use again. If an update overwrites manual notes, assign a recognizable name at the group level. Do not set the automatic update interval too short; base it on how often the subscription actually changes.
What is the difference between system proxy mode, PAC mode, and leaving the system proxy unchanged?
System proxy mode sends traffic from applications that support the operating system proxy to the client’s local port. PAC mode uses rules to decide which addresses go through the proxy. Leaving the system proxy unchanged only starts the core and local port, so applications must be configured with the proxy address themselves. Browsers and standard desktop apps usually use the system proxy first; development tools and programs that ignore system proxy settings require separate configuration or TUN.
Why does TUN mode require additional permissions?
TUN mode creates a virtual network interface and modifies system routes, so it usually requires administrator privileges or system network authorization. Without sufficient permission, the client may report startup, interface creation, or route-write failures. Configure the component through the client’s TUN settings and approve the system request. Do not run multiple tools that take control of virtual network interfaces at the same time, as their routes may conflict.
How should I use global, rule-based, and direct routing modes?
Global mode typically sends all connections within its interception scope through the current node, making it useful for briefly checking whether the node itself works. Rule mode selects proxy or direct access based on domain, address, or process rules and is the common choice for daily use. Direct mode is mainly for pausing proxy forwarding or troubleshooting the local network. After switching modes, test the target application again; existing connections may need to be closed and re-established.
How can I manage multiple subscription groups more clearly?
Create separate groups by service source or use case, and give each group a stable, recognizable name. With many nodes, use include or exclude keywords to filter regions, route types, and test nodes instead of mixing everything into one list. Avoid repeatedly deleting and recreating groups before updates, or local filters and notes may need to be configured again. Disable an expired subscription first, then delete it only after confirming that it is no longer needed.
04 / Troubleshooting
Timeouts, Connection Loss, and Startup Failures
During troubleshooting, first determine whether the problem affects one node, all nodes, one application, or the entire system, then narrow down the cause layer by layer.
What should I check first when node tests show a timeout?
First determine whether only one node times out or all nodes do. A single-node failure is usually related to that node’s status or parameters, so update the subscription and try another node. If every node fails, check the current network, system time, whether the client core started successfully, and whether the firewall is blocking the local process. Latency tests do not work exactly like real web access, so confirm the result with an actual connection after a test timeout.
What should I do if the client shows connected but the browser cannot access the internet?
First confirm that the browser can access ordinary direct-connection websites, then check that the client is using an appropriate system proxy mode. Next verify that the current node works, the local proxy port is not occupied, the routing mode was not accidentally set to direct, and the browser has no extension overriding proxy settings. Close all browser windows and reopen it; if necessary, disable TUN temporarily and troubleshoot with only the system proxy enabled.
Why do some applications ignore v2rayN even when the system proxy is enabled?
Some applications do not read the operating system proxy, while others support only specific HTTP, HTTPS, or SOCKS formats. Look for proxy options in the application’s network settings, enter the loopback address, and use the corresponding port currently shown by v2rayN. If the application does not support proxies at all, consider TUN mode. After changing the port, update the application settings as well so they do not continue using the old port.
What are the common reasons a v2rayN subscription update fails?
Common causes include an invalid subscription link, expired authorization, a network that cannot reach the subscription URL, an inaccurate system clock, certificate errors, an unsupported response format, or a proxy loop that prevents the update request from being sent. Copy the original link and check for leading or trailing spaces, then try updating directly or through another working node. If the provider changed the link, remove the old URL, save the new one, and update again.
How do I fix a client startup failure or a port-in-use error?
A port-in-use error means another program or client instance is listening on the same local port. Exit duplicate proxy clients first, then confirm in Task Manager or the system process list that the old process has ended. If the conflict remains, choose an unused port in the local listener settings and restart the client. Browsers, development tools, and local-network devices with manually entered proxy ports must be updated as well.