CLIENT SELECTION
V2Ray Client Comparison
Platforms, cores, and configuration
Choose v2rayN for desktop and v2rayNG for Android. Consider v2flyNG if you already have a V2Fly-compatible configuration.
SIDE BY SIDE
Compare the three clients
Narrow your options by platform first, then compare cores and workflows. “Maintenance status” is a high-level view of each project; update schedules can vary across platforms and forks. Check the notes for the specific build you download and use.
Swipe horizontally to view the rest of the table on narrow screens.
| Comparison criteria | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| Platform support | Windows, macOS, and Linux; the classic WPF edition is for Windows. | Android。 | Android。 |
| Core | This page focuses on Xray configurations. Available cores and components vary by build; don’t assume full compatibility with V2Fly configurations. | Xray core; suited to Android configurations that require Xray-specific features. | V2Fly core; suited to V2Fly-compatible configurations. |
| Maintenance | Actively maintained; check the desktop and WPF editions separately. | Actively maintained; system compatibility and settings may change between builds. | Community-maintained; updates are independent of v2rayNG. Check recent changes before use. |
| Getting started | Basic imports are straightforward; understand system proxy, routing, and TUN separately. | Basic connections are straightforward; pay attention to VPN permissions, background restrictions, and app scope. | Easy to use if you know the V2Fly configuration format; check subscription compatibility before your first use. |
| Subscription groups | Organize multiple subscription sources into groups and update them separately. | Manage subscriptions and groups, then select and update configurations on your phone. | Import and update subscriptions; group management details and entry points vary by build. |
| Routing UI | Visual routing settings make rules easier to edit, organize, and switch between. | Includes routing settings and per-app proxy controls; check core rules for complex policies. | Basic routing settings are available; advanced editing depends on the current build. |
| TUN and traffic routing | Offers a TUN setup, but components, permissions, and availability vary by platform and build. System proxy is another option. | Primarily uses Android VpnService to create a virtual network interface; it is not a desktop-style TUN toggle. | Also relies on Android VPN permission to route traffic; confirm configuration and core support separately. |
| Best for | Desktop users who manage multiple subscriptions and need fine-grained routing. | Everyday Android use, per-app proxying, and configurations that use Xray features. | Android users with V2Fly-compatible configurations who want to keep using that configuration format. |
DESKTOP
v2rayN: desktop subscriptions and routing
v2rayN brings server selection, subscription updates, and routing policies together in one desktop interface. If you switch between several configuration sources, subscription groups help keep them organized and separate manually added configurations from those that update automatically. After importing, select an active server and decide how traffic should be routed through the client. A server appearing in the list does not mean the system proxy is enabled.
Desktop edition or WPF edition?
The desktop edition uses a cross-platform interface for Windows, macOS, and Linux; the classic WPF edition is for Windows. On Windows, choose based on your interface preferences and system setup—don’t assume one is faster because its name says “classic” or “desktop.” If you have a stable setup, back up subscriptions and custom rules before switching editions, then test the system proxy, startup behavior, and tray features separately. On macOS and Linux, choose a package that matches your CPU architecture and distribution format.
Test system proxy and TUN separately
Browsers and other apps that respect the system proxy can use it for a basic connection. If other apps need traffic routing, check the components, permissions, and routing settings required for TUN. TUN is not a catch-all fix for connection failures: changing the routing method won’t help if the server parameters are wrong. When troubleshooting, use one primary traffic-routing method at a time to avoid interference from other VPNs or leftover proxy settings.
Windows download options · macOS download options · Linux download options
ANDROID / XRAY
v2rayNG: Android VPN permissions and per-app proxying
v2rayNG uses the Xray core and is a strong first choice on Android. After importing a subscription, select a server, start the connection, and accept the system’s VPN permission prompt. Android’s VpnService provides the traffic-routing interface, and the client handles traffic according to your configuration. So, a VPN icon in the notification bar only confirms that the routing service is active—it doesn’t prove that the server handshake, DNS, or access to your destination is working.
Check parameters when using Xray features
For VLESS, REALITY, or XTLS Vision configurations, check both the server requirements and support in the current core. A matching protocol name doesn’t mean other fields are optional: flow control, server name, public key, and transport must all match. If you have a valid link, import the complete configuration and check its key fields instead of guessing compatibility from the client’s name.
Per-app rules and background operation matter too
Allowing only selected apps to use the proxy and bypassing selected apps are two different goals. Check whether the per-app setting means “proxy only selected apps” or “bypass selected apps,” then reconnect and test. If the connection drops only after the screen locks, check battery optimization, background operation, and system cleanup policies before switching cores. Also check for other apps that need the VPN interface to prevent them from replacing one another’s service.
Get the v2rayNG Android package; for first-time setup, see the import and connect guide.
ANDROID / V2FLY
v2flyNG: keep using V2Fly-compatible configurations
The key difference with v2flyNG is its V2Fly core, not simply a different interface. It’s an Android alternative for users with existing V2Fly configurations whose protocols and transports are supported. Before choosing it, check what your configuration requires. If a subscription relies on Xray-specific features, being able to import its link doesn’t mean the connection will work.
Best for users who know where their configuration comes from
When switching from another client, test a known-working configuration first, then import other groups gradually. A subscription URL, server address, and account identifier are different kinds of information. A successful subscription update only confirms that the content was retrieved and parsed; you still need to select a server and test the connection. Similar basic routing controls don’t guarantee matching rule formats, defaults, or advanced fields.
An alternative doesn’t mean it’s for older phones
Don’t assume a different core means lower memory use or better performance on older devices. Installation depends first on system requirements and CPU architecture; sustained performance also depends on rule complexity, app traffic, and background policies. Maintenance is independent of v2rayNG, so check build notes for compatibility changes. If your current setup is stable, keep the original configuration before trying to migrate.
See the v2flyNG Android alternative; choose between it and v2rayNG based on your configuration needs.
BY SCENARIO
Choose by use case
BEFORE SWITCHING
Check compatibility before switching clients
All three clients are part of the broader Project V ecosystem, but their interfaces, cores, and configuration files serve different purposes. Xray and V2Fly share technical roots but have evolved separately. Support for a protocol name does not guarantee support for every combination of transports, security options, and extensions. Client-exported files may also include interface-specific settings, so they shouldn’t be treated as universal core configurations.
- Record your working setup.Keep the subscription source, custom routing, and app scope. Backups may contain account details; store them securely and don’t post them in public discussions.
- Check the complete set of parameters.Beyond the address and port, check the protocol, flow control, transport security, server name, and transport path. Dedicated fields in configurations such as REALITY must match the server.
- Migrate servers and routing separately.Test a single server connection first, then import routing rules. This helps distinguish server compatibility issues from rule mismatches instead of confusing the two.
- Make sure traffic is actually using the new client.On desktop, check the system proxy or TUN status; on Android, check VPN permission and per-app scope. Exit the old client before testing to avoid port conflicts or VPN service replacement.
- Finally, test everyday scenarios.Test a browser, commonly used apps, recovery after screen lock, and network switching. One successful page load only confirms that this particular route worked; it doesn’t prove that every rule is behaving as expected.
If you’re switching clients just because you “can’t connect,” use the Troubleshooting guide to check the subscription, server handshake, DNS, and traffic routing. Repeatedly switching apps without evidence can make a clear configuration much harder to troubleshoot.
DECISION
Choose v2rayN for desktop; start with v2rayNG on Android
For desktop subscription management, routing, and system proxy settings, start with v2rayN, then choose the desktop or Windows WPF edition for your system. For everyday Android use and Xray configurations, choose v2rayNG. Choose v2flyNG when your existing configuration is compatible with the V2Fly core.
You can stop comparing here: download the package that matches your device, verify one configuration, then add advanced settings one at a time. The client’s name isn’t the deciding factor—platform fit, configuration compatibility, and how you use it are.
Browse downloads for all three clients