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.
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.
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.
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.