Platform / Core / Configuration

V2Ray Client Comparison

For desktop, start with v2rayN; for Android, start with v2rayNG. Choose v2flyNG only if you need v2fly core compatibility. Check your platform and protocols first, then compare subscription, routing, and traffic handling options.

Desktop: v2rayN Android: v2rayNG For v2fly: v2flyNG

Platform and feature comparison

This table compares common ways to use each client. Desktop system proxy, desktop TUN, and Android's VPN service are different features. Menus and options vary by client version, core, and system permissions; check the download page before installing.

v2rayN / v2rayNG / v2flyNG comparison
Feature v2rayN v2rayNG v2flyNG
Platforms Windows, macOS, and Linux; choose a package for your OS and processor architecture. Android; choose between the arm64 and universal packages. Android; choose between the arm64 and universal packages.
Core Choose Xray or v2fly based on version and configuration; not all protocols are interchangeable. Xray core, suited to configurations using its supported protocols and transports. v2fly core, focused on compatibility with V2Fly configurations.
Maintenance Actively maintained; check for UI and configuration changes when upgrading. Actively maintained; verify both client and core capabilities. Check release notes for update details; update frequency alone does not indicate whether development has stopped.
Ease of use Easy to get started with imports; offers more options for system proxy, TUN, and routing. A straightforward path to connect; requires understanding Android VPN permissions and background restrictions. Basic workflow is similar to other Android clients; check protocol compatibility separately.
Subscription management Manage multiple subscription sources with grouping and filtering options. Supports subscription settings and updates, but does not offer the full range of desktop grouping features. Supports subscription imports and updates; grouping and filtering options depend on the version.
Routing interface A comprehensive routing interface makes it easier to review rule order and outbound tags. Includes routing settings and custom rule options for mobile traffic routing. Includes routing settings; rule fields must meet v2fly core requirements.
TUN and traffic handling Offers TUN features; permissions, helper components, and system differences need separate consideration. Typically routes traffic through Android's VPN service; this is not a direct port of the desktop TUN switch. Typically routes traffic through Android's VPN service and requires system authorization.
Key features Subscription groups, routing rule management, system proxy settings, and support for multiple desktop platforms. Quick imports on mobile, per-app routing, and integration with Xray-based configurations. Use the v2fly core and its configuration ecosystem on Android.
Best for Desktop users, people managing multiple subscriptions, and users who need granular routing. Most Android users, including those with existing Xray configurations. Users who specifically need the v2fly core and have confirmed configuration compatibility.

Maintenance status is a general guide, not a fixed release schedule or a measure of connection quality. Whether a subscription works depends mainly on the server configuration, protocol support, and local settings—not just the client name.

Configuration details by client

Top desktop pickXray / v2fly

v2rayN: desktop subscription and routing management

Choose v2rayN if you manage subscriptions, switch the system proxy, or edit routing rules on a computer. It brings common settings together in a GUI: group multiple subscription sources, organize servers with filters after updates, and review routing rules in order without digging through a full configuration. This makes it easier to verify setups that send local network traffic directly while routing specific domains through a proxy.

The Windows download page offers both Desktop and classic WPF versions. Desktop uses a cross-platform interface, making it a good fit if you want a similar workflow across desktop operating systems. WPF is for Windows users who prefer the classic interface. Neither is simply the “full-featured” or “lite” option; check the menus in your version against the features you need.

The system proxy only affects programs that honor system proxy settings; it does not route all traffic from your computer. TUN typically covers more traffic, but adds permissions, routing, and DNS troubleshooting. For your first setup, import a subscription, select a server, and enable the system proxy. Test the connection before enabling TUN. If you switch between Xray and v2fly, check protocol and transport fields again.

Top Android pickXray core

v2rayNG: the go-to Android client

If you want to import a subscription, select a server, and connect on your phone, start with v2rayNG. The usual steps are to open “Subscription settings,” add a name and URL, save, return to the main screen, update the subscription, then select a configuration and connect. On first launch, Android asks you to authorize the VPN connection. This is how Android routes traffic; it is not a separate subscription account, and you do not need to enter server details again in system settings.

v2rayNG uses the Xray core. If your configuration uses VLESS, REALITY, or similar features, make sure the client core supports that specific combination; the protocol prefix in a share link is not enough. A successful import only means the client read the content—it does not guarantee every configuration is supported by the current core. If you see a field error or the client fails to start, check the logs, then verify the parameters with your subscription provider.

On mobile, also account for per-app routing, VPN conflicts, and battery settings. Per-app routing and domain-based routing solve different problems: the former decides which apps use the proxy, while the latter matches rules against destination addresses. If the connection drops when the screen locks, first check whether the system restricts background activity rather than assuming the protocol or subscription is at fault. Add routing rules one at a time after the basic connection is stable.

Android alternativev2fly core

v2flyNG: when you need core compatibility

v2flyNG is for cases where you specifically need the v2fly core on Android. Its name is similar to v2rayNG, but the core—not a similar-looking interface—is the reason to choose it. Consider it as an alternative if you have configurations built for V2Fly, need to reproduce behavior from that core, or want to check how the same configuration works with it.

Do not assume Xray's extended features are supported by v2fly. If a configuration includes fields such as REALITY or XTLS, check support in the target core before importing it or toggling settings at random. Even if both Android clients accept the same type of share link, they may generate different configurations and recognize different core fields. If a configuration is incompatible, use a matching client or ask the provider to confirm the required parameters.

Before installing, check the current release notes for system requirements, package architecture, and the features you need. You cannot infer update frequency or compatibility with older phones from the product name. If you only need standard subscription imports and have no v2fly-specific requirements, v2rayNG offers a clearer starting point for troubleshooting. Choose v2flyNG for a specific configuration need.

Choose by use case

Start with a working basic configuration, then add routing and traffic handling features one at a time. These recommendations are based on what you need to do, not vague performance rankings.

Four things to check before downloading

  1. Check the OS and processor architecture. For desktop, choose v2rayN, then select a package for Windows, macOS, or Linux. On macOS, choose Apple Silicon or Intel; on Linux, check both processor architecture and deb or rpm package format. For Android, choose arm64 or universal—device age alone is not a reliable guide.
  2. Check which core your configuration requires. The protocol name is only the starting point; also check transport, security settings, and extension fields. If you have a complete JSON configuration, do not assume you can import it as a subscription URL. A single share link, subscription content, and a full configuration are different input formats.
  3. Decide which apps need traffic routing. Browsers may follow system proxy settings, while terminal tools, games, and other apps may not. On desktop, check whether an app uses the system proxy before enabling TUN. On Android, start with VPN authorization and the scope of per-app routing.
  4. Keep your existing settings. Before migrating, record subscription groups, filters, routing rules, and DNS settings. Updating a subscription usually does not migrate these local settings or guarantee that another client uses the same defaults. Clean up the old configuration only after confirming the migration works.
Will switching clients fix a connection failure?
Not necessarily. First determine whether the core failed to start, the subscription failed to update, or the connection could not be established. A port conflict, invalid parameter, unavailable server, and inactive system proxy are different problems. Switch clients only when you have evidence of a protocol or core compatibility issue. Start with how to diagnose core startup failures from logs.
Which v2rayN Windows version should I choose?
If you are new to v2rayN, start with the Desktop version. If you are used to the classic interface, consider WPF. Desktop's cross-platform interface and WPF's Windows interface are differences in how you choose a version—not a guarantee that any particular feature is available. Check the menus and system requirements you need before downloading. See Desktop vs. WPF for details.
Can I use the same subscription with all three clients?
It depends on the subscription format, the client's parsing capabilities, and core support. Being able to read the server list does not mean every entry will connect. After importing, test a configuration you know is compatible, then restore routing and DNS settings step by step. Check the provider's terms for any device limits.
Can I copy all my routing rules as-is?
Check the rule format and order, outbound tags, and the geosite and geoip data files first. GUI rule templates may not be kernel JSON that you can paste directly, and different clients may generate different outbound tags. During migration, test local network routing and the default outbound first, then add custom rules one at a time.

Bottom line: v2rayN is the top pick for desktop, v2rayNG for Android, and v2flyNG when you need v2fly core compatibility. Choose a package on the client downloads page for your platform. For installation and permission help, see the user guide.