CLIENT SELECTION

V2Ray Client Comparison

For desktop, choose v2rayN; for Android, choose v2rayNG. Consider v2flyNG if your existing configuration specifically depends on V2Fly.

Start by choosing a client for your operating system, then check that its core supports your configuration. The differences go beyond the interface: how subscriptions are organized, where routing is configured, and which apps have their traffic handled all affect everyday use and troubleshooting.

CAPABILITY MATRIX

Platform and Feature Comparison

Compare what each client can do; core names are not performance rankings. Scroll horizontally to view the table on narrow screens.

Platform, core, maintenance, ease of use, and features compared across v2rayN, v2rayNG, and v2flyNG
Comparison v2rayN v2rayNG v2flyNG
Platforms Windows、macOS、Linux Android Android
Core Xray is commonly used; other core options and compatible configurations depend on the version Primarily Xray; protocol and transport settings depend on the bundled core V2Fly; use configurations supported by the corresponding core
Maintenance Actively maintained; choose between the desktop edition and classic WPF edition Actively maintained; app updates may also change core compatibility A maintained alternative with its own release schedule, independent of v2rayNG
Ease of use Basic imports are straightforward; system proxy, routing, and TUN require separate consideration Fewer steps for basic setup; requires VPN permission and background activity settings Basic setup is similar to other Android clients; check configuration compatibility first
Subscription groups Organize sources, updates, and configuration lists by subscription group Subscription management is supported; group display and update options depend on the interface Supports subscription imports and management; use only configurations the core can read
Routing UI Desktop tools for editing routing rules and managing rule sets are easy to find Routing settings are available; complex rules may require custom configuration Routing settings are available; advanced fields follow V2Fly semantics
TUN and traffic handling TUN mode is available; support depends on the system, permissions, and related components Creates a virtual network interface through Android's VpnService; this is not the same as a desktop TUN toggle Handles traffic through Android's VpnService and still requires system VPN permission
Per-app controls System proxy affects apps that honor proxy settings; broader traffic handling requires separate TUN configuration Supports per-app proxying so you can choose which apps' traffic to handle Adjust traffic handling by app using the options provided by the client
Key features Subscription groups, routing editor, system proxy toggle, and desktop settings management QR code and subscription imports, per-app proxying, and mobile VPN traffic handling V2Fly configuration support, Android GUI, and subscription management
Best for Desktop users who want visual tools for managing routes and multiple subscription sources Android users who need Xray features or per-app controls Android users with existing V2Fly configurations who want to stay on the same core

Maintenance status is a general indication, not a promise of a fixed release schedule. Features and core combinations may change between releases; check the interface and logs in your installed version.

CLIENT NOTES

How the Three Clients Differ

v2rayN: Desktop Configuration and Routing

For Windows, macOS, or Linux, start with v2rayN. Its desktop interface brings server configurations, subscription groups, routing, and local listeners together. If you use several subscription sources, create groups by purpose and update them separately to keep temporary and long-term configurations organized. The wider desktop layout also makes it easier to review match conditions and outbound tags when adjusting V2Ray routing rules.

The Windows download page offers a desktop edition and a classic WPF edition. The desktop edition uses a newer cross-platform interface, while WPF retains the familiar classic Windows experience. They do not use different proxy protocols, and a newer-looking interface does not guarantee that a particular configuration will connect. Choose based on system requirements and workflow, then check the core and settings actually in use.

With v2rayN, the key is understanding the difference between the system proxy and routing. The system proxy tells apps that honor it where to send requests; routing determines which outbound handles requests that reach the core. These operate at different layers. Terminals and some standalone apps may ignore the system proxy, so a working browser does not mean every app is using the client. To handle more traffic, look into TUN and check for conflicts with permissions, DNS, and other virtual networking tools.

Choose a Windows download · Choose a macOS build · Choose a Linux package

v2rayNG: Everyday Android Use and Per-App Proxying

For Android devices without a specific V2Fly compatibility requirement, choose v2rayNG. It primarily uses the Xray core. Typical steps are importing a subscription, updating configurations, selecting an entry, and starting the connection. On first launch, Android asks for VPN permission. This lets the client create a local virtual network interface through VpnService; it does not mean the client provides a shared remote service.

On mobile, troubleshooting often starts with system-level restrictions. If the connection drops after the screen has been off for a while, check battery optimization, background activity limits, and the manufacturer's app-sleep settings before changing protocol parameters. Another app using Android's VPN slot can also cause a traffic-handling conflict. First check which app controls the VPN connection, then review the client logs so a permission issue isn't mistaken for a broken configuration.

Per-app proxying lets you route traffic from selected apps only, or exclude specific apps from the client. Make sure you understand whether the mode proxies only selected apps or bypasses them: the same list can produce the opposite result depending on the mode. For advanced transport or security settings, check that the bundled Xray core supports them. A successful subscription import does not guarantee that every field is active.

View v2rayNG for Android

v2flyNG: An Android Alternative for Existing V2Fly Configurations

The main reason to choose v2flyNG is its core, not assumptions that an alternative is lighter or uses less battery. If your existing configuration, documentation, or server setup specifically relies on V2Fly capabilities, the matching client can avoid translating fields between cores. You'll still need to import subscriptions, grant Android VPN permission, and configure background activity; the client cannot bypass Android's traffic-handling limits.

V2Fly and Xray are both part of the Project V ecosystem, but their capabilities have evolved differently. Sharing basic protocol names does not mean that every transport parameter, security option, or configuration format is interchangeable. In particular, do not expect Xray-specific features such as REALITY to work directly with the V2Fly core. Choose a client and core that match the configuration rather than just changing its displayed name.

If your current v2flyNG configuration works reliably and you don't need new capabilities, there's no need to migrate just to standardize app names. If your subscriptions mainly use Xray-specific features, v2rayNG remains the better Android choice. Subscriptions, routes, and app lists are stored separately by each client; installing another one will not automatically transfer all your settings.

View v2flyNG and Android package details

USAGE SCENARIOS

Choose by Device and Experience

CONFIGURATION TRANSFER

Check Your Configuration Before Switching Clients

A client imports connection details; it does not provide a remote service you can use on its own. Before choosing a client, confirm where your subscription or configuration came from and what it supports. Without valid connection details, switching clients usually won't fix connection problems.

  1. Check the protocol and core. Note the protocol, transport, and security options. Don't rely on the configuration name: names can be anything; compatibility depends on the fields and core implementation.
  2. Separate subscriptions from local settings. Subscriptions usually provide connection entries, while the system proxy, listening ports, per-app proxying, and some routing settings are managed on the device. Updating a subscription does not restore every client setting.
  3. Keep the old configuration while testing. Save your current settings in the original client, then test one connection in the new client using its default mode. Don't delete old groups or overwrite the full configuration until the basic setup works.
  4. Check rule dependencies. Each routing rule's outboundTag must match an existing outbound. For geosite or geoip conditions, check that the required data is available. Copying rule text does not copy all its dependencies.
  5. Troubleshoot in stages. First check whether the client starts, then check the handshake and connection, and finally inspect DNS and routing. On Android, also verify VPN permission and background restrictions; on desktop, check whether the app honors the system proxy.

Settings in the interface do not always map one-to-one to the final JSON. Some clients generate or merge configuration at startup, and edits to generated files may be overwritten the next time settings are saved. For field details, see the configuration reference. For import or connection issues, use Troubleshooting to find steps based on the symptoms.

Recommendations and Downloads

For everyday desktop use, choose v2rayN and download the package for Windows, macOS, or Linux. For Android, choose v2rayNG. Consider v2flyNG only when your configuration is specifically designed for V2Fly and does not depend on Xray-specific features. Match the platform and protocol requirements first, then compare interface preferences for a stable setup that's easier to understand than repeatedly installing different clients.