CLIENTSPlatform · Core · Configuration compatibility

V2Ray client comparison
Choosing a desktop or Android client

Choose a client for your device first, then check that its core supports your node. v2rayN is the top pick for desktop, and v2rayNG for Android. Consider v2flyNG only when you specifically need the V2Fly core.

CAPABILITY MATRIX

Compare the three clients

This table describes each client's intended use and common capabilities; it is not a blanket guarantee for every past release. Menus, routing tools, and bundled cores can vary by release. For specific protocol or transport requirements, check both the release notes and the actual core's support.

On narrow screens, swipe horizontally to scroll the table. With a keyboard, focus the table and use the left and right arrow keys to browse.

Platform, core, and everyday configuration features
Feature v2rayN v2rayNG v2flyNG
Platforms Windows, macOS, and Linux; choose a release package for your OS and processor architecture. Android; choose an arm64 or universal package for your device architecture. Android; choose an arm64 or universal package for your device architecture.
Core Typically uses Xray. Available cores and switching options depend on the release package; don't assume every package includes V2Fly. Primarily uses the Xray core; specific features depend on the bundled core. Uses the V2Fly core; Xray-specific configuration cannot be assumed to work.
Maintenance Actively maintained; review interface and configuration changes before upgrading. Actively maintained; watch for changes to both the client and its bundled core. Alternative project; check release history for update cadence and supported systems.
Ease of use Basic import is straightforward. System proxy, routing, and TUN are configured separately, so it helps to understand what each does. A short setup flow: import, select a node, and allow the Android VPN connection. Basic imports work similarly, but core compatibility needs closer attention.
Subscriptions and groups Well suited to managing multiple subscription groups, updating them in bulk, filtering, and switching nodes. Supports subscription groups and updates, making it easy to organize nodes by source on your phone. Supports subscription import and management; group options depend on the actual interface.
Routing UI Offers a centralized routing interface for managing multiple rule sets and outbound strategies. Includes routing modes and custom rules; take care when editing complex rules on a phone. Includes routing settings; editable fields and rule formats depend on the release.
TUN and traffic handling Packages with TUN support can use the corresponding mode; operation depends on system permissions, network components, and implementation. Routes traffic through Android's VPN interface; this is different from a desktop TUN toggle. Routes traffic through Android's VPN interface and is subject to system VPN permissions and background policies.
Best for Desktop users who manage subscriptions, troubleshoot routing, or work across desktop operating systems. Android beginners and mobile users who need Xray features. Users with a specific V2Fly configuration requirement who are comfortable checking feature compatibility.
DESKTOP / v2rayN Top desktop pick

v2rayN: desktop subscriptions and routing

For Windows, macOS, and Linux, start with v2rayN. It brings subscriptions, server lists, connection tests, system proxy, and routing settings together in a relatively centralized GUI. You can group subscriptions from different sources and more easily spot which one returned an error during an update. For people who use a computer regularly, compare nodes, or maintain rules, this is more intuitive than repeatedly editing a full configuration.

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 classic desktop workflow. These aren't rankings of node quality or connection speed. Choose based on system requirements and interface preference, then confirm the features you need. Across desktop operating systems, don't assume permissions, tray behavior, or network components work identically.

For your first connection, test browser access through the system proxy before trying TUN. The system proxy applies only to apps that honor proxy settings. TUN routes more traffic and adds permissions, DNS, and routing to the troubleshooting mix. If the system proxy works but TUN doesn't, investigate the traffic-handling layer first instead of deleting your subscription or replacing every node.

ANDROID / v2rayNG Top Android pick

v2rayNG: everyday Android connections and Xray features

For Android devices, v2rayNG is the first choice. The basic workflow is to add a subscription, update nodes, select a server, start the connection, and approve the system VPN request. Its Xray core makes it a good fit for nodes that rely on Xray protocol and security-layer features. But client options don't replace server-side parameters: the address, port, user ID, transport, and security settings must all match. One missing field can cause the handshake to fail.

Subscription groups help keep sources separate and avoid confusion during updates. When testing a node, distinguish port reachability from a successful request: a connection to the port doesn't prove authentication, TLS, or access to the destination is working. There's no need to start with complex routing. First confirm the connection using the default or a known-working routing mode, then add rules by app or destination address as needed.

On phones, system background management is a common source of extra variables. If the connection drops when the screen locks or fails to recover after switching mobile networks, check battery optimization, background permissions, and whether another VPN app is using the VPN slot. These symptoms don't automatically point to the core. Check per-app proxy settings too, so excluded apps don't bypass the client and make it look like the connection works for only some apps.

ANDROID / v2flyNG

v2flyNG: an alternative when you specifically need V2Fly

The main reason to choose v2flyNG is its V2Fly core, not a supposedly simpler interface or a guaranteed speed boost on older devices. If your configuration relies on V2Fly fields, transport support, or behavior, staying within the same core family can reduce migration differences. Still, check that the bundled core supports those fields; don't assume a working desktop configuration will work unchanged on a phone.

V2Fly and Xray are both part of the Project V ecosystem, but their features aren't all interchangeable. In particular, a configuration using Xray-specific features won't work just by changing the client name. Even if a share link imports, check that the transport, security, and routing parameters are preserved. A successful import means the link was parsed, not that every feature is supported at runtime.

Before choosing v2flyNG, identify a specific need: does your existing configuration require V2Fly, or are you simply troubleshooting a network issue? If v2rayNG won't connect, first check node parameters, system time, and network conditions. Switching cores without a clear reason changes multiple variables at once and makes the issue harder to reproduce. Before installing, check supported systems and release history; base maintenance and compatibility decisions on the project's own documentation.

USAGE SCENARIOS

Narrow down your choice by use case

MIGRATION CHECKLIST

Check your configuration before switching clients

Start migration from a state you can restore. Back up your subscription groups, routing settings, and any necessary custom parameters, then import them into the new client. A share link usually describes one node, a subscription URL usually returns a list of nodes, and native JSON may contain a full inbound, routing, and outbound configuration. They don't necessarily use the same import option.

  1. Check the protocol and security layer. Check the outbound protocol, such as VMess, VLESS, or Trojan, then verify TLS, REALITY, and transport fields. The same server address doesn't mean two configurations use the same connection method.
  2. Check how traffic is handled locally. On desktop, distinguish system proxy from TUN; on Android, confirm VPN permission and per-app settings. A desktop listening port isn't automatically a required setting on a phone.
  3. Test one node before importing complex rules. Confirm a basic connection with an actual request, then restore routing and DNS settings one at a time. Outbound tags referenced by rules and any resource files they need must also be present.
  4. Keep a rollback configuration. Don't delete the old configuration during testing. Before sharing screenshots or logs, remove subscription URLs, user IDs, and other sensitive parameters so reusable access credentials aren't exposed.

If the same node works in one client but not another, compare the imported configuration field by field before checking core support and traffic-handling settings. A single speed test doesn't establish which client is better; network paths, test destinations, and timing all affect results. See the user guide for setup steps, or consult the troubleshooting guide to diagnose issues by symptom.

SELECTION SUMMARY

Choose v2rayN for desktop and v2rayNG for Android

Choose v2flyNG only when you specifically need a V2Fly configuration. Once you've picked a client, select a package based on your operating system, processor architecture, and the release notes rather than unverified speed claims.

Go to downloads
Download client