Choose v2rayN for desktop and v2rayNG for Android. Consider v2flyNG only if you need compatibility with the v2fly core.
Choose a client based on your device first, then check which core your server configuration requires. Finally, compare subscription management and routing controls. All three are GUI clients, but they differ in platform support, settings, and how they route traffic. Knowing one client doesn't mean you can copy all its settings directly to another.
Use this table to understand what each client is designed for; it doesn't replace the feature details for a specific installer. Maintenance status is a general guide and doesn't mean every platform, UI variant, or core component is updated at the same pace. TUN, permissions, and routing settings depend heavily on the operating system.
On narrow screens, scroll horizontally to view the full comparison table.
Features and ideal users for v2rayN, v2rayNG, and v2flyNG
Comparison
v2rayN
v2rayNG
v2flyNG
Platforms
Windows、macOS、Linux
Android
Android
Core
Typically Xray; core options depend on the client build and configuration type
Xray
v2fly
Maintenance
Actively maintained; the desktop and classic WPF editions have different interfaces
Actively maintained; check the release notes for system requirements before installing
Community-maintained; check recent updates and configuration compatibility before choosing it
Ease of use
Straightforward to import a basic configuration; distinguish system proxy from TUN
A short setup process; requires permission to establish an Android VPN connection
Similar basic import process; check that the core matches your configuration
Subscription management
Desktop subscription groups for updating and switching between configurations
Subscription settings and configuration list management
Subscription management; available options depend on the installed version
Routing interface
A larger interface makes it easier to review and edit rules and change their order
Routing settings and per-app routing; check fields carefully for complex rules
Routing settings; supported rules depend on the v2fly core
TUN and traffic routing
TUN is configurable, depending on platform, components, and permissions
VPN mode routes traffic through the Android system interface
VPN mode routes traffic through the Android system interface
Key features
Subscription groups, routing rule editor, system proxy controls, and desktop logs
Xray configurations, per-app routing, and quick connections on mobile
V2Fly configuration compatibility and Android support
Best for
Desktop users who manage multiple subscriptions or need to edit routing rules
Android beginners and users who need Xray features
Android users who have confirmed they need the v2fly core
In-Depth Client Reviews
v2rayN: Desktop Subscription and Routing Management
v2rayN is a good fit for desktop users on Windows, macOS, and Linux. Its main advantage is the room it gives you to work: manage subscription groups, configuration lists, routing rules, and runtime logs from a desktop interface. If you maintain multiple subscription sources, grouping them by source makes updates easier to track than keeping every configuration in one list. For a first setup, start by importing a subscription, selecting a configuration, and enabling the system proxy. There's no need to change every advanced option right away.
The Windows downloads include a desktop edition and a classic WPF edition. The desktop edition uses a newer cross-platform interface, while WPF retains the classic Windows UI, so buttons may appear in different places than they do in tutorials. On macOS and Linux, use the installer for your platform; Windows filenames and menu locations don't apply. If your current setup works well, back up your configuration before considering a switch between interface editions.
v2rayN's system proxy settings mainly affect applications that follow the system proxy; they don't route every program's traffic. If an app isn't using the proxy, first check whether it respects the system proxy before considering TUN. Before enabling TUN, also check permissions, other networking tools, and existing routes. Changing several settings at once makes it harder to identify the cause of a problem.
Powered by the Xray core, v2rayNG is a strong default choice for Android. The basic setup is simple: import a subscription, update the configuration list, select a configuration, start the connection, and grant Android VPN permission. For your first connection, keep the basic defaults, make sure the connection and browsing work, then enable per-app routing, custom DNS, or more specific routing rules as needed.
For configurations using VLESS or REALITY, check each parameter against the server settings and the capabilities of the client’s current core. REALITY is a connection security configuration; the name alone doesn't tell you how to set up a complete connection. A mismatch in the address, port, user ID, transport, or security settings can prevent a connection. Switching apps won't fix missing parameters.
On mobile, consider Android's background restrictions too. Disconnects after locking the screen may be caused by battery optimization, background limits, or network changes—not necessarily a core problem. Android generally allows only one system VPN connection at a time, so starting another app that uses the same interface may replace the existing connection. After setting up per-app routing, check that the apps you want are included.
Designed for Android and powered by the v2fly core, v2flyNG is best suited to users with existing V2Fly configurations, users who want to retain the core's behavior, or users who need to reproduce that environment. Choose it for configuration compatibility—not just because its name sounds similar to v2rayNG. Xray and V2Fly come from related technical ecosystems but have evolved separately; newer fields, protocol details, and defaults don't always match.
Being able to import a subscription only means the client can read its contents; it doesn't guarantee that every configuration will work. If a subscription uses features the current core doesn't support, ask the service provider for a compatible configuration rather than repeatedly changing DNS or routing settings. Before migrating, keep a known-working configuration for comparison and test the connection again after updating.
v2flyNG shouldn't be treated as an app specifically for older phones. Installation depends on system requirements and processor architecture, while performance depends on traffic, rules, logs, and background restrictions. This alternative is useful only if your device meets the requirements and your configuration is compatible with v2fly.
Subscription and Configuration Migration Checklist
Don't treat settings files from these three clients as interchangeable backups. When migrating, use the subscription URL or compatible share content provided by your service, and keep the original client settings until you've verified the new setup. Subscription URLs, full share links, and configuration files may contain access credentials. Hide sensitive fields in screenshots and support logs.
Check core compatibility. Verify the protocol, transport, and security settings, especially fields specific to a core. If a setting isn't recognized, check compatibility instead of deleting it outright.
Reconfigure local settings. Set up the system proxy or TUN again on desktop; on Android, grant VPN permission again and select the apps to route. Use the ports configured on the current device.
Migrate routing separately. Keep the default rules first and test the connection, then add custom domain and IP rules. When copying rules, check the order of direct, proxy, and final rules.
Test the connection and DNS separately. Once connected, check access from the target app, domain resolution, and behavior after switching networks. A connection icon alone doesn't prove that all traffic is being routed as intended.
For platform-specific installation steps, see the complete installation and setup guide. For system proxy and traffic routing, see system proxy setup. If only one app isn't working, check how that app handles proxies before switching clients.
Frequently Asked Questions
Which is faster: Xray or v2fly?
You can't tell by the core name alone. Performance depends on the server, network path, transport settings, and device. Start with a core that fully supports your configuration, then compare under the same network, server, and usage conditions.
Which should I choose: the desktop or classic WPF edition?
If you're new to v2rayN on Windows, start with the desktop edition. If you're already comfortable with the classic interface, the WPF edition is also an option. The main differences are the UI and where settings are located; features depend on the installer. On macOS and Linux, use the package for your platform, not the WPF edition.
Why can't I connect even though the subscription imported successfully?
A successful import doesn't guarantee valid settings or core compatibility. Check that the subscription updated, the configuration is complete, the service is available, and your device's time and network are correct. Once you've confirmed the connection settings are valid, check the system proxy, VPN permission, or TUN permissions.
Can v2rayNG and v2flyNG run at the same time on Android?
You can install both for comparison, but don't run their VPN modes at the same time. Android's system VPN interface is generally available to only one connection at a time. Stop the current connection before testing the other app, and keep the test conditions the same so you don't mistake an interface conflict for a configuration problem.
Which Client Should You Choose?
For desktop, choose v2rayN; for Android, choose v2rayNG. v2rayN makes it easier to manage subscription groups and routing rules, while v2rayNG is a practical choice for everyday Android use and Xray configurations. Keep v2flyNG as an alternative when you specifically need v2fly compatibility; there's no need to install it just to compare names.
Once you've chosen a client, go to the download page and select the package for your operating system, processor architecture, and package format. Downloading is only the first step: a valid subscription, compatible core settings, and correctly configured traffic routing are all needed for a working setup.