Choosing a Client / Platform and Configuration Limits

V2Ray Client Comparison

For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG if you need to keep using a V2Fly-core configuration. Check your platform and server parameters first, then compare available features.

Feature comparison: three clients

This table compares configuration capabilities and workflows; menus are not identical across platforms. Features depend on the installed client, core, and system permissions. Scroll horizontally on smaller screens.

First rule out clients that don't support your operating system, then check the core and traffic-routing method.
Comparison v2rayN v2rayNG v2flyNG
Platform support Windows、macOS、Linux Android Android
Recommendation Top desktop pick Top Android pick Android alternative; choose based on core requirements
Core May use Xray, V2Fly, or other cores; options depend on the build and configuration Primarily uses the Xray core V2Fly core
Maintenance Actively maintained; review feature changes before upgrading Actively maintained; check for core changes with client updates Check current maintenance status and core update notes before choosing
Ease of use Basic imports are straightforward; combining routing, DNS, and TUN settings requires an understanding of networking Import a subscription and grant VPN permission to get started; per-app settings need additional checks Basic workflows are similar to other Android clients; you'll also need to check V2Fly configuration compatibility
Subscription groups Good for grouping by source, filtering servers, and managing multiple subscriptions Subscription management for everyday use on mobile Manage subscriptions using the options in your build; check format compatibility first
Routing interface A desktop routing interface makes it easier to inspect rules and their outbound connections Routing and per-app settings are available; editing options vary by version Basic routing settings are available; check the actual menus to see which rules you can edit
TUN and traffic routing Includes TUN options; requires appropriate permissions, supporting components, and an OS that supports them Typically routes traffic through Android's VPN interface; this is not the same as a desktop TUN toggle Typically routes traffic through Android's VPN interface; check system permissions as well
Best for Desktop users who manage multiple subscriptions or need detailed routing Android beginners, everyday mobile users, and users who need Xray features Users with V2Fly-specific configurations who need to check core differences
Downloads Choose a desktop platform View v2rayNG View v2flyNG

v2rayN: Desktop subscriptions and routing

v2rayN brings server lists, subscription sources, and routing settings together in a desktop interface. Windows, macOS, and Linux users can start here without looking for the same installer across operating systems. When downloading, match the operating system, processor architecture, and package format. A shared platform doesn't mean installers are interchangeable.

The Windows download page offers a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while WPF retains the classic Windows experience. New users can start with the desktop edition; those with established workflows can choose WPF based on the tutorials and menus they use. These are not different server protocols, and changing the interface won't fix an incorrect server address, transport setting, or credential.

When you manage many subscriptions, v2rayN's groups make it easier to check where each one came from. Name groups by source or purpose, keep recognizable notes, and filter servers as needed. If an update fails, you can check the affected group instead of repeatedly deleting the entire list. The routing interface also helps you review rule order, but make sure you understand which outbound each rule uses rather than relying on its name.

TUN is an important desktop differentiator, but it shouldn't be enabled by default. For programs such as browsers that support the system proxy, start by testing with the system proxy. Check the permissions and supporting components required for TUN only when a program doesn't use the system proxy and needs broader traffic routing. After enabling it, recheck DNS, local network access, and other network tools to avoid overlapping traffic-routing methods.

Best for: users who need a desktop client, multiple subscriptions, or a clearer way to manage routing should start with v2rayN. For configuration details, see the routing rules guide and the TUN mode guide.

v2rayNG: The everyday choice for Android

v2rayNG lets you import subscriptions, choose a server, and route traffic through Android's VPN interface. It is built primarily around the Xray core. If your server documentation specifies Xray features, check that the bundled core supports the required parameters—don't assume compatibility just because a share link imports successfully. A successful import only means the format was recognized; it doesn't confirm that the handshake or routing works.

Beginners can start with a simple workflow: install the package for your device architecture, add a subscription URL, update it, select a server, then start the connection and grant system permission. A subscription URL and a server address serve different purposes; don't enter a management page URL as a subscription. For formats and steps, see the quick start guide.

Android's VPN-based traffic routing works differently from a desktop system proxy. Even when the client says it's running, per-app settings, bypass rules, or another VPN service may prevent an app's traffic from going through the proxy. If one app can't connect, first check whether it's excluded, then review routing and DNS; switching clients shouldn't be your first move. Android generally can't route traffic through multiple VPN-based services at once.

On mobile, pay attention to background behavior too. Battery management may restrict the client when the screen is locked, and switching between Wi-Fi and mobile data may require reconnecting. First check whether the issue occurs only after locking the screen or changing networks, then adjust background permissions in system settings. Frequent disconnects don't necessarily indicate protocol incompatibility; the process may be restricted or the network may have changed.

Best for: Android users without a specific V2Fly compatibility requirement should start with v2rayNG. The download page offers arm64 and universal packages. If you're unsure of your device's architecture, check its specifications rather than guessing from its appearance or memory.

v2flyNG: An alternative for V2Fly configuration compatibility

The main reason to choose v2flyNG is its V2Fly-core approach—not simply that it's another Android client. V2Fly and Xray share technical roots in the Project V ecosystem, but their feature development isn't identical. The same protocol name in both doesn't mean every transport, security option, and extension parameter works across cores.

If your existing configuration specifically targets V2Fly and you need to preserve its parameter behavior on Android, consider v2flyNG. Check the transport, TLS settings, domain parameters, DNS, and routing fields one by one. Don't migrate a configuration that relies on Xray-specific extensions just because the client interfaces look similar; fields in a share link may also be ignored or changed during conversion.

Check maintenance and core updates separately. Before choosing, read the latest release notes and confirm that the bundled core supports your requirements. A client launching successfully doesn't prove that its features are still suitable. If you only need to import common subscriptions on Android and have no V2Fly-specific constraints, v2rayNG is an easier starting point for following this site's setup guides.

Best for: treat v2flyNG as an alternative with a clear core-compatibility reason, not a random replacement when a connection fails. To isolate differences, keep the same server, network, and routing conditions, and change one variable at a time. This helps distinguish core compatibility issues from client settings.

Choose by use case

Check your configuration before switching clients

First identify where the problem occurs. An empty subscription update points to the URL, format, or retrieval process. If servers appear but connections fail, check server parameters and core compatibility. If the connection is established but some apps can't connect, look at traffic routing, routing rules, or DNS. Each issue calls for different troubleshooting steps, and switching clients may not narrow it down.

  1. Keep your existing configuration. Record your subscription sources and local rules, and treat exported files as sensitive. Subscription URLs may contain access credentials; don't share them in public screenshots, posts, or notes.
  2. Check server parameters. Compare the protocol, transport, TLS, server name, and other required fields. Comparing server display names alone isn't useful; entries with the same name may use different parameters.
  3. Start with the basic mode. Pause extra rules and other traffic-routing tools, then test the new client with minimal settings before restoring split routing and DNS options. Make sure the old client isn't still occupying a port or VPN interface.
  4. Test three separate outcomes. Check whether the subscription updates, a connection is established, and the target app can access the network. A single status change in the client interface isn't a complete test and doesn't prove that all apps are routed through it.

Choose by platform: v2rayN for desktop, v2rayNG for Android, and v2flyNG only when you need V2Fly compatibility. Once you've chosen, visit the download center to select an operating system and package format. For first-time setup, follow the quick start guide to import a configuration, choose a mode, and test the connection.