Platform · Core · Proxy scope

V2Ray clients
Compared and explained

For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG only when your configuration specifically depends on the v2fly core.

Feature comparison

This table compares common use cases; not every release includes the same cores and settings. Scroll horizontally on narrow screens.

Platform support, cores, and feature limits
Comparison v2rayN v2rayNG v2flyNG
Platforms Windows、macOS、Linux Android Android
Core Xray is available; other core options depend on the release Xray v2fly
Maintenance Actively maintained; read the release notes before upgrading Actively maintained; new features require core support Check the release notes for maintenance updates; choose based on compatibility needs
Ease of use Basic import is straightforward; system proxy, routing, and TUN settings each take some learning A short setup process; check VPN permissions and background restrictions Similar basic workflow to other Android clients; check protocol compatibility as well
Subscription groups Group subscriptions by source, update them, and choose a node Supports subscription groups and updates Subscription management is available; group options depend on the current interface
Routing UI Routing management interface makes it easy to review and edit rules on desktop Routing settings support both presets and custom rules Includes routing settings; rule fields must be supported by v2fly
TUN / VPN traffic capture Supports TUN mode; platform permissions, core, and network conditions must meet requirements Captures traffic through Android's VPN service, with options to select apps Uses Android's VPN service; available options depend on the release
Best for Desktop users who want everyday use, routing management, and desktop setups across platforms Android beginners and users with Xray configurations Android users with existing v2fly configurations who can check compatibility themselves

Client reviews

The key differences are platform, core ecosystem, and where settings live—not a simple speed ranking.

v2rayN: Desktop subscriptions and routing

Top desktop pick

If your device runs Windows, macOS, or Linux, start with v2rayN. Its desktop window brings subscription groups, node selection, system proxy, and routing management together, making it easier to review settings while troubleshooting a connection. Choose a release for your operating system and processor architecture. Desktop apps don't all install the same way or have identical permission requirements and menus.

The Windows download page offers Desktop and WPF editions. Desktop uses a cross-platform interface, while WPF has the classic Windows interface. Choose based on the download instructions, runtime requirements, and your preferences; there's no need to install both just because their names differ. For macOS, choose between Apple Silicon and Intel. On Linux, check both the processor architecture and the package format used by your system.

v2rayN's settings are organized into clear layers: the system proxy determines whether apps send requests to a local listening port; routing determines which outbound handles requests after they reach the core; and TUN provides another way to capture traffic. For basic browsing, start by testing the system proxy. Consider TUN only if an app doesn't use the system proxy. TUN may require elevated permissions and can conflict with other virtual network adapters or VPNs, so it isn't a universal fix.

  • Useful for managing subscriptions from multiple sources and reviewing rule order on a larger screen.
  • Before switching cores, check node features and rule fields; changing the core name alone isn't enough.
  • When moving to another device, save subscription sources, routing goals, and device-specific settings separately.

v2rayNG: Everyday connections on Android

Top Android pick

Powered by the Xray core, v2rayNG suits most users who want to import a subscription, choose a node, and connect on Android. The usual steps are to add a subscription URL, update the subscription, choose a node, start the service, and grant the system VPN permission. Saving a subscription URL doesn't guarantee a working node: it only registers the configuration source. The node must also be successfully updated, correctly configured, and reachable on your network.

Android captures traffic through the system VPN service; this is different from the system proxy toggle on desktop. Typically, only one system-VPN-based service can run in the same user session. If another service is already capturing traffic, decide which one to keep. To proxy selected apps, check how app selection and routing settings work together—don't rely solely on the connection icon in the status bar.

For subscriptions with settings such as REALITY, confirm that all parameters were imported correctly and are supported by the Xray core in use. If connections drop in the background, first check battery optimization, background activity limits, and network changes before adjusting protocol settings. Switching clients won't automatically disable power-saving restrictions or fix an unreachable server.

  • A good starting point for Android beginners and everyday use of existing Xray configurations.
  • Most newer devices use arm64; if you're unsure, check your system information first.
  • After connecting, test with the apps you actually use before changing routing or DNS.
See v2rayNG download options for Android

v2flyNG: An alternative for v2fly configurations

Choose based on core requirements

v2flyNG is an Android client powered by the v2fly core. It's best suited to users who understand their existing configuration and want to keep using V2Fly features and behavior—not as a drop-in replacement for v2rayNG just because the names are similar. V2Fly and Xray are related but independently developed core ecosystems, so protocol implementations, supported fields, and the pace of new feature releases can differ.

Before choosing, check which protocols, transports, and security settings your subscription actually uses. A setting appearing in the interface doesn't guarantee that the underlying core supports it. Likewise, saving a configuration file doesn't mean a connection will work. If your subscription relies on Xray-specific features, use a compatible client rather than repeatedly changing node settings to try to make it work.

Check current release notes and real-world compatibility to assess maintenance; don't infer either from the name or interface alone. Before upgrading, back up any configuration you need and check for changes to system requirements or import formats. When testing it as an alternative, run only one client at a time and use the same network and a compatible configuration. This helps avoid mistaking conflicts in traffic capture for core differences.

  • Best for users with a clear dependency on v2fly configurations who can read configuration documentation.
  • An older phone doesn't automatically make v2flyNG more efficient or compatible.
  • If a connection fails, check core support first, then troubleshoot the network and permissions.
See the v2flyNG Android alternative

Choose by use case

Three things to check before choosing

Will a different client always be faster?

You can't predict speed from a client's name alone. Server load, network path, protocol and transport combinations, and routing all affect performance. To compare clients, keep the network, node configuration, and target app the same, and change only one factor at a time. Results from different nodes or proxy scopes don't provide a fair comparison.

Does TUN support mean all traffic goes through the proxy?

No. TUN or a VPN service captures traffic, but routing rules still determine whether requests connect directly, use a proxy, or get blocked. On desktop, TUN also involves permissions, virtual network adapters, and DNS. On Android, check system permissions, app selection, and any existing VPN service. Successful traffic capture and correct routing are separate things to verify.

Should you install more than one client?

For everyday use, one client that meets your needs is usually enough. Keep an alternative only to check core compatibility or preserve a specific configuration. Having multiple clients installed doesn't mean they can run at the same time: system proxies and listening ports can conflict on desktop, while VPN traffic capture can conflict on Android. Stop the other client's service before testing to get meaningful results.