Clients / Platforms & Cores

V2Ray Client Comparison
v2rayN and Android Picks

Top pick for desktop: v2rayN. Top pick for Android: v2rayNG. Choose v2flyNG if you need the v2fly core.

Start with your operating system, then check your node's protocol and how you want to manage settings. The key differences are platform, core capabilities, and configuration options—not a fixed speed ranking for the same node.

At a glance

Platforms, cores, and configuration features

This table summarizes common features. Specific options can vary by distribution, system permissions, and core. “Supported” does not mean every protocol setting transfers between clients. Scroll horizontally on narrow screens.

v2rayN, v2rayNG, and v2flyNG compared by platform, core, maintenance, and use case
Category v2rayN v2rayNG v2flyNG
Platform support Windows、macOS、Linux Android Android
Core Typically Xray; available cores depend on the distribution and its Core type options Xray v2fly
Maintenance Actively maintained; check for UI and configuration migration notes before updating Actively maintained; keep an eye on core updates and system compatibility Community-maintained; check update cadence and feature coverage
Ease of use Easy to import a basic configuration; system proxy, routing, and TUN require separate setup Straightforward to connect; requires VPN permission and attention to background restrictions Similar basic workflow to other Android clients; check core compatibility separately
Subscription groups Groups subscriptions and server lists for easier bulk management Includes subscription management and group views Includes subscription management; check import format against your version
Routing UI Dedicated routing settings make rule order and outbound mappings easier to review Routing settings and per-app proxying are suited to mobile use Routing options are available, but supported fields depend on the v2fly core
TUN / Traffic routing Offers TUN mode; requires a compatible core, system permissions, and runtime environment Routes traffic through Android's VPN service; works differently from desktop TUN Routes traffic through Android's VPN service; it isn't a direct port of the desktop TUN toggle
Best for Everyday desktop use, subscription groups, and advanced routing Getting started on Android, Xray protocols, and per-app proxying Android users with existing V2Fly configurations or a specific need for the v2fly core
Download Desktop downloads Top Android pick Alternative for Android

v2rayN: Desktop Subscriptions and Routing

Top desktop pick

v2rayN is a good fit for managing subscriptions, server entries, and routing rules in one place on a computer. Its larger desktop interface makes it easier to review protocol fields, groups, and logs side by side—especially if you switch work environments often or manage separate direct, proxy, and block rules. For everyday use, import a subscription, choose an active server, and then set the system proxy. There's no need to edit a full JSON configuration from the start.

Choosing between the desktop and classic WPF versions

Windows downloads come in desktop and classic WPF versions. The desktop version uses a newer cross-platform interface, suited to users who want a consistent workflow across desktop operating systems. The WPF version retains the classic Windows desktop interface for users who are used to it. Menus and configuration migration may differ, so choose based on interface preferences and system compatibility—not an assumed difference in connection speed.

Evaluate system proxy and TUN separately

Apps such as browsers that respect system proxy settings can usually start with “Set system proxy automatically.” Consider TUN for apps that ignore those settings. TUN changes how traffic reaches the client, may require administrator privileges, and can conflict with other traffic-routing tools. After enabling it, check DNS, local network access, and recovery from sleep—not just whether the toggle is on.

Advanced routing depends on rule order and outbound tags. routing.rules are matched in order, and each rule's outboundTag must match a tag in outbounds. A GUI can reduce manual editing, but it can't replace understanding the matching logic.

v2rayNG: Android Xray Client

Top Android pick

Powered by the Xray core, v2rayNG is the top choice for Android. The basic workflow covers subscription management, server selection, connecting, and granting VPN permission. Unlike on desktop, you don't need to configure a system proxy: the client typically receives app traffic through Android's VPN service, and the system permission prompt is part of that process.

Subscription management and per-app proxying

Save each subscription separately and use clear group names. This keeps one-off imports separate from subscriptions that update regularly. Per-app proxying lets you route only selected apps through the proxy or keep certain local services on their usual network path. Before setting it up, check whether the mode means “proxy selected apps” or “bypass proxy for selected apps”—they are not interchangeable.

Android users should also check background operation. Battery optimization, background activity limits, and manufacturer-specific app management can interrupt a connection when the screen is locked. Review the relevant permissions in system settings, then see if the issue recurs. Switching clients may not prevent the system from stopping a background process, and not every disconnect is caused by the server.

Choose an APK based on processor architecture. Most mainstream phones released after 2015 are likely to use arm64; if you're unsure, check system information or use the universal download. Installation also depends on the required Android version and the signing key of any existing app—not just the phone's release year.

View v2rayNG Android downloads

v2flyNG: An Alternative with the v2fly Core

For specific configuration needs

Choose v2flyNG for a clear reason: you already maintain configurations around V2Fly, or you specifically need the v2fly core on Android. It's not a companion app you need just because its name is similar, nor a general-purpose replacement for v2rayNG. If you simply want to import a subscription and get connected, start with v2rayNG to avoid extra core compatibility checks.

Check fields before migrating configurations

A subscription link distributes configuration; it does not guarantee that every field is understood by every core. A successful import only means the client accepted the link or configuration format—not that every transport, security, and routing setting is active. Before migrating, check the protocol, transport, TLS settings, and target core's supported features. Xray-specific capabilities do not automatically work with v2fly.

For maintenance, follow project announcements and release changes; update frequency is not a measure of connection quality. Record your current settings before updating, then test the connection, DNS, and routing results afterward. If your setup works well, reconsider your choice of core only when you have a specific feature need or compatibility issue.

You can save configurations in both clients on the same phone, but run only one VPN service at a time while testing. If both apps try to route network traffic, the results won't have a clear baseline. Compare them on the same network, with the same server parameters and routing targets, so configuration differences aren't mistaken for client differences.

View v2flyNG alternative Android downloads

Use Cases

Choosing for beginners, advanced users, and multiple devices

Use these scenarios to narrow down your options. Make the final choice based on your device's operating system, configuration compatibility, and real-world network performance.

Three things to keep in mind before choosing

Will switching clients make the same node faster?

Not necessarily. Server load, network route, transport settings, DNS, and routing all affect performance. Compare real-world app access using the same server and similar settings. One test can't predict long-term performance, and a core's name is not a speed rating.

Does enabling TUN send all traffic through the proxy?

No. TUN or the system VPN service determines how traffic reaches the client; routing rules determine which outbound handles it. Local networks, direct-connection rules, excluded apps, and DNS routing can still change the result. Capturing traffic and proxying everything are separate questions—check both.

What should I save before switching clients?

Keep a record of your subscription source, group names, current routing mode, custom rules, and DNS settings. Subscription links can grant access to your account, so don't share screenshots or send them somewhere untrusted. After migrating, test the basic connection first, then restore custom settings one at a time to avoid introducing multiple variables.

Our Picks

v2rayN for desktop, v2rayNG for Android

For desktop, v2rayN is the top pick for subscription groups, system proxy settings, and routing rules. For Android, v2rayNG is the top pick for VPN-based traffic routing, background operation, and per-app proxying. Choose v2flyNG only when you specifically need the v2fly core. Once you've picked a client, use the download page to choose your operating system, processor architecture, and package type—there's no need to compare version numbers here.

Download v2rayN