Platform · Core · Configuration

V2Ray Clients
Comparison and Recommendations

Top pick for desktop: v2rayN. Top pick for Android: v2rayNG. Consider v2flyNG only if you specifically need the V2Fly core.

Start by checking your operating system, then identify the protocols used by your subscription, and compare routing and traffic-handling options. These three clients share a technical ecosystem, but differ in their interfaces, core capabilities, and system permissions. Similar names don’t mean their configuration files are interchangeable.

Compare the three clients

Use this table to compare general suitability, not as a guarantee of features in every release. Check the download page and installed client for current interface labels, core options, and system requirements. Scroll horizontally on narrow screens.

Platform, core, and configuration support
Category v2rayN v2rayNG v2flyNG
Platform support Windows、macOS、Linux Android Android
Core options Multiple core options; specific choices such as Xray and V2Fly depend on the version and configuration type Xray v2fly
Checking maintenance status Check update notes for both the client and its core Check client updates and changes to the bundled Xray core Check client updates and V2Fly core changes separately
Ease of use Basic imports are straightforward; multiple cores, routing, and TUN settings take more understanding Basic imports are straightforward; requires VPN authorization and permission to run in the background Best for users with a specific core requirement; check subscription compatibility first
Subscription groups Robust group management and server filtering, suited to multiple subscription sources Subscription management for updating and switching configurations on mobile Supports subscription imports and management; check the installed interface for grouping options
Routing UI Manage routing presets and rules, including detailed domain, IP, and outbound matching Configure routing and per-app proxying; complex rules require familiarity with core syntax Use the routing options provided by the client; Xray-specific fields aren’t interchangeable
TUN and traffic handling Offers a TUN mode; check permissions, core, and platform support separately Uses Android VpnService to create a virtual network interface; this is not the same as a desktop TUN toggle Uses Android VpnService to route traffic; behavior depends on system and client settings
Key features Multiple subscription groups, server filtering, graphical routing, and multiple core configurations Xray protocol support, mobile connection management, and per-app proxying V2Fly core configuration and a graphical Android interface
Best for Desktop users, users with multiple subscriptions, and anyone who needs detailed routing Android beginners, everyday mobile users, and anyone who needs Xray features Users with existing V2Fly configurations or a need to test V2Fly core behavior

Choose your platform, then your core

For desktop, start with v2rayN; for everyday subscription use on Android, start with v2rayNG. v2flyNG is an alternative when you have a specific core requirement, not a lightweight option for older devices.

Top pick for desktop

v2rayN

Best for managing subscriptions, checking routing matches, and changing proxy modes on a computer. Start with the system proxy to verify your connection, then decide whether you need TUN for your apps.

Choose a desktop download →
Top pick for Android

v2rayNG

Best for importing subscriptions and connecting on the go. Grant VPN permission the first time you connect. If it disconnects in the background, check battery optimization and app restrictions before switching clients.

Choose an Android download →

v2rayN: Desktop subscriptions and routing

v2rayN’s strength is its desktop management interface. Create separate groups for multiple subscription sources, then filter servers to narrow the list. Groups distinguish sources; filters organize what you see. Neither changes the connection settings on the server. If a subscription update fails, you can also troubleshoot the update method, group settings, and connection status separately.

Routing is another key feature. Create rules based on domain lists, IP ranges, and outbound targets, but keep rule order in mind. A graphical interface provides a way to configure rules; it doesn’t detect conflicts for you. Save a working configuration before making changes. Add one clearly scoped rule, check the logs and test the result, then expand it gradually.

Desktop or WPF: which should you choose?

The Windows download page offers the Desktop and classic WPF editions. Desktop uses a newer cross-platform interface and suits users who want a similar workflow across desktop operating systems. WPF retains the classic Windows interface and may suit users with established workflows or tutorials based on it. The editions aren’t ranked by connection speed, and interface type doesn’t indicate connection quality.

On macOS, choose a download for Apple Silicon or Intel. On Linux, check both processor architecture and package format (deb or rpm). Multiple cores don’t mean every configuration can be switched freely: if your subscription relies on core-specific fields, check compatibility first. Before enabling TUN, verify the required permissions, DNS, and routing settings.

Need detailed subscription filtering, routing, or DNS settings? See the advanced configuration guide →

v2rayNG: Android connections and Xray

v2rayNG uses the Xray core and is the top pick for Android. Getting started mainly involves importing a subscription, updating the server list, selecting a configuration, and connecting. A subscription distributes configuration; the client doesn’t provide a server account. Whether you can connect still depends on a valid subscription, server settings, and your current network.

Android routes traffic through VpnService. The system prompts you to authorize VPN access; once granted, the client can create a virtual network interface. This differs from a desktop system proxy in both coverage and permissions, so don’t copy desktop setup steps directly. If some apps bypass the proxy, first check whether per-app proxying is set to include or exclude them, then review routing rules.

Check background restrictions on your phone first

A disconnect after the screen turns off isn’t necessarily a protocol or core issue. First check whether the system restricts background activity, then adjust battery optimization in your device settings. If the system stops the app, the connection can’t stay active; repeatedly importing the subscription usually won’t help. Background access uses battery, so allow it only as needed rather than disabling every system restriction.

For REALITY configurations, check the relevant Xray capabilities and server settings. REALITY is a security-layer technology; seeing the protocol name alone doesn’t guarantee the entire configuration is compatible. The server name, public key, and other required fields must still match. Most Android users will find troubleshooting easier if they verify a basic connection first, then add per-app rules instead of changing every advanced setting at once.

Follow the steps to import a subscription, connect, and verify it →

v2flyNG: An alternative when you need V2Fly

v2flyNG is an Android client powered by the V2Fly core. Its value lies in compatibility with specific core requirements, not its similar name to v2rayNG. Consider it if you already maintain V2Fly configurations or need to compare how that core handles them. If you’re new and don’t have a specific requirement, start with the recommended Android client.

V2Fly and Xray are both part of the Project V ecosystem, but their development paths and configuration fields differ. A client recognizing subscription text doesn’t mean its core can apply every setting in it. For core-specific security layers, transport parameters, or routing options, check compatibility with the target core. A successful import alone doesn’t mean migration is complete.

Don’t assume it’s only for older devices

Whether a client suits an older phone depends on the OS version, processor architecture, system requirements, and real-world performance. Using the V2Fly core doesn’t guarantee a smaller install, lower battery use, or less memory consumption. Check the download requirements, then test both clients on the same network for the same tasks. That’s more reliable than judging by the product name.

If you choose v2flyNG, start with a configuration confirmed to be compatible, verify basic access, then adjust subscriptions and routing. Switching cores isn’t a universal fix for subscription failures. Check expired addresses, unreachable servers, and incorrect device time as separate issues.

Narrow down your choice by use case

Installation and migration checklist

  1. Check the platform and package type. On a computer, choose the v2rayN package for your operating system; on Android, choose between v2rayNG and v2flyNG. If the processor architecture or package format doesn’t match, go back to the download page and choose another package instead of changing node settings.
  2. Keep your current working settings. Note your subscription groups, routing mode, DNS, and app exclusions. Subscription URLs may be tied to your account, so hide the URL and connection credentials in screenshots or when asking for help.
  3. Migrate subscription or connection details first. Don’t assume the clients use the same full configuration format. Check the protocol and security layer, then confirm that the target core supports the relevant fields.
  4. Test a basic connection separately. Start with only the necessary settings and check the logs for configuration parsing or connection errors. Once the basic connection works, restore routing, DNS, and app rules.
  5. Adjust traffic handling last. A desktop system proxy, TUN, and Android VpnService are different settings. Choose the option that covers the apps you need, and avoid running multiple traffic-routing tools that compete for system permissions.

If you’re only trying to fix subscription update failures, first confirm the URL is valid, then check whether updates are set to use the proxy or connect directly. A failed update and a failed node connection happen at different stages; switching clients may not solve either. If the connection works but some domains don’t, check DNS and routing before trying another installer.

Project V provides the technical foundation for this ecosystem. V2Fly continues the development of the V2Ray community, while Xray is a related fork. The three graphical clients put configuration and connection controls in an interface, but they don’t remove differences between cores. Choose a client that fits your platform, subscription needs, and maintenance habits rather than judging by feature count alone.

Once you’ve chosen, visit the downloads page to get the package for your platform and processor architecture. For initial setup, see the setup guide. If something goes wrong, work through the categories in the FAQ, recording each change so you don’t alter several settings at once.