Choose v2rayN first
Supports Windows, macOS, and Linux, making it a good fit for desktop users who need subscription groups, server filtering, routing-rule controls, and TUN settings.
Go to Windows DownloadsThe main difference between these clients is the device platform, followed by the core and available features. Choose v2rayN first on desktop, then choose between the Xray and V2Fly cores on Android.
Supports Windows, macOS, and Linux, making it a good fit for desktop users who need subscription groups, server filtering, routing-rule controls, and TUN settings.
Go to Windows DownloadsA widely used Android client built on the Xray core, with a clear workflow for importing subscriptions and switching nodes. A solid default for mobile devices.
Go to Android DownloadsUse v2flyNG as an Android alternative when the configuration source, environment, or personal workflow specifically requires the V2Fly core.
View v2flyNG DownloadsThe table covers factors that directly affect installation and everyday use. Maintenance is described qualitatively; version numbers, release dates, and ratings are not used as selection criteria.
| Comparison Criteria | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| Supported Platforms | Windows、macOS、Linux | Android | Android |
| Primary Core | Xray is the usual choice, with other compatible cores configurable where supported by the client | Xray | V2Fly |
| Maintenance Status | Actively Maintained | Actively Maintained | Ongoing Maintenance |
| Learning Curve | Moderate. There are many entry points, and first-time users need to understand system proxy settings, routing modes, and subscription groups | Low. Subscription import, node selection, and connection startup are handled in a focused workflow | Low. The basic workflow is similar to that of common Android V2Ray clients |
| Subscription Management | Well suited to multiple subscriptions and group management, with filters for organizing server lists | Supports subscription import, updates, and node switching for everyday mobile use | Supports standard subscription imports and node management |
| Routing Rules Interface | Offers comprehensive controls for viewing and adjusting routing modes, rules, and outbound relationships | Provides mobile routing controls for common traffic-splitting needs | Provides routing configuration designed to work with the V2Fly core |
| Traffic Handling and TUN | Supports system proxy and TUN modes, with coverage adjustable for different use cases | Uses Android's VPN service to handle device traffic; the exact scope depends on system and app settings | Uses Android's VPN service to handle device traffic, with behavior determined by the core configuration |
| Notable Features | Subscription groups, server filtering, routing-rules UI, log viewer, system proxy, TUN | QR-code and clipboard import, mobile node switching, per-app proxy, connection logs | V2Fly core, subscription management, per-app proxy, mobile configuration import |
| Best For | Desktop users, advanced users who need detailed routing, and users managing multiple subscriptions | Most Android users, as well as users who want the Xray core | Android users who specifically need the V2Fly core or already have matching configurations |
The sections below follow real usage paths, covering differences you may encounter when importing a subscription for the first time, managing it long term, or applying advanced settings.
v2rayN is well suited to long-term use on a desktop. After adding a subscription, organize it by source and filter servers by alias, protocol, or other criteria. Servers, groups, logs, and settings have clearly defined entry points, making large node lists easier to manage than a flat list interface.
Its advantage goes beyond platform coverage. System proxy, routing modes, DNS, LAN sharing, and TUN settings are gathered in one client, making it easy to move from basic connectivity to fine-grained traffic splitting. For new users who only need to import a subscription, the defaults cover the common workflow; advanced users can further tune routing rules and core parameters.
The trade-off is that more features mean more settings. On first use, avoid changing the system proxy, TUN, DNS, and custom routing at the same time. A safer sequence is to import the subscription and verify one server, select a system proxy mode, then add routing or TUN settings as needed.
v2rayNG is the more straightforward default choice on Android. Its interface follows common mobile tasks: import a configuration from the clipboard, a QR code, or a subscription URL, select a node, and start the connection through Android's VPN service. Everyday node switching, subscription updates, and connection-log checks take only a few steps.
It typically uses the Xray core and works well with subscriptions containing common configurations such as VMess, VLESS, and Trojan. For most users, the core name should not be the first deciding factor; if the provider explicitly supports Xray, import the subscription and connect normally. For per-app traffic handling, check the client's per-app proxy settings.
Mobile operating systems may manage background activity, battery optimization, and VPN permissions. If the client stops connecting after the screen locks, check the system's background restrictions before rebuilding the subscription. Interpret log errors together with the selected node, network environment, and routing settings.
The defining feature of v2flyNG is its V2Fly core. It is not a second client that every Android user needs, but an option for users whose configuration, workflow, or testing goal specifically calls for V2Fly. If the subscription provider has no core requirement, v2rayNG is usually the simpler choice.
The client keeps familiar Android features such as subscriptions, node selection, per-app proxy, and logs, so switching from another mobile client does not require relearning the entire workflow. The important checks are whether the configured protocol, transport, and core capabilities match—not how similar the two interfaces look.
If the same subscription must be tested across different cores for compatibility, import it into each client and compare the results, but do not let both clients handle system traffic at once. Stop the current connection before switching, and keep the node and network environment consistent so environmental changes are not mistaken for core differences.
Once the device platform is known, narrow the choice by configuration complexity, number of devices, and core requirements.
The client handles subscription imports, node lists, system permissions, routing forms, and log displays; the core parses protocol configurations and handles the actual connection. When choosing a client, consider both its interface and platform, and confirm that its built-in or supported core can process your existing configuration.
Xray and V2Fly both continue to evolve within the Project V ecosystem, but their feature coverage and configuration implementations are not identical. Most users do not need to edit a complete configuration file by hand; they only need the subscription format to remain compatible with the client's core. If an import succeeds but the connection will not start, check the protocol fields, transport method, and client logs.
Choose v2rayN first on Windows, macOS, and Linux; choose v2rayNG first on Android. Switch to v2flyNG on Android only when the subscription notes, existing configuration, or testing goal explicitly requires the V2Fly core.
After downloading, follow the shortest setup path: import the subscription, update the list, select a server, and start the connection. Once basic connectivity works, add routing rules, per-app proxy, DNS, or TUN settings one at a time.