Self-service package pickup Choose a client by operating system

V2Ray Downloads

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 covered Xray · V2Fly cores Open source Chinese setup guides
PICKUP Choose a platform to open the download page
PLATFORM Windows · macOS · Android · Linux CLIENT v2rayN · v2rayNG · v2flyNG CORE Xray · V2Fly GUIDE Install · Subscribe · Route · Troubleshoot
PLATFORM PICKUP

Choose a client package by operating system

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.

Open downloads
02

macOS

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.

Open downloads
03

Android

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.

Open downloads
04

Linux

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.

Open downloads
SELECTION ORDER

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.

View all clients →
PICKUP SHEET

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.

A

Save the current state

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.

Read the full article →
Getting Started

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.

Read the full article →
Troubleshooting

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.

Read the full article →