v2rayN · v2rayNG · v2flyNG

V2Ray Client Comparison
Choose by platform and core

For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG if you already use V2Fly configurations. Check device and configuration compatibility first, then compare management features.

How the three clients differ

These are GUI clients, not servers or subscription services. A client manages connection settings, runs a core, and handles selected traffic. Whether a connection works also depends on server settings, network conditions, and configuration compatibility. After downloading a client, you still need connection settings you are authorized to use.

Narrow down your choice with three questions: What operating system does your device use? Which core does your configuration require? Do you need detailed routing or app-level traffic handling? You don't need to use the same client on desktop and phone, and you shouldn't swap entire core JSON configs without checking compatibility. A more practical approach is to use a compatible subscription source and set local rules separately on each device.

Platform, core, and management features

This table compares each client's general feature set; not every release has an identical interface. Check the client version, selected core, and OS permissions, especially for TUN, routing, and protocol support. Maintenance status is a general guide, not a promise of update frequency or long-term compatibility.

On narrow screens, swipe horizontally within the table to see the full comparison.

How v2rayN, v2rayNG, and v2flyNG compare
Feature v2rayN v2rayNG v2flyNG
Platforms Windows, macOS, and Linux; the WPF edition is Windows-only Android Android
Core Works with cores such as Xray and sing-box; features depend on the core and build Xray-focused; capabilities vary with the integrated core v2fly-focused; check compatibility with your V2Fly configuration
Maintenance Actively maintained; check release notes for the desktop and WPF editions separately Actively maintained; keep an eye on changes to the app and bundled core Community-maintained; check release announcements for the latest update schedule
Ease of use Basic imports are straightforward, with plenty of options for advanced setup Common tasks are easy to find; first connection requires Android VPN permission Similar basic workflow to other Android clients, but core differences take some learning
Subscription management Manage multiple subscription groups, with separate update and filtering settings Organize configurations by subscription source for easy switching on your phone Supports subscription management; group and filter options vary by version
Routing UI Routing settings and rule management are easy to access for desktop configuration Routing modes and rules are available; check core support for complex rules Routing options are available; confirm supported fields and rules against v2fly capabilities
TUN and traffic handling Use the system proxy or TUN; TUN depends on permissions, the core, and your system Handles traffic through Android's VPN service; this is not the same as a desktop TUN toggle Handles traffic through Android's VPN service, subject to system permissions and app settings
Best for Desktop users who manage multiple subscriptions or need detailed routing Everyday Android use, especially with existing Xray-based configurations Android users with existing V2Fly configurations who want to stay on the same core

v2rayN: desktop management and routing

v2rayN is our first pick for desktop use because of its platform coverage and management options—not an abstract performance ranking. Windows, macOS, and Linux users can find settings under the same client name. Subscription groups, routing, system proxy settings, and logs are also easier to manage on a larger screen. If you keep separate work, test, and everyday configurations, groups are easier to maintain than one long list of connections.

Choosing between the desktop and WPF editions

The Windows download page offers the desktop and classic WPF editions. The desktop edition uses Avalonia for a cross-platform interface, making it a good fit if you want a consistent workflow across operating systems. The WPF edition is for Windows users who already know its layout and workflow. Settings and runtime requirements may differ. If a tutorial screenshot doesn't match your app, check which edition you're using before assuming something went wrong during installation.

On macOS and Linux, choose a desktop installer that matches your OS and processor architecture. The Windows WPF package won't run on another OS just because its name looks familiar. If you only need browsers and other system-proxy-aware apps to connect, start with the system proxy. Look into TUN permissions, routing, and DNS only if you need to handle traffic from other apps.

When v2rayN is a good fit for advanced use

v2rayN suits users who manage multiple subscriptions, inspect rules, and monitor core activity. More options also mean more ways to misconfigure things. After switching cores, protocol extensions, routing fields, and DNS behavior may change. Keep a copy of your original configuration and change one related setting at a time. Being able to import a format doesn't mean the selected core supports every setting in it.

Windows downloads → · macOS downloads → · Linux downloads →

v2rayNG: a practical choice for everyday Android use

For Android, start with v2rayNG. It covers the usual workflow: import a subscription, choose a configuration, and connect. It primarily uses the Xray core. If your provider's instructions require Xray-specific features, check that the core currently bundled with v2rayNG supports them. A protocol name in a share link alone doesn't tell you everything about the transport, security layer, or extensions.

VPN permissions and app traffic

The first time you connect, Android will usually ask for permission to establish a VPN connection. This is how the client handles traffic on Android; it doesn't mean your subscription has connected successfully. After granting permission, check the active configuration, routing mode, and app scope. Android generally allows only one VPN service at a time, so another app using the same system channel may replace it or cause a conflict.

After updating a subscription, check that the active configuration still works. Switching between mobile data and Wi-Fi can change DNS and the connection path, so troubleshoot on one network at a time and check the logs. If disconnections happen only in the background, review battery optimization and background restrictions before blaming the protocol or core.

v2rayNG keeps the typical Android workflow simple, so you don't need to understand an entire JSON file just to connect. Complex routing still requires an understanding of rule order, domain resolution, and outbound selection. Start with a configuration you can verify, then add custom rules one at a time. That makes problems easier to trace than importing a large set of changes all at once.

v2rayNG for Android: installation options →

v2flyNG: an alternative for existing V2Fly configurations

Choose v2flyNG when you have a specific need for the v2fly core. It's intended for Android users whose setup already depends on V2Fly configurations, documentation, and server settings. If your existing configuration works with that core, keeping its behavior consistent matters more than maximizing the number of client features.

Check protocol details before switching

Xray and V2Fly come from related technical ecosystems, but continued development means they aren't fully interchangeable. Even when the basic protocol is the same, transport implementations, extension fields, and parameter combinations can differ. For configurations that rely on core-specific features, importing a link successfully doesn't guarantee that the connection will work.

Before switching from v2rayNG to v2flyNG, note the protocol, transport, security layer, domain, and routing requirements, then check which ones are supported. Avoid replacing the entire configuration while also changing DNS, routing, and connection settings. To compare behavior, start with a compatible basic configuration and check the logs and actual results under the same network conditions.

v2flyNG isn't an 'older phone' edition, and its core name alone doesn't mean it's more battery-efficient or lightweight. Compatibility depends on the OS version, processor architecture, build requirements, and configuration complexity. If you don't specifically need V2Fly compatibility, start with v2rayNG on Android to keep the choice simple.

See the v2flyNG alternative →

Recommendations for beginners, advanced users, and multi-device setups

Which client to choose and what to download first

Start with v2rayN on desktop and v2rayNG on Android; consider v2flyNG only if you need V2Fly compatibility. This is a practical default based on platform and configuration effort, not an absolute ranking. Compatibility between the core and configuration—and whether traffic handling works as expected—usually matters more.

Before downloading, confirm your operating system and processor architecture. After installing, import a known-working configuration and establish a reproducible baseline connection. Once that's working, add subscription groups, custom DNS, or routing rules one step at a time. If something breaks, note the conditions and check the logs rather than repeatedly installing different clients.

Download client