Client selection

v2rayN, v2rayNG, and v2flyNG client comparison

The three clients target different devices and core paths. Check the operating system first, then compare subscription management, routing rules, TUN usage, and configuration complexity instead of judging by name alone.

Quick take platform → client → core

When the v2fly core is required, choose v2flyNG in the Android downloads section. It is best treated as a deliberate core-specific choice, not a random replacement for v2rayNG.

Start with your device

The selection order matters more than the feature count

These three clients are not interchangeable on every platform. The operating system defines the candidates; core requirements and configuration habits come next.

01

Choose v2rayN for desktop systems

Windows, macOS, and Linux users should start with v2rayN. It brings subscriptions, system proxy settings, routing rules, DNS, and core options into one desktop interface, making it suitable for maintaining multiple configuration groups over time.

02

The standard Android choice: v2rayNG

v2rayNG uses the Xray core and offers a clear mobile setup flow, including subscription imports, configuration scanning, routing, and per-app traffic controls. Most Android users can start here.

03

Choose v2flyNG when you specifically need v2fly

The key distinction of v2flyNG is its v2fly core path. Consider it when an existing configuration depends on that core, when you need comparative testing, or when you want another runtime path on Android.

Side-by-side comparison

Platform, core, and configuration comparison

The maintenance labels in this table are qualitative and do not indicate a fixed release schedule. Whether TUN works properly also depends on system permissions, network interfaces, and the current client settings.

Key differences between v2rayN, v2rayNG, and v2flyNG
Comparison criteria v2rayN Desktop v2rayNG Android · Xray v2flyNG Android · v2fly
Platform support Windows、macOS、Linux Android Android
Primary core path Primarily follows the Xray ecosystem and lets you manage related runtime settings in the core options. Xray core v2fly core
Maintenance status Actively maintained Actively maintained Maintained
Ease of use Moderate. Basic connections are easy; system proxy, routing, and core parameters require separate attention. Lower. Import a configuration and connect; advanced settings are grouped in the side menu. Moderate. The basic flow resembles common mobile clients, but it suits users who understand core differences better.
Subscription groups Well suited to multiple subscription sources, with grouped server configurations that can be updated separately. Supports subscription imports and grouped management for everyday switching on mobile. Supports subscription imports, with management focused on using v2fly configurations.
Routing-rule interface The spacious desktop layout makes it easier to review and adjust complete rule sets, predefined rules, and custom entries. Provides mobile routing settings for domain, IP, and predefined-rule options. Provides mobile routing features; behavior depends on v2fly core support and configuration.
TUN support Supports TUN mode configuration; permissions, drivers, or system network-interface requirements must be handled first. Uses the Android system VPN service to take over selected traffic and can be combined with per-app proxying. Runs through the Android system VPN service; exact behavior is determined by the v2fly core configuration.
Key features Subscription groups, system proxy, routing-rule UI, DNS settings, core management, and desktop log viewing. QR-code or clipboard imports, per-app proxying, mobile routing, the system VPN service, and configuration sharing. The v2fly core path, mobile subscription management, system VPN service, and a backup configuration environment.
Best for Desktop users, people managing multiple subscriptions, and anyone needing visual rule management or advanced network settings. Everyday Android users, first-time configurators, and users who need the Xray core with per-app proxying. Users who specifically need the v2fly core, want to compare core behavior, or need a backup runtime path.

On narrow screens, swipe horizontally to view the table. Matching feature names do not guarantee identical underlying behavior; recheck routing, DNS, inbound ports, and system permissions when migrating configurations.

Client details

Where each client fits in practice

Use the comparison table for quick filtering, then consider configuration maintenance frequency, device type, and whether you need to inspect complex rules.

Top desktop pick

v2rayN: centralized desktop configuration management

Xray ecosystem

v2rayN’s main advantage is not simply having more toggles, but organizing information more completely on the desktop. Subscription sources, server configurations, the active core, system proxy status, routing rules, and runtime logs are visible within one interface. When maintaining multiple subscriptions, groups keep configurations from becoming mixed together; when troubleshooting connection issues, switching between logs and core settings is also easier.

For first use, start by importing a subscription and connecting with one configuration; there is no need to change every advanced option immediately. Once the basic connection works, configure subscription auto-updates, traffic sniffing, LAN bypass, DNS, and TUN. This separates subscription, core, and system network-interface issues and makes troubleshooting easier after each change.

v2rayN suits Windows, macOS, and Linux desktop users, especially those who want to edit routing rules visually, switch between subscription groups frequently, or manage several desktop devices through a consistent client interface. Package formats and permission requirements vary by system, so choose the matching platform when downloading.

Top Android pick

v2rayNG: the mobile entry point for the Xray core

Xray core

v2rayNG is designed for Android touchscreens, reducing the common workflow to importing, selecting, and starting a configuration. Subscription links, clipboard contents, and QR codes are common import sources. Once connected, the client handles traffic through the system VPN service, so Android displays the connection status; battery optimization, background permissions, and power-saving policies can affect stability.

Per-app proxying is one of v2rayNG’s most useful mobile features. You can decide which apps use the current connection and which keep their normal network path. The more complex the scope, the more important it is to track rule changes during troubleshooting. If an app cannot connect, first check whether it is selected, then inspect routing and DNS instead of repeatedly deleting the subscription.

For users who only need to import a subscription and use it daily on Android, v2rayNG is usually the most direct choice. Its routing settings also support geosite, geoip, custom domain rules, and more precise traffic splitting. On older devices, keep configurations simple and avoid oversized rule sets and unnecessary background tasks.

Alternative core

v2flyNG: the v2fly core path

v2fly core

v2flyNG and v2rayNG both run on Android, but their main difference should not be judged by the interface alone. v2flyNG uses the v2fly core and suits users whose existing configurations explicitly target it, or who need to observe how the same basic configuration behaves across different core paths. If a subscription provider states that a configuration is intended for v2fly, choosing v2flyNG keeps the client aligned with that target.

When using it as a backup client, save configurations separately and do not let both clients run the system VPN service at the same time. Stop the current connection before starting the other client. If results differ, compare protocol fields, transport parameters, routing rules, DNS servers, and resource files in sequence rather than assuming the subscription contents are identical.

New users without a specific core requirement can usually start with v2rayNG. v2flyNG is better suited to people who understand the relationship between subscriptions, routing, and cores and are willing to check configuration compatibility. It is not a low-spec edition defined by device performance; suitability on an older phone still depends on the system version, background policies, rule size, and configuration complexity.

Use-case guide

Choose a client by usage pattern

The same client can feel more or less difficult depending on the user. The four scenarios below are better for validating a choice than treating feature count as the only criterion.

Understanding the criteria

Commonly misunderstood comparison points

“Supports a feature” only means the client provides an entry point for it; actual results also depend on the core, operating-system permissions, and configuration content.

The core determines how configuration runs

The GUI client imports, edits, and organizes configurations, while the core handles protocols, transport, routing, DNS, and other actual processing. v2rayNG uses the Xray core, v2flyNG uses the v2fly core, and v2rayN organizes core and system proxy settings for desktop environments. Even when similar fields appear in the interface, different cores may handle extension fields and edge cases differently.

When migrating a configuration, check that the target core recognizes its protocol fields, then review transport, TLS, routing, and DNS. A successful subscription import only means the client parsed the text; it does not mean every field will behave as expected.

TUN and system proxy operate at different layers

A system proxy usually sends traffic from programs that follow system proxy settings to a local listening port; TUN or a system VPN service handles a broader range of traffic at the network-interface layer. When enabling TUN in desktop v2rayN, pay attention to administrator permissions, the virtual interface, and interactions with existing network tools.

Android clients establish connections through the system VPN service and can use per-app proxying to control scope. If an app still follows its normal network path, check the app scope and routing settings first rather than only inspecting the server configuration.

Subscription groups solve a management problem

Subscription groups separate sources and purposes, making them easier to update, filter, and switch independently. They do not change protocol parameters in an individual server configuration or automatically repair expired links. When multiple subscriptions are present, use clear group names and keep manual configurations separate from auto-updated content.

If configurations change after a subscription update, first check whether the selected entry still exists, then confirm whether routing and DNS belong to the client’s local settings.

Active maintenance does not mean a fixed release cadence

This page uses “actively maintained” or “maintained” to indicate that a project remains under maintenance; it does not promise a release date, update interval, or rating. Decide whether to update based on system compatibility, configuration needs, and known issues. If the current version works normally, review the changes first before altering the environment.

If behavior changes after a client update, keep a backup of the existing configuration and check core settings, routing resources, DNS, and system permissions in order. Do not change everything at once.

Four-step filter

Still unsure? Follow this path

  1. 1

    Confirm your operating system

    Windows, macOS, and Linux go directly to the v2rayN options; on Android, choose between v2rayNG and v2flyNG.

  2. 2

    Check whether the subscription specifies a core

    Without a specific requirement, Android users should generally choose v2rayNG. Choose v2flyNG when the configuration explicitly targets the v2fly core.

  3. 3

    Decide whether you need advanced rules

    For extensive routing rules, subscription groups, and log-based troubleshooting, desktop v2rayN offers a better view and more organized settings. Keep mobile rule structures as clear as possible.

  4. 4

    Download for your platform and start with the basics

    After installation, verify one configuration before adding traffic splitting, DNS, TUN, or per-app settings. Working in stages makes it easier to tell whether an issue comes from the subscription, core, or system network layer.

The bottom line

Choose v2rayN on desktop; start with v2rayNG on Android

v2rayN covers Windows, macOS, and Linux and suits desktop subscription groups, routing rules, and core management. v2rayNG is the more general Xray-core choice on Android. Reserve v2flyNG for configurations that specifically need the v2fly core or an alternative runtime path.