Three clients, one comparison framework

V2Ray Client Comparison

For desktop platforms, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG only when the V2Fly core is specifically required.

Platform support Xray / V2Fly Subscription groups Routing rules UI TUN
CLIENT / PLATFORM Quick selection guide
v2rayN Windows · macOS · Linux Desktop pick v2rayNG Android · Xray Android pick v2flyNG Android · V2Fly Core alternative

Filter out incompatible clients by operating system first, then narrow the choice by core, routing, and TUN requirements. Similar names do not make these clients interchangeable across platforms.

Start by filtering for your device

Two clear recommendations and one alternative

These three clients are not interchangeable options on the same platform. The operating system defines the candidates; core preference and advanced configuration needs determine the final choice.

01 / DESKTOP

Desktop platforms: v2rayN

Windows, macOS, and Linux users can start with v2rayN. It brings subscription updates, server switching, system proxy, routing rules, and TUN into one desktop interface, making it suitable for moving from basic connectivity to split routing and rule maintenance.

02 / ANDROID

Android:v2rayNG

Most Android users should start with v2rayNG. Built on the Xray core, its interface covers subscription imports, server selection, routing, per-app proxying, and connection controls. Documentation and configuration examples are also easier to follow with a consistent set of terms.

Open the Android downloads →
03 / ALTERNATIVE

Need V2Fly specifically: v2flyNG

v2flyNG is not the default replacement for v2rayNG; it is an Android option built around the V2Fly core. Consider it when existing configurations follow v2fly semantics or when you need to test behavior against V2Fly.

Read the v2flyNG review →
Platforms, cores, and feature access

v2rayN, v2rayNG, and v2flyNG: Full comparison

The table compares each client’s capabilities and intended use; it does not mean every core parameter appears in the interface under the same name. Available options also depend on the operating system and configuration method.

Key differences between the three V2Ray clients
Comparison point v2rayN v2rayNG v2flyNG
Platform support Windows、macOS、Linux Android Android
Primary core Xray and V2Ray ecosystem configurations, subject to the core and settings exposed by each client Xray core V2Fly core
Maintenance status Actively maintained Actively maintained Actively maintained
Learning curve Moderate. Basic connections are straightforward, but there are more features to learn, including system proxy and routing modes. Low. Mobile controls are focused; import a subscription, then configure the client by server and mode. Moderate. The basic workflow is similar to other mobile clients, but it is best chosen after understanding the core differences.
Subscription management Well suited to managing multiple subscription sources, groups, and update tasks. Supports subscription imports, updates, and server list management. Supports subscription imports and server management.
Subscription groups The desktop workspace is better for organizing multiple sources and groups. Well suited to everyday mobile subscriptions and server switching. Focused on basic subscriptions and server use.
Routing rules UI The desktop interface is better for reviewing and adjusting rules, outbounds, and matching order. Provides mobile routing controls for common split-routing needs. Provides routing capabilities aligned with the V2Fly configuration model.
TUN support Useful when more desktop application traffic needs to be captured; confirm permissions and routing settings before enabling it. Handles application traffic through Android’s network connection mechanism, with a setup flow different from desktop clients. Works through Android’s network connection mechanism; exact behavior depends on the V2Fly core and client settings.
Notable features Desktop system proxy, subscription groups, routing rule management, TUN, and log-based troubleshooting Quick mobile switching, per-app proxying, Xray configuration, and routing settings V2Fly core, mobile server management, and basic routing configuration
Best for Desktop users, people managing multiple subscriptions, and users who need detailed split routing and log-based troubleshooting Most Android users and people configuring a mobile client for the first time Android users who specifically prefer the V2Fly core or need to compare core behavior
Recommendation Top desktop pick Top Android pick Alternative for specific core requirements
Detailed client reviews

Client positioning and limits

Similar names do not mean identical feature sets. The sections below explain which tasks each client best handles during initial setup, everyday maintenance, and advanced configuration.

DESKTOP / XRAY ECOSYSTEM

v2rayN: Desktop configuration hub

v2rayN is designed for Windows, macOS, and Linux desktops. Initial setup usually starts with importing a subscription, refreshing the server list, choosing an active server, and configuring the system proxy. Once those basics work, move on to routing, custom DNS, TUN, and logs as needed. Because there are many entry points, first distinguish between subscription sources, server entries, proxy modes, and routing rules.

Its main advantage is not a single button but the management space available on desktop. When several subscription sources need regular updates, they can be organized into groups. When a rule behaves unexpectedly, you can inspect the active server, system proxy status, and runtime logs together. For long-term configuration maintenance, the desktop interface is clearer than editing each item on a small screen.

If you only need your browser to use the system proxy, there is no reason to enable every advanced option at the start. Establish a connection with the basic system proxy first, then add rules and TUN gradually to keep troubleshooting focused.

Go to the v2rayN download page →
v2rayN / Routing settings DESKTOP
Subscription groups Routing rules System proxy
Private addressesgeoip:private Direct
Ad domain rulesgeosite:category-ads-all Block
All other matching trafficContinue by rule order Proxy
System proxyEnable as needed Configured
ANDROID / XRAY

v2rayNG: Everyday Android use

v2rayNG is built for Android and uses the Xray core. The usual workflow is to import a subscription URL, refresh the list, choose a server, and start the connection. Its mobile interface puts frequent actions in the server list and connection controls, making initial Android setup straightforward.

For finer control, v2rayNG also supports routing, per-app proxying, and local-network options. Per-app proxying can send only selected apps through the client or exclude apps that do not need handling; routing rules determine traffic direction by domain, address, or rule set. These solve different problems, so do not treat app scope and destination rules as the same setting.

If v2rayN is already in use on desktop, Android should normally import the same subscription separately rather than copy the desktop program directory. The subscription URL syncs server information, while system proxy, app scope, and connection permissions must still be configured per device.

Go to the v2rayNG download page →
v2rayNG / Settings ANDROID
Basic settings Routing settings Per-app proxy
Subscription updateGet the list from the saved URL Available
Preset routingChoose rules as needed Configure
Per-app proxyChoose which apps to handle Optional
Local network accessSet according to LAN needs As needed
ANDROID / V2FLY

v2flyNG: V2Fly core alternative

v2flyNG also targets Android, but the key question is not how its interface looks; it is whether the V2Fly core is specifically required. Existing nodes and subscriptions using common formats can often be imported, but the real comparison concerns transport parameters, routing behavior, and whether the server configuration matches the intended core.

If you simply need a default Android client, starting with v2rayNG makes it easier to follow a consistent Xray configuration path. If you maintain a V2Fly-based environment or need to compare how the same configuration is parsed and runs across core directions, v2flyNG offers a clearer reason to choose it.

Before switching clients, keep the subscription URL and any necessary manual parameters on record. Do not judge migration by server names alone; confirm that the protocol, transport, TLS settings, address, port, and routing conditions all correspond.

View the v2flyNG Android download →
v2flyNG / Configuration check V2FLY
Server parameters Routing Logs
Protocol parametersCheck required fields Check
Transport settingsMatch the server configuration Check
Routing orderMatch from top to bottom Confirm
Runtime logsLocate field errors View
Do not compare feature names alone

Subscriptions, routing, and TUN: how to decide

A feature with the same name in multiple client lists may serve a different purpose. First identify whether the need concerns server management, traffic distribution, or system-wide capture, then choose the relevant control.

A

Subscription groups: organize sources, not automatic routing

Subscriptions fetch server entries in bulk, while groups organize sources or use cases. They answer “where do servers come from and how are they categorized?”—they do not directly decide which outbound a domain uses. When maintaining several subscriptions on desktop, v2rayN offers a better workspace and workflow for long-term organization; on mobile, regular updates and quick switching are usually the priority.

If servers change after a subscription update, first confirm that the active server still exists, then check the group and sort order. Do not edit routing immediately before confirming the subscription contents, or you will introduce two variables at once.

B

Routing rules UI: matching order matters

The routing interface maps domains, addresses, ports, protocols, or rule sets to different outbounds. Rules are usually matched in order; placing a broad rule too early can prevent later, more specific rules from taking effect. v2rayN is better for reviewing long rule lists on desktop, while v2rayNG and v2flyNG cover common mobile split-routing settings.

Record the existing rule order before editing, change one item at a time, and verify the result with the target website, app, and logs. Check server availability and routing matches separately to avoid mistaking a rule problem for a subscription problem.

C

TUN: handle traffic that ignores system proxy

If desktop apps follow the system proxy, v2rayN’s basic system proxy mode is usually enough. TUN is better suited to capturing traffic from additional apps, handling more connections centrally, or applying complex split routing. It involves system permissions, the routing table, and DNS handling, so enable it only after basic connectivity works.

Android clients use the system-provided network connection mechanism, with an interface and permission flow different from desktop. Do not choose a client merely because it displays “TUN”; check whether it can cover the target apps on the current system and whether its per-app and routing settings are easy to inspect.

D

Choosing a core: start with configuration dependencies

Xray and V2Fly are core directions within the broader Project V ecosystem, but their feature evolution and parameter support are not identical everywhere. Without a specific dependency, follow the client’s default direction: v2rayN on desktop and v2rayNG on Android. Narrow the choice only when the configuration source specifies a core or when you need to reproduce a particular core’s behavior.

Matching protocol names do not replace checking parameters. During migration, verify at least the address, port, user identifier, transport, security settings, server name, and path. Seeing VMess or VLESS alone does not mean two configurations are fully equivalent.

Choose by how you actually use it

Four user scenarios: recommendations

The same client can pose different challenges for different users. The recommendations below are organized by initial setup, rule complexity, device count, and hardware constraints.

Three-step elimination process

From device to core: make the choice

Do not infer platform support from a client’s name or suitability from its feature count. Filter in the order below; in most cases, there is no need to install all three repeatedly.

  1. Step 1: Confirm the operating system

    Windows, macOS, and Linux go directly to the v2rayN path; Android goes to the v2rayNG versus v2flyNG comparison. Once the platform filter is applied, the candidate list is much shorter.

  2. Step 2: Check whether the configuration specifies a core

    Without a specific core requirement, choose v2rayNG by default on Android. Choose v2flyNG only when the configuration notes, existing environment, or test objective explicitly depends on V2Fly behavior. The presence of “v2fly” in the name does not mean every server must use it.

  3. Step 3: Confirm that advanced features are truly needed

    For multiple subscription groups, desktop routing edits, system proxy, and log troubleshooting, choose v2rayN. For Android per-app proxying and mobile routing, choose v2rayNG. If you only need a basic connection, feature count should not be the deciding factor.

Final recommendation

Choose v2rayN for desktop and v2rayNG for Android

This is the default combination for most use cases. v2rayN handles desktop configuration management on Windows, macOS, and Linux; v2rayNG handles subscriptions, servers, per-app proxying, and routing on Android. Keep v2flyNG for Android configurations that specifically require the V2Fly core.

Before downloading, open the tab for your platform and choose a file based on the system architecture and package type. After installation, start with a basic connection, then add routing, DNS, or TUN settings step by step.