Platform · Core · Configuration

V2Ray Client Comparison

Use v2rayN on desktop and v2rayNG on Android. Consider v2flyNG when you specifically need the V2Fly core.

Start by checking your device's platform, then confirm the protocols and transports your nodes require. Similar client names don't mean their configuration files, core features, or settings are interchangeable.

Platforms and cores, define your needs first

This table compares how the clients are used, not their performance. The same subscription can behave differently across devices depending on the network, routing rules, DNS, and server configuration.

On narrow screens, scroll horizontally to view the table. Feature names and menu locations may change between releases; check the installed version and its release notes.

Features and supported use cases: v2rayN, v2rayNG, and v2flyNG
Comparison v2rayN v2rayNG v2flyNG
Platforms Windows, macOS, and Linux desktops; choose the package for your platform Android; choose the arm64 or universal version for your device Android; choose the arm64 or universal version for your device
Core Xray or V2Fly; available options depend on the package, protocol, and configuration Xray; protocol and transport support depends on the core in use V2Fly; don't assume it supports every Xray extension
Maintenance Community-maintained; check notes on the interface, core, and system compatibility Community-maintained; check notes on core changes and Android compatibility Community-maintained; check release notes and compatibility before choosing
Getting started Basic imports are straightforward; configure system proxy, TUN, and routing separately Import a subscription, select a node, and grant VPN permission; check background restrictions too Similar basic workflow to other Android clients; verify core compatibility as well
Subscription management Manage multiple subscriptions with group names, URLs, and update options Manage subscriptions and update or switch configurations on your phone Subscription management is available; import results depend on the content and core support
Routing UI Desktop routing settings are easy to review and adjust; complex rules still require JSON knowledge Includes routing settings; check the core's format for complex custom configurations Includes routing settings; editing options depend on the version
TUN and traffic capture Supports TUN-related features; permissions, helper components, and compatibility vary by platform Captures traffic through Android's VPN interface; this is not the same as a desktop TUN settings screen Captures traffic through Android's VPN interface; system permission is required
Best for Desktop beginners, users with multiple subscriptions, and anyone who needs detailed routing Android beginners and users whose nodes require Xray features Android users with existing V2Fly configurations who specifically need that core

How the three clients differ

The client provides the interface and manages configuration; the core handles connections. Considering them separately helps distinguish interface issues from protocol issues.

v2rayN: desktop configuration and subscription management

Top desktop pick

v2rayN is a good fit for managing subscriptions, node selection, system proxy, and routing in one desktop workflow. The larger screen makes it easier to review groups, edit rules, and check logs. Start with one subscription: update it, select a node, and verify it in your browser before adding more groups. There's no need to enable every advanced option upfront.

The Windows download page offers Desktop and the classic WPF version. Desktop uses a cross-platform interface, while WPF retains the classic Windows interface. This is a difference in interface and platform support, not a measure of connection speed. On macOS or Linux, choose the matching desktop package; don't use the Windows WPF package. Permissions vary by operating system, so a similar-looking interface doesn't mean TUN starts the same way on every platform.

For advanced use, distinguish between which apps send traffic to the client and which outbound the client uses for that traffic. System proxy or TUN handles the first; routing rules handle the second. When troubleshooting, first check whether traffic reaches the core, then review the matched rules and outbound tags. If you switch between Xray and V2Fly, verify the node fields too—a core switch isn't a universal fix.

v2rayNG: Android subscriptions and VPN connections

Top Android pick

Powered by the Xray core, v2rayNG suits users who want to import subscriptions and quickly select nodes on Android. The basic workflow is to save a subscription URL, update it, select a configuration, then start the connection and grant Android VPN permission. A successful subscription update only means the content was fetched and parsed; test the connection by opening a webpage or target app.

On phones, the key difference isn't just the client—it's also Android's background management. If the connection works with the screen on but drops when locked, check battery optimization, background permissions, and conflicts with other VPN services before reinstalling. When restricting traffic by app, check whether the list uses allowlist or blocklist logic; selecting an app can have opposite effects in different modes.

v2rayNG keeps everyday connection management in a graphical interface, but complex routing, custom DNS, and full JSON configurations still require an understanding of the core. With a custom configuration, some interface settings may no longer be included in the generated config; check which configuration source is actually active. Avoid changing subscriptions, DNS, and app scope at the same time, or it will be harder to identify what caused a connection change.

View v2rayNG downloads

v2flyNG: an Android alternative for V2Fly configurations

V2Fly core

Choose v2flyNG because you need its core—not because the name is similar or your device is old. Consider this Android client if you already have a V2Fly configuration, your nodes use protocols and transports supported by that core, and you want to keep the same configuration workflow. If you're new and don't have a specific core requirement, start with v2rayNG as recommended here; its consistent import and troubleshooting steps make it easier to learn.

V2Fly and Xray share technical roots, but their capabilities have diverged. A subscription appearing in an Xray client doesn't mean V2Fly can run every node in it. Check actual support, especially for specific extensions. If nodes are missing after import, fields trigger errors, or connections fail, verify the protocol and transport first instead of assuming the subscription URL is the problem.

To compare behavior, you can keep configurations in both Android clients, but run only one VPN service at a time. Test the same node, network, and target app; note the configuration differences before deciding whether the core is involved. v2flyNG isn't automatically a lightweight replacement for older phones. Suitability depends on the system, architecture, background settings, and actual workload.

View v2flyNG downloads

Choose by use case, keep configuration variables to a minimum

V2Ray protocol selection and configuration compatibility

V2Ray clients, cores, protocols, and transports are four distinct layers. The client is the interface you use; the core determines which features are implemented; the protocol describes how a connection works; and the transport and security layers define how it is carried and protected. If you see VMess, VLESS, Trojan, or Shadowsocks, check the transport and security settings too—protocol names alone don't tell you whether a node will work.

VLESS in particular must be understood in the context of its security and transport settings. The name alone isn't a complete security solution and doesn't replace the parameters provided by the server. Some nodes depend on specific core extensions; confirm support before moving them to another core. Don't delete unrecognized fields just to make the interface save successfully.

A subscription URL isn't the same as a full configuration

Subscriptions usually distribute node details, while a full JSON configuration may also define inbounds, outbounds, routing, DNS, and policies. After importing a full configuration, don't assume all GUI settings will still be applied on top of it. Before migrating, identify the content type, keep a copy of the original, and check how inbounds, outbounds, and routing relate to each other.

If the list is empty after importing a subscription into v2rayNG, first check that the URL is valid and the response uses a supported subscription format, then verify core compatibility. Full subscription URLs may contain access credentials; don't include them in public screenshots. When asking for help, share the protocol, transport, and error type, but redact sensitive information first.

Evaluate connection methods and test results separately

v2rayN's TUN mode captures traffic; it won't fix incorrect node parameters. If a browser connects but other apps don't, check whether those apps use the system proxy and whether you actually need TUN. On Android, when traffic already goes through the VPN interface, check the app scope and routing instead of copying desktop system proxy steps.

V2Ray node speed tests report results under specific test conditions. The test target and handshake may differ from those of a real app, so a single speed test can't rank clients by performance. For a fair comparison, keep the network, node, and target fixed, change one setting at a time, and check real-world access alongside the logs. If a speed test fails but websites work—or a test succeeds but an app doesn't—investigate further.

For configuration details, read the complete configuration guide. For your first import and connection test, see the getting started guide. Establish the basic workflow before adding rules; it's easier to troubleshoot than switching repeatedly between clients.

Recommendations and downloads

Top desktop pick: v2rayN

Choose the package for your system: Windows, macOS, or Linux. Desktop tools make it easier to organize subscriptions, review routing, and distinguish system proxy from TUN. On Windows, choose Desktop or WPF based on your interface preference and system requirements.

Download v2rayN

Top Android pick: v2rayNG

For everyday subscription imports and Xray nodes, start with v2rayNG. Choose v2flyNG only if you specifically need the V2Fly core and have confirmed your nodes and system are compatible. Find both v2rayNG and v2flyNG downloads in the Android section.

View Android clients

All three clients are open-source GUI tools. The best choice isn't the one with the longest feature list; it's the one that installs on your platform, supports your node parameters, covers the apps you want through its connection method, and makes configuration changes easy to track.