Platform choices · Core compatibility · Configuration options

V2Ray ClientsCompared

For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG if you already have a v2fly-core configuration.

Compare the Three Clients

Narrow down your options by platform first, then check that the core supports your node requirements. “Supported” does not mean every subscription will work out of the box; verify the protocol, transport, and server parameters.

Swipe horizontally to view the table on smaller screens. Maintenance status is a general assessment, not a release-frequency indicator or a substitute for checking system requirements on the download page.

Platform, core, and use-case differences between three V2Ray GUI clients
Comparison v2rayN v2rayNG v2flyNG
Platforms Windows, macOS, and Linux; the WPF edition is Windows-only Android Android
Core Xray is commonly used. Available cores vary by version, configuration type, and core settings; not every feature runs on the same core. Xray core v2fly core
Maintenance Actively maintained; check release notes for the desktop and WPF editions separately Actively maintained; check system requirements and core changes before upgrading Check the project's latest release notes; choose it when you need compatibility with v2fly configurations
Getting started Many options; start with importing a config, selecting a server, and enabling the system proxy Fewer steps: import a subscription, then grant permission to use the system VPN service Similar basics to other Android clients, with an extra core compatibility check
Subscription groups Organize multiple sources into subscription groups and filter servers Organize configurations by subscription source; group management differs from the desktop edition Subscription management is available; group features depend on the current interface
Routing interface Routing settings and rule editor make it easy to review rule order Routing modes, custom rules, and per-app settings Routing settings are available; check rules and parameters against v2fly capabilities
TUN and traffic routing TUN settings are available; they require a compatible core, system permissions, and network environment Routes traffic through Android's VPN service; the setup differs from the desktop TUN controls Routes traffic through Android's VPN service; actual behavior depends on the configuration and system limitations
Best for Managing desktop subscriptions and routing rules, with system proxy and TUN options as needed Everyday mobile connections, Xray nodes, and per-app traffic settings Reusing existing V2Fly configurations and checking v2fly core compatibility
Who it's for Desktop beginners and advanced users who want more control Android beginners, everyday users, and anyone who needs Xray features Users who specifically need the v2fly core and can verify node parameters
Download Choose a v2rayN desktop download Choose a v2rayNG Android download See the v2flyNG alternative

Client reviews

Top desktop pick Subscription groups Routing rules interface

v2rayN: Desktop setup and everyday management

v2rayN is a good fit if you manage subscriptions and routing on a computer over the long term. The desktop interface brings server lists, subscription groups, and runtime logs together, making it easier to check whether a subscription updated, which server is selected, and whether the system proxy is working. You don’t need to adjust every setting up front: get one configuration working, then add rules as needed.

If you manage multiple subscriptions, use Subscription Groups → Subscription Group Settings to organize names and sources, then update them. Start routing with a preset—for example, choose a suitable ruleset under Routing Settings. Once you’ve confirmed which rules match, edit custom rules as needed. Menu labels may vary slightly between interface versions, so look for settings by purpose rather than following screenshots word for word.

Windows users should distinguish between the desktop and WPF editions. The desktop edition uses a cross-platform interface, making it easier to carry familiar workflows between desktop systems. The WPF edition is for Windows and may suit users already familiar with that interface. Neither edition means better-quality nodes. On macOS or Linux, choose the desktop edition and download the package that matches your processor architecture and system package format.

Enable TUN only when you need it. If apps such as browsers can use the system proxy normally, start with the simpler traffic-routing option. If an app ignores the system proxy, check TUN permissions, DNS, and any existing network tools. After enabling TUN, test local network access and the target app again; a lit toggle alone doesn’t confirm that everything works.

See how to install and launch v2rayN for the first time →
Top Android pick Xray core Per-app settings

v2rayNG: Everyday connections on Android

v2rayNG is suited to importing subscriptions, selecting a server, and connecting on Android. Its Xray core is also an important factor when choosing a client: if a node specifically requires Xray features, check that the core included with your version of v2rayNG supports the relevant parameters. A share link importing successfully doesn’t guarantee that every field is configured correctly.

To get started, go to Menu → Subscription Group Settings to add a source, save it, and update the subscription. Then return to the main list and select a configuration. When you connect, Android will ask for permission to use its VPN service. That permission allows the client to route device traffic; it doesn’t mean the remote node is reachable. Test the target app and check the client logs if something goes wrong.

Unlike a desktop system proxy, Android’s system VPN service changes how device traffic is handled. If you want to proxy only certain apps, check whether the per-app settings include or exclude them, then test each one. Android battery optimization can also affect background activity. If the connection drops when the screen turns off, check background restrictions and battery settings before changing subscriptions.

If another tool is already using Android’s system VPN service, resolve the conflict first. Multiple services of this kind generally can’t route traffic at the same time in the same user environment. Test with one client at a time to rule out conflicts when a seemingly valid configuration won’t connect.

Go to the Android downloads section to choose v2rayNG →
Android alternative v2fly core Reuse existing configurations

v2flyNG: When you specifically need v2fly compatibility

The main reason to choose v2flyNG is its v2fly core, not its similarity in name to another client. If you have a tested V2Fly configuration or the server documentation specifically targets this core, consider it as an Android alternative. If you’re new and don’t need a particular core, start with v2rayNG to keep the initial setup simpler.

V2Fly and Xray are related parts of the proxy ecosystem, but their capabilities aren’t identical. Even if both support protocols such as VMess, check the transport, security layer, DNS, and routing fields as well. Configurations that rely on core-specific extensions won’t become compatible just by switching to a client with a different name.

Before migrating, keep your existing configuration and test one known-working node in v2flyNG. Check configuration parsing, core startup, and access from the target app in that order, then decide whether to import all your subscriptions. Check the project's latest release notes and system requirements to confirm its maintenance status. “Alternative” doesn’t mean discontinued, and switching cores isn’t a universal troubleshooting fix.

See v2flyNG downloads and compatibility notes →

Choose by use case

Use-case recommendations help you decide what to do first; they don’t replace device compatibility checks. Get a connection working before adding subscriptions, rules, or more traffic to route.

Check compatibility before downloading

Check platform and architecture before comparing features

Confirm your device's operating system before choosing an architecture. On Windows, the desktop and WPF editions differ in interface. On macOS, check whether you have Apple Silicon or Intel. On Linux, check your distribution's package format, then the processor architecture. On Android, check both the OS version and package architecture. Being able to download a file doesn’t mean your device can install it.

Check core support before importing a share link

A subscription parser can recognize a link format, but the core handles the actual connection. If the imported configuration contains unsupported fields, transport methods, or security parameters, first check the node documentation and core capabilities. If parsing produces no configuration, check the subscription response. If a configuration is generated but the core won’t start, check the runtime logs instead of repeatedly updating the subscription.

Check routing and traffic capture separately

System proxy, TUN, and Android's VPN service determine whether traffic reaches the client; routing rules determine which outbound handles it. If an app never enters the proxy chain, changing domain rules usually won’t help. If traffic is being routed but the app still has problems, DNS or rule order may be the issue. You don’t necessarily need to switch clients.

Plan maintenance updates and configuration backups together

Active maintenance doesn’t mean every update must be installed immediately in your current environment. Before upgrading, note your routing ruleset, listening ports, and core settings, and save a recoverable configuration. After upgrading, check imports, startup, access, and local network connections in order. If behavior changes, use the logs to investigate. Don’t publicly share a complete configuration that contains subscription URLs or credentials.

For a complete workflow from setup to everyday maintenance, read the guide to core concepts and everyday maintenance. If you’ve chosen a client but are stuck on your first connection, continue with the installation and setup guide.

Which client should you choose?

For desktop, choose v2rayN: subscription groups, routing rules, and logs make ongoing management easier. For Android, choose v2rayNG: it uses the Xray core and suits everyday connections and per-app routing. Choose v2flyNG on Android only when you specifically need v2fly core compatibility.

Once you’ve chosen a client, select a download on the download page that matches your operating system and processor architecture. A client download doesn’t include a remote server; you’ll still need a working node or subscription configuration to connect.

Go to the client downloads page