Client selection checklist

v2rayN, v2rayNG and v2flyNG client comparison

Start by ruling out clients that do not support your operating system, then check the core, subscription management, routing interface and connection method. For desktop systems, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG only when the v2fly core is explicitly required.

3 clients 4 comparison areas Evaluate desktop and Android separately

Bottom line

Narrow the choice by device type

Windows / macOS / Linux Choose v2rayN

Its desktop features are centralized, making it a good fit for users who need a system proxy, subscription groups, a routing interface and TUN configuration.

Android Choose v2rayNG

It uses the Xray core and offers a more direct workflow for importing subscriptions, switching servers and configuring per-app proxying.

When the v2fly core is required Choose v2flyNG

The key factor is core compatibility; do not switch casually between it and v2rayNG simply because their names look similar.

Compare feature by feature

Side-by-side comparison of three V2Ray clients

“Difficulty” measures the learning required to complete a first subscription import, connection and basic routing setup; it does not indicate client performance. On narrow screens, swipe horizontally to view all columns.

Comparison item v2rayN v2rayNG v2flyNG
Platform support Windows、macOS、Linux Android Android
Common core On desktop, Xray is usually the primary path, though this can be adjusted according to the client's core management options Xray v2fly
Maintenance status Actively maintained Actively maintained Maintained continuously
Setup difficulty Basic connections are easy; advanced routing, TUN and core options require further understanding Basic connections are easy; system permissions and battery-saving policies require additional checks Basic connections are moderately easy; first confirm compatibility between the subscription and the v2fly core
Subscription management Well suited to managing multiple subscriptions, groups and desktop configurations Well suited to updating mobile subscriptions and switching servers Supports mobile subscription imports and server management
Routing interface Provides a comprehensive desktop setup interface for checking rule order and outbound selection Provides mobile routing and per-app proxy settings Focuses on v2fly configuration compatibility and basic mobile routing rules
TUN and traffic interception TUN is available; configure permissions, DNS and local ports before enabling it Traffic is mainly intercepted through Android system VPN permission Traffic is mainly intercepted through Android system VPN permission
Key features Subscription groups, routing UI, system proxy, TUN, core and log management Per-app proxying, system VPN integration and server switching on mobile networks v2fly core support, mobile subscription management and basic routing configuration
Recommended users Desktop users, advanced users who need fine-grained routing rules and users managing multiple subscriptions Most Android users and those configuring a mobile client for the first time Android users who explicitly depend on the V2Fly configuration ecosystem or require compatibility with its core

Read the details

Strengths and limits of each client

The notes below focus on real configuration workflows. Confirm the supported platform first, then decide whether the features go beyond your current needs.

01

Windows · macOS · Linux

v2rayN: the desktop-first choice

Best for desktop

v2rayN's main strength is bringing common desktop operations together in one graphical interface. For a first setup, follow this order: add a subscription, update it, select a server, enable the system proxy and check the connection. When managing multiple subscriptions, organize groups and update order to avoid selecting the wrong server from a mixed list.

Once you move into advanced configuration, v2rayN is also suited to routing rules, DNS, logs, core management and TUN. Its rules interface helps you inspect matching order, but as the rule set grows, you still need to understand how domains, IPs, inbounds and outbounds relate. TUN is useful when more desktop application traffic must be intercepted. Before enabling it, confirm administrator permissions, local ports and DNS settings so basic connection issues are not mixed with TUN issues during troubleshooting.

If you only need a browser and a few applications that follow the system proxy, start with the system proxy. After confirming that standard mode is stable, decide whether TUN is necessary. This keeps the number of variables small and makes configuration errors easier to locate in the client logs.

Ideal for managing multiple subscriptions Ideal for desktop routing setup Supports further TUN configuration
View v2rayN download options →
02

Android · Xray core

v2rayNG: the everyday Android choice

Best for Android

v2rayNG is designed for Android, with settings organized around mobile workflows. After importing a subscription, update it first, then select a configuration and start the connection. When Android asks for VPN permission for the first time, grant it; otherwise the client cannot intercept application traffic. Once connected, test basic access with a regularly used app before configuring per-app proxying and detailed routing.

Mobile stability depends not only on the server and protocol, but also on battery-saving policies, background restrictions and network changes. If the connection drops after the screen locks, check whether the system restricts the client from running in the background. If the connection fails after switching between Wi-Fi and mobile data, stop and restart it so the system can establish a new network path. Per-app proxying is useful when only selected apps should use the client, but reversing the allowlist or blocklist mode can produce the opposite result. Check representative apps one by one after making changes.

v2rayNG uses the Xray core and suits users who need its protocol capabilities and configuration compatibility. For most Android setups, there is no need to change many advanced parameters during the initial configuration. Keep the protocol fields supplied by the subscription first, then check DNS, routing and per-app settings step by step. This makes it easier to determine whether an issue comes from the subscription or the device settings.

Direct Android setup workflow Supports per-app proxying Uses the Xray core
View v2rayNG download options →
03

Android · v2fly core

v2flyNG: choose it when the core matters

Alternative core

v2flyNG also runs on Android, but its selection criteria differ from v2rayNG. It uses the v2fly core and is better suited to users who have confirmed that their configuration source, protocol fields or workflow requires V2Fly compatibility. If a subscription service explicitly specifies the corresponding core, or an existing configuration has long been maintained within the V2Fly ecosystem, v2flyNG can reduce the extra variables involved in migrating between cores.

Without an explicit core requirement, there is little reason to switch repeatedly between the two Android clients just to experiment. Each client stores subscriptions, routes and local settings separately, so importing the same data twice can produce identical server names with different parameters. For a controlled comparison, keep the subscription, network and connection target identical, and record whether either client uses different DNS or routing settings.

v2flyNG is not a client categorized by device age. Whether it suits an older device depends on the processor architecture, available system resources and actual background behavior. Start with the package matching the architecture, keep the basic configuration unchanged, and observe connection stability and memory use. Treat it as a long-term option only after confirming that core compatibility is essential.

For v2fly core requirements Suitable for existing V2Fly configurations An alternative Android path
View v2flyNG download options →

Choose by scenario

Choose a client by how you use it

The device platform defines the candidates; the use case determines how deeply you need to configure them. These four scenarios map directly to the recommended selection order.

Final check

Five questions to answer before downloading

Answer the questions below in order to avoid discovering only after installation that the platform or core is incompatible.

  1. Is the current device a desktop system or Android? Go straight to v2rayN on desktop; on Android, compare v2rayNG with v2flyNG.
  2. Does the subscription specify a core? If not, use the common path first; choose v2flyNG only when the v2fly core is explicitly required.
  3. Do you need advanced routing or TUN? For advanced desktop management, use v2rayN and start by verifying the basics with the standard system proxy.
  4. Do you need per-app proxying on Android? After choosing v2rayNG, check the allowlist mode and system VPN permission, then confirm background activity restrictions.
  5. Are you planning to maintain multiple clients at once? Unless you need a controlled comparison, keep one primary client per device to reduce duplicate configuration.

Selection summary

Choose v2rayN on desktop; start with v2rayNG on Android

For most users, the choice can stay simple: use v2rayN on Windows, macOS and Linux, and v2rayNG on Android. Reserve v2flyNG for Android configurations that explicitly require a v2fly core compatibility path. After choosing a client, check the operating system, processor architecture and package type on the download page, then follow the guide to import the subscription and verify connectivity.

Choosing the right client is only the first step. If the connection still does not work as expected, check in order whether the subscription was updated, whether the system proxy or VPN permission is active, and whether DNS or routing was changed. Adjust one variable at a time and record the results; this is easier to troubleshoot than changing the client, core and server simultaneously.