Confirm your device's operating system first, then get the matching package. The site brings together clients for four platforms, guidance on the Xray and V2Fly cores, and a complete workflow from subscription import to connectivity checks.
Four platforms coveredXray · V2Fly coresOpen sourceChinese setup guides
Start with v2rayN on desktop devices and check v2rayNG first on Android. On the download page, make a second choice based on processor architecture and package format.
01
Windows
Choose between the v2rayN desktop edition and the classic WPF edition. Start with the desktop edition on newer devices; compare the WPF edition if you prefer the traditional Windows layout. After downloading, import your subscription and enable the system proxy as described in the guide.
v2rayN offers desktop packages for Apple Silicon and Intel. Check your processor type in system information first, then open the matching download section to avoid an architecture mismatch.
Start with v2rayNG using the Xray core. If you need the V2Fly core route, check v2flyNG instead. Most recent devices suit arm64 packages; use the universal package if you cannot confirm the architecture.
For v2rayN on Linux, choose deb or rpm according to your distribution, then verify the x64 or arm64 architecture. After installation, check desktop permissions and the system tray before importing your configuration.
Choose the platform, then the architecture and package format
The platform is only the first filter. On Windows, choose between the desktop and classic WPF editions; on macOS, confirm the processor type; on Android, choose arm64 or the universal package; on Linux, check both the distribution format and processor architecture. The download page presents the options in this order, so verify each item in turn.
Four pickup sheets from installation to connection
Each pickup sheet addresses one clear question: which package to choose, how to import a subscription, how to route traffic, and where to look when a connection fails. Switch sheets as needed; there is no need to change every setting at once.
SHEET / 01
Package selection: rule out platform and architecture mismatches first
Installation failures are often caused by choosing the wrong package, not by a configuration problem. On desktop devices, confirm the operating system, processor architecture, and package format; on Android, choose between arm64 and the universal package. The download page separates clients, architectures, and formats into distinct buttons and explains the requirements on each card. Compared with putting every file in one list, this layered approach reduces trial and error and makes future upgrades easier to follow.
Subscriptions and nodes: import, update, and choose them separately
A subscription link provides node configurations in bulk; it does not mean you are connected already. The correct order is to add the subscription address, update it manually, select a node from the list, and then enable the system proxy or connect through the client. When there are many nodes, narrow the list using real connection latency and availability before considering region, traffic multiplier, and protocol type. This separates subscription parsing issues from node problems and system proxy status.
Routing and DNS: start with a clear mode, then add rules
Routing determines which requests enter the proxy and which stay direct; DNS resolves domain names to reachable addresses. After installation, start with a clear preset supplied by the client and confirm the basic connection before adding domain, ip, CIDR, or geosite rules. When rules are matched in order, entries above can override those below, so add one group at a time and record the result. If a domain fails to open while its address is reachable, check for a DNS and routing conflict first.
Logs and troubleshooting: narrow the scope along the connection path
When a connection fails, keep the current configuration and do not change the protocol, node, routing, and DNS at the same time. First confirm that the subscription updated successfully, then check that a node is selected, the client is running, and the system proxy is working. Finally, read the log for timeout, rejected, invalid user, or DNS resolution messages. Checking each stage separately distinguishes local permissions, configuration fields, network resolution, and server status without losing a useful baseline.
If some connections already work, record the current node, routing mode, DNS settings, and system proxy status first. Change only one variable at a time so you can identify what caused the difference. Before importing a new subscription, also confirm whether the old configuration is still worth keeping.
B
Complete a minimal connection
Use a known-good node and the client's preset mode to establish a basic connection first; do not rush to add custom rules. Once the minimal path works, you can determine whether the application proxy scope is insufficient or whether TUN mode is needed to handle more traffic.
C
Optimize routing next
Once the basic connection is stable, adjust routing, DNS, local network sharing, and startup behavior for your needs. The more rules you add, the more complex their interactions become. After each change, retest both direct and proxied targets to confirm that each type of traffic behaves as expected.
OPEN ECOSYSTEM
Project V, V2Fly, and the Xray core family
The client handles the graphical controls; the core handles protocols, transport, routing, and connection execution. Keeping these layers distinct makes both client selection and configuration troubleshooting more straightforward.
PROJECT V
The ecosystem's starting point
Project V established a broad technical ecosystem around proxy protocols, transport methods, routing rules, and configuration formats. Later projects continued to evolve from that shared foundation, while graphical clients turned configuration files, subscription management, and system proxy controls into clickable interfaces.
CORE / A
V2Fly
V2Fly continues Project V's community-maintained direction, retaining widely used configuration structures, protocol implementations, and routing capabilities. v2flyNG offers this core route as an Android alternative for users who need the corresponding implementation and configuration compatibility.
CORE / B
Xray
Xray and V2Fly belong to the same technical family. While remaining compatible with common configuration concepts, they extend capabilities such as VLESS and REALITY. v2rayN and v2rayNG are often used with Xray, but the available protocols still depend on whether the client, core, and server configuration match.
DESKTOP CLIENT
v2rayN
v2rayN is a graphical desktop client for Windows, macOS, and Linux. It brings subscription management, node selection, system proxy, TUN mode, routing rules, and logs into one interface for a consistent desktop workflow. The client and core are updated separately, so when protocol support differs, check both the client settings and the capabilities of the active core.
ANDROID CLIENT
v2rayNG
v2rayNG is a popular Android client that typically uses the Xray core. It supports subscription imports, QR code scanning, node switching, routing settings, and VPN service control. Mobile operating systems can restrict background activity and apply battery policies, so when connections are unstable, check the app's background permissions and power-saving settings as well as the node.
ANDROID ALTERNATIVE
v2flyNG
v2flyNG is an Android alternative built around the V2Fly core route. Its role is not identical to v2rayNG: the two differ in core origin, some protocol capabilities, and release cadence. Choose based on the protocols required by your subscription, configuration compatibility, and actual connection performance rather than installing both and repeatedly importing the same configuration.
01
Open-source protocols make implementation boundaries visible
The clients and cores are maintained as open-source projects, with public technical histories behind their protocol implementations, configuration structures, and feature changes. Most users do not need to read all the source code; the key distinction is that the client name is not the core name. The interface manages settings, the core executes them, and the protocols in a subscription must be supported by the active core.
02
Multiple core paths offer different capability mixes
V2Fly and Xray share historical foundations, but their feature direction and release cadence are not identical. Whether common VMess, VLESS, Trojan, Shadowsocks, and REALITY configurations work depends on the core implementation and server parameters. The protocol reference compares connection overhead, compatibility, mobile performance, and configuration requirements so you can choose the right type in the client.
03
Check configuration compatibility before updating
A client update may move interface controls, while a core update may add protocol capabilities or change some defaults. Before upgrading, record your subscription, routing, and DNS settings. Afterward, complete a minimal connectivity check before restoring complex rules. If the old configuration contains specific transport or security parameters, confirm that the new core still assigns the same meaning to those fields.
04
Community maintenance does not mean a shared release schedule
v2rayN, v2rayNG, v2flyNG, V2Fly, and Xray are related but independently maintained projects, so their release dates and feature progress will not fully align. Choose a client based on the device platform, choose a core path based on protocol needs, and troubleshoot by checking the interface configuration, core logs, and server parameters separately.
QUICK ANSWERS
Selected installation and connection FAQs
Identify the stage where the problem occurs, then open the relevant guide. Do not change the client, node, protocol, and DNS all at once during the same troubleshooting session.
How do I choose between the v2rayN desktop and classic WPF editions?
The desktop edition uses a cross-platform interface for users who want a similar workflow across desktop systems; the classic WPF edition preserves the traditional Windows layout. Both are v2rayN, so choose based on your system and interface preference rather than installing both. Open the Windows download section first to compare package details.
Why is the node list still empty after a successful subscription import?
After adding a subscription address, you usually need to run Update subscription once. If the list is still empty, check that the link is complete, the subscription has not expired, and the logs contain no parsing errors. Avoid copying leading or trailing spaces, then repeat the process using the subscription import steps.
A node is selected, but the browser still cannot connect. What should I do?
Confirm in order that the client is running, the node is active, and the system proxy is enabled. Then check whether the browser has its own proxy settings. If only some applications fail, you may need to adjust the proxy mode or use TUN mode. Complete the connectivity check before expanding the traffic scope.
What is the difference between the system proxy and TUN mode?
The system proxy mainly covers applications that follow the operating system's proxy settings. TUN mode uses a virtual network interface to handle a broader range of traffic at the network layer and usually requires higher system privileges. Start with the system proxy for basic use; if a program ignores it, see how to enable TUN mode.
LATEST GUIDES
Recently updated configuration and troubleshooting guides
Start with three frequent topics: global traffic interception, node selection, and runtime logs. Continue reading based on your actual situation.
Advanced
How to enable TUN mode: virtual network adapters, global traffic handling, and setup steps
Understand the difference between the system proxy and virtual network adapter modes, find the relevant controls in v2rayN and v2rayNG, and handle system permissions, DNS, and routing conflicts.
How to choose a node: latency, traffic multiplier, region, and protocol type
Filter nodes step by step using real connection latency, traffic multipliers, regional needs, and protocol compatibility instead of judging quality from a single speed test.
How to read V2Ray runtime logs: common error messages and troubleshooting methods
Use messages such as rejected, timeout, invalid user, and DNS resolution failures to locate the problem, distinguishing local configuration issues from server status.