v2rayN, v2rayNG and v2flyNG Compared

Start by filtering by operating system, then check the core and how traffic is routed. v2rayN is the top pick for desktop; v2rayNG is the top pick for Android. Consider v2flyNG when you need to keep using a V2Fly-based configuration.

All three are graphical tools in the V2Ray ecosystem, but they are not simply different skins of the same software. The interface handles subscriptions, configuration and controls; the core handles the actual connection. Similar feature names do not guarantee identical configuration fields, default routing behavior or permission requirements.

Platforms and architecture Xray / V2Fly Subscriptions and routing System proxy / VPN

Platforms, cores and controls

Use this table to shortlist clients, not rank their performance. On narrow screens, scroll horizontally to see the full comparison.

Platforms, cores, maintenance status, learning curve and feature limits of v2rayN, v2rayNG and v2flyNG
Comparison criteria v2rayN v2rayNG v2flyNG
Platform support Windows, macOS and Linux desktop systems. Android。 Android。
Core options Can manage cores such as Xray-core and V2Fly-core. Available combinations depend on the release package and configuration type. Primarily uses Xray-core; supported protocols vary with the core in use. Uses V2Fly-core and follows its supported protocols and transports.
Maintenance status Actively maintained. Feature locations may differ between the cross-platform and classic interfaces. Actively maintained. Check both Android compatibility and core changes when updating. An alternative for the V2Fly ecosystem. Check release notes for its maintenance cadence and current availability.
Learning curve Basic imports are straightforward; system proxy, TUN and multi-core settings add complexity for advanced users. Basic imports are straightforward; users need to understand VPN permission, background operation and per-app rules. Basic use is similar to other Android clients; check V2Fly configuration compatibility separately.
Subscription groups Supports subscription groups, useful for separating sources and updating them individually. Includes subscription group settings and update controls for managing subscriptions on a phone. Includes subscription management; group and update controls depend on the installed version.
Routing UI Offers graphical routing settings for organizing domain, address and outbound rules. Includes routing settings and rule controls, with options to route traffic by app. Includes routing-related settings; check the installed interface for advanced rule-editing options.
TUN and traffic routing Includes TUN features, depending on system support, components, permissions and core combination. System proxy is also available. Typically routes traffic through a virtual network interface using Android's VPN service; this is not the same as a desktop TUN toggle. Routes traffic through Android's VPN service. Behavior depends on Android and the client's settings.
Best for Desktop users who manage subscriptions, adjust routing or compare core behavior. Android users who want to import subscriptions and connect through a graphical interface. Users with existing V2Fly configurations or a specific need to stay on the V2Fly core.

v2rayN: Desktop subscriptions and routing

Top desktop pick

v2rayN brings common desktop tasks together in one window, with controls for subscription groups, server configurations, routing and system proxy settings. Its desktop interface is easier to work with than phone menus when you need to inspect configuration details, separate multiple subscription sources or check connection settings one by one. Windows, macOS and Linux users can start here without learning every core option first.

The Windows download page offers a desktop edition and a classic WPF edition. The desktop edition uses a newer cross-platform interface; the WPF edition retains the classic workflow. Menu layouts, configuration storage and some feature locations may differ. If your current setup works well, do not switch just because one interface looks newer. For a first installation, choose according to the download page, then follow one consistent set of instructions to avoid mixing screenshots from different interfaces.

Multi-core management is useful when you have a specific compatibility goal. Whether a configuration works depends on whether the current core accepts its protocol, transport and security settings—not just on the client name. Before switching cores, note your existing configuration and routing mode. After switching, test one known-working configuration before restoring complex rules. Changing several layers at once makes problems harder to diagnose.

System proxy is a good first step for testing on desktop. Some apps ignore system proxy settings; only then consider TUN or the app's own proxy options. TUN may require administrator permissions and a virtual network interface, and may affect DNS handling. It is not a setting you must enable after installation. First confirm that your release package and core combination support it.

Windows download details → macOS download details → Linux download details →

v2rayNG: Everyday use on Android

Top Android pick

v2rayNG keeps everyday phone use simple: import a subscription, choose a configuration and connect. It primarily uses Xray-core, and typical use does not require editing a full configuration file. Explore the relevant menus as needed for subscription groups, routing settings or per-app controls. For first-time Android users, starting with the basics and adding options gradually makes troubleshooting easier.

The first connection usually triggers an Android VPN permission prompt. This lets the app create a virtual network interface; it does not provide a working service configuration. After granting permission, check that the subscription has updated, the selected configuration is valid and traffic is routed through the expected outbound. Another VPN app may compete for the system connection, so when troubleshooting, leave only one traffic-routing app active.

Stable operation on a phone also depends on battery management, background restrictions and network changes. If the connection drops when the screen locks, first check whether the system restricts background activity. If it fails only after switching networks, reconnect and check the logs before reinstalling. Review per-app rules one by one: an excluded app bypasses the client, which does not necessarily mean the connection itself has failed.

Check the processor architecture before downloading. Most recent Android devices use arm64, but a device's age is no substitute for checking its system information. If you are unsure of the architecture, consider the universal package based on the download page's guidance. A universal package supports more architectures; it does not improve connection capabilities. Package selection and server-side protocol support are separate concerns.

View v2rayNG Android packages →

v2flyNG: An alternative using V2Fly-core

Choose for compatibility needs

Choose v2flyNG for its V2Fly-core, not because its name resembles v2rayNG. If you already have a configuration tailored to V2Fly behavior or are troubleshooting against V2Fly documentation, staying on the same core can reduce variables. If you simply want to import a subscription and get started on Android, v2rayNG is usually the first choice. Consider v2flyNG when you have a specific compatibility issue to address.

Xray and V2Fly belong to related technical ecosystems, but their subsequent development has not been identical. Sharing a protocol name does not mean all transports, security settings and extension fields are interchangeable. If a subscription uses a feature specific to one core, confirm that the core used by v2flyNG supports it. A successful import does not prove the connection will work, and another client will not automatically fill in incompatible fields.

v2flyNG also requires Android VPN permission and is subject to background operation and routing settings. Switching clients does not remove the system's battery restrictions or fix an invalid subscription URL. To compare two Android clients, use the same network, the same compatible configuration and similar routing settings. That helps identify differences in the core rather than differences in which traffic each client captures.

Before installing, check the latest release notes and system requirements. This guide treats v2flyNG as an alternative for specific configuration needs, not as evidence that it has the same maintenance cadence as other clients. If your current setup is stable, back up your subscription groups and custom rules before testing a migration. Do not overwrite the only settings you know work.

View the v2flyNG Android alternative →

Subscriptions, routing and TUN: what each does

Subscription groups organize sources

Groups organize subscription URLs, update scopes and notes; they do not determine which outbound an app uses. If multiple devices share a subscription source, check each device's update time and import results separately. Subscriptions may use different formats, and fields parsed on desktop may not map identically on Android.

Routing interfaces edit rules

A graphical interface makes adding rules easier, but rule order, domain matching and DNS settings still matter. When comparing clients, check whether you can express the rules you need, review them clearly and revert them—not just how many toggles are available. If a rule does not match, first check whether the request reaches the client, then review the match conditions.

TUN and VPN traffic routing

Desktop TUN and Android's VPN service both use virtual network interfaces, but their permission models and controls differ. Even after traffic capture is enabled, routing can still send some connections direct, so capturing traffic does not mean everything goes through a proxy outbound. If only a browser needs a proxy, first test the system proxy or the browser's proxy settings. Expand traffic capture only if you need more apps covered.

For a closer look at these concepts, read the glossary. If a connection is established but the target app still fails, follow the symptoms in the troubleshooting guide—that is usually more effective than repeatedly switching clients.

Choose an installation path for your device

What to do after choosing a client

  1. Open the download page: Choose the package for your operating system and architecture, then read the platform-specific installation instructions.
  2. Complete the basic import: Add and update a subscription group, or import a valid existing configuration. Confirm the expected entries appear in the list.
  3. Check which traffic is routed: On desktop, verify the system proxy; on Android, grant VPN permission. Then check whether the target app is reaching the client.
  4. Keep a way back: Note the working core and routing mode. Change one setting at a time, and return to the verified setup if anything goes wrong.

The recommendation does not depend on ratings or download counts: use v2rayN for desktop, v2rayNG as the first choice for Android, and v2flyNG when you have a specific V2Fly compatibility need. The download page lists packages and platform requirements; see the guide for detailed import steps.