Choosing a client · Platforms and cores

V2Ray Client Comparison

For desktop, choose v2rayN; for Android, start with v2rayNG. Consider v2flyNG only if you specifically need a V2Fly core configuration. Check platform and protocol compatibility first, then compare the interface and traffic handling options.

Desktop: v2rayN

Available for Windows, macOS, and Linux. Manage subscriptions and edit routes on desktop, then choose a system proxy or TUN based on the apps you use.

Read the desktop review →

Android:v2rayNG

Powered by the Xray core. Import subscriptions, switch configurations, and use protocol settings that require Xray support on your phone.

Read the Android review →

V2Fly:v2flyNG

An Android alternative for existing V2Fly-compatible configurations. Check protocol and transport compatibility before choosing; a similar name doesn't mean equivalent support.

Read the alternative client review →
PlatformCore compatibilityTraffic handlingSubscriptions and routing

How to choose: platform → core → traffic handling

Subscription links provide configurations; clients manage them, and cores handle protocols and routing. These serve different purposes and aren't interchangeable.

System proxy, TUN, and Android's VPN interface are different ways to route traffic through a client.

Feature comparison: three clients

Features and menu locations may change with client updates. TUN, route editing, and core selection also depend on the platform, permissions, and package contents. Scroll horizontally on narrow screens to view the full table.

Platform support, cores, maintenance, ease of use, and recommended users for three clients
Comparison criteria v2rayN v2rayNG v2flyNG
Platform support Windows / macOS / Linux Android Android
Core Supports Xray, V2Fly, and other core configurations; available options depend on the package and interface Xray V2Fly
Maintenance Actively maintained; check platform and runtime requirements before updating Actively maintained; check OS and configuration compatibility before updating Consider it as a V2Fly alternative; check release notes before use
Ease of use Clear steps for basic use; advanced settings are extensive. Start with a subscription and system proxy. Straightforward for basic use; requires understanding VPN permissions and background activity limits Similar basic workflow; requires an additional check for V2Fly protocol compatibility
Subscription groups Well suited to managing multiple subscriptions in one place, with group-based updates and configuration filtering Organizes configurations by subscription for easy updates and switching on mobile Supports subscription management; group options depend on the current interface
Routing UI Includes a routing interface for editing and checking rule order on desktop Includes routing settings; complex rules still require understanding the core's matching logic Includes routing settings; check that rule fields are supported by V2Fly
System proxy / TUN System proxy is a common starting point; check platform support, permissions, and components before using TUN Typically handles traffic through Android's VPN interface; this isn't the same as a desktop system proxy toggle Handles traffic through Android's VPN interface; this doesn't change the core's protocol support
REALITY configuration Choose an Xray core that supports the required settings and verify the configuration is complete Supported by the Xray core; check configuration settings after importing Not the recommended choice for REALITY configurations
Best for Everyday desktop use, subscription management, routing tests, and users working across desktop platforms Android beginners and users who need Xray protocol support Android users with existing V2Fly-compatible configurations and a specific need for that core

v2rayN: Desktop subscriptions and routing

v2rayN is the first choice for Windows, macOS, and Linux. Its value goes beyond launching a core: it brings subscriptions, configuration selection, routing, and traffic handling together in a desktop interface. If you manage several subscriptions for different purposes, group them by source and update each group separately to reduce mix-ups and accidental bulk changes. Updating a subscription typically regenerates the entries it manages, so save long-term custom configurations separately.

The Windows download page offers the desktop edition and the classic WPF edition. The desktop edition uses a cross-platform interface, making it a good fit if you want a similar workflow across desktop systems; the WPF edition suits users who prefer the classic Windows interface. Choose based on system requirements, interface preference, and configuration migration—not on assumptions about protocol support. If you already have configurations, back them up before upgrading, then check subscriptions, routing, and local listening settings after the first launch.

Core selection is a key part of advanced v2rayN use. Xray and V2Fly are both part of the Project V ecosystem, but their protocol fields and extended capabilities don't match in every detail. For REALITY, choose an Xray core that supports the configuration. If you're using an existing V2Fly-format configuration, check that the selected core can interpret all its fields. Seeing a configuration name in the client interface doesn't mean every core can run it; check the startup result and logs.

For regular browser use, start with the system proxy. If an app doesn't respect it, consider TUN rather than enabling every traffic option at once. TUN involves a virtual network interface, permissions, and routing, which can vary by package and platform. Routing rules determine how traffic is handled; the system proxy or TUN determines whether traffic reaches the client. Troubleshoot these as separate layers.

Windows downloads · macOS downloads · Linux downloads

v2rayNG: Android and Xray configurations

v2rayNG is the top pick for Android. Powered by the Xray core, it can import subscription links, share links, and compatible configurations from your provider. The basic workflow is to add a subscription, refresh it, select a configuration, start the service, and approve the system VPN prompt. If you see a subscription group but no configurations to choose from, first check whether the update succeeded; you may not need to switch clients.

On Android, traffic is typically routed through the system VPN interface. Seeing a VPN icon only confirms that the interface is active; it doesn't prove the remote configuration works. If websites won't load, check the selected configuration, DNS, routing, and per-app proxy settings. Direct and proxy rules still apply, so routing traffic through the VPN interface doesn't mean every request uses the proxy.

v2rayNG's subscription and routing controls work well for everyday switching, but a phone screen isn't ideal for repeatedly editing complex rules. Advanced users should define the matching criteria first, then check domain, address, and app conditions in the interface. For REALITY, the core must support it, and settings such as the server name and public key must match the configuration provider's details. Switching interfaces won't fill in missing parameters.

Check your device's processor architecture before downloading. Choose the arm64 package if supported; if you're unsure, check the universal package details. Background shutdowns are often caused by battery optimization, background activity permissions, or another VPN app in use—not necessarily an unsuitable client. Verify the connection first, then adjust background and per-app settings one at a time.

Download v2rayNG for Android. For first-time setup, follow the subscription import and connection guide.

v2flyNG: An alternative for V2Fly-compatible configurations

v2flyNG is an Android client powered by the V2Fly core. Choose it when an existing configuration, workflow, or test specifically requires V2Fly—not just because its name resembles v2rayNG. Both apps offer similar subscription import and service startup workflows, but their different cores may support different protocol fields and extended settings.

Before reusing an existing V2Fly configuration, check its protocol, transport, TLS, and routing fields, then import it into the client. The same subscription URL doesn't mean every item in it is compatible with both cores. If you encounter an unknown field or protocol error, check the configuration provider's compatibility information. Don't treat deleting the field that triggered an error as a general fix; it could change what the configuration does.

Like other Android clients, v2flyNG routes traffic through the Android VPN interface, requires system permission, and may be affected by background restrictions. It's not a default fix for performance issues on older phones, and switching cores won't fix an OS version that doesn't meet installation requirements. If you need REALITY, choose v2rayNG with the Xray core rather than repeatedly trying an incompatible configuration in v2flyNG.

Before using this alternative, check the current package's system requirements and maintenance updates to make sure it still suits your device. Back up existing configurations before migrating, then verify that one configuration works before restoring subscriptions and routing rules. When testing two Android clients, stop the first one's service before starting the next to avoid mistaking VPN interface conflicts for configuration errors.

View v2flyNG download options; for core differences, see Xray vs. V2Fly: Core Differences.

Choosing a client for beginners, advanced users, and multiple devices

Final recommendations and download options

For desktop, start with v2rayN; for Android, start with v2rayNG. These are starting points based on platform and common workflows, not universal recommendations for every configuration. Reserve v2flyNG for Android setups that specifically require the V2Fly core. If your configuration depends on Xray features, don't switch just because another client installs successfully.

In the download center, choose the desktop or WPF edition for Windows, Apple Silicon or Intel for macOS, and the package format and processor architecture for Linux. For Android, choose arm64 or universal based on your device. Download options address installation compatibility; check protocol and subscription compatibility separately as described above.

Before switching clients, back up your subscription source and custom rules, and note the current core and traffic handling method. After importing into the new client, test one configuration before restoring groups and routing rules. If a subscription update fails or your browser isn't using the proxy, start with the FAQ; switching clients won't necessarily fix an issue with the same subscription source or system settings.

Download v2rayN