Choose a Client · Start with Your Platform

Compare V2Ray clients

v2rayN, v2rayNG, or v2flyNG: choose by platform first, then consider the core and your configuration workflow.

All three are GUI clients, but they aren't just different skins of the same app. Desktop and mobile clients handle traffic differently, and Xray and v2fly don't support exactly the same features. Start with your device and subscription requirements instead of installing each client to compare.

Platform, core, and configuration options

This is a comparison of how the clients work, not a performance ranking. Available features also depend on the build, core version, and system permissions.

Platform, core, maintenance, and feature comparison: v2rayN, v2rayNG, and v2flyNG
Comparison v2rayN v2rayNG v2flyNG
Platforms Windows, macOS, and Linux; Windows users can choose the desktop or WPF version Android Android
Core Supports multiple core configurations; check the current version for details on using Xray and v2fly Xray core v2fly core
Maintenance Actively maintained; check for changes to the interface and runtime requirements when upgrading Actively maintained; check Android compatibility and core update notes An alternative; check the latest release notes for maintenance activity and compatibility
Getting started Core tasks are straightforward, but system proxy, TUN, and routing settings each need to be understood Import a config, grant VPN permission, and connect; Android background restrictions may need attention The basic workflow is similar; you'll need to check subscription settings and core compatibility more carefully
Subscription groups Manage group notes, URLs, and updates together in subscription group settings Manage subscriptions and organize configs by source Supports importing and managing subscriptions; available options depend on the version
Routing interface Desktop routing settings make it easier to edit presets and rule order Routing settings and per-app rules on Android; available rules depend on core support Configure routing through the options provided by the client; rules must follow v2fly semantics
TUN and traffic routing TUN is available; check permissions, virtual network adapters, and your system setup separately Routes traffic through Android's VPN interface; desktop TUN steps don't apply Routes traffic through Android's VPN interface and requires system permission
Best for Desktop users who want centralized group management and fine-grained routing Android beginners, everyday users, and anyone who needs Xray config support Android users with existing v2fly configs who specifically need the v2fly core
Downloads View v2rayN desktop downloads View v2rayNG Android downloads View v2flyNG Android downloads

On mobile, swipe horizontally to view the table. Maintenance status doesn't guarantee a fix timeline. Check the download page requirements before choosing a build; the project name alone doesn't tell you whether it's compatible.

Which client should you use?

Start with the default recommendation, then switch only if you have a clear reason.

v2rayN: centralized desktop configuration

Top pick for desktop

If you mainly use a computer, start with v2rayN. Its desktop interface brings subscription groups, system proxy settings, and routing together, making it easy to manage multiple configs with a keyboard and mouse. When adding a subscription, enter a note, save the URL, and then update it. Groups make it easy to tell where each config came from. Share links are handy for a one-time import; for ongoing use, a refreshable subscription is usually more practical.

Windows users also need to choose an interface: the desktop version uses a cross-platform UI, while the WPF version keeps the classic desktop experience. Neither is simply the “advanced” or “lite” version. Choose based on system requirements, how you prefer to work, and the effort involved in migrating existing configs. On macOS and Linux, use the desktop version; WPF installation steps don't apply.

v2rayN's advanced options are mainly about routing and traffic handling. The system proxy affects only apps that use the system proxy settings. TUN can route more traffic, but adds permissions, virtual network adapters, and potential routing conflicts to troubleshoot. For a first setup, get the system proxy working before deciding whether you actually need TUN. Avoid enabling every option at once.

  • Best for: Long-term desktop use, subscription groups with notes, or frequent rule changes.
  • Keep in mind: Multiple core options don't make every config interchangeable. Check protocol and transport settings before switching.
  • Get started: Follow the installation and setup guide for your platform.

v2rayNG: everyday use on Android

Top pick for Android

Powered by the Xray core, v2rayNG is a good fit if you want to import subscriptions, choose a config, and connect from your phone. The first time you connect, Android asks for permission to establish a VPN connection. This system permission lets the client route device traffic locally. Seeing the VPN icon means the system tunnel is active; you still need to check that the selected config works and the apps you want can connect.

On Android, reliable background operation often matters more than the number of settings. If the connection drops when the screen locks, check battery optimization, background activity, and your device maker's power-saving settings. Another VPN app may also be using the system VPN slot. Stop the existing connection before switching clients so a permissions conflict isn't mistaken for a subscription problem.

Routing rules and per-app routing do different jobs: routing rules choose an outbound based on domains, addresses, and other conditions, while per-app routing determines which apps use the VPN. Start with simple rules and add complexity only after the connection works. If you need a specific Xray feature, verify that the current core supports its settings. An imported config isn't necessarily a working config.

v2flyNG: an alternative for specific core requirements

v2fly core

Choose v2flyNG for a specific reason: you already use v2fly-based configs or need to reproduce settings with the same core behavior. It also runs on Android and supports subscription imports and basic connections, but it isn't a general-purpose replacement for v2rayNG. Similar names and workflows don't mean the clients support the same protocol extensions or config fields.

If your setup requires an Xray-specific feature, check support before moving to v2flyNG. On the other hand, if your existing v2fly config works reliably, there's no need to switch just because another client is the top pick. Recommendations are a starting point for most users; compatibility with your existing setup and ease of maintenance matter more in your case.

With an alternative client, pay particular attention to maintenance and OS compatibility. Read the latest release notes before downloading, and check the installation requirements, core changes, and known limitations. If you run into a problem, note your system details, steps to reproduce it, and logs with sensitive information redacted. Don't guess how well it will work based on the release date, and don't treat a successful installation as proof that the connection works.

Choose by use case

Start with one specific need. You don't have to optimize for device count, phone age, and routing complexity all at once.

Before switching clients, check these three things

Keep a recoverable copy of your config before changing clients. Switching apps isn't a universal fix.

Keep your subscription source

Record your group notes, subscription URLs, and any custom rules you need. Subscription URLs may contain access credentials; share them only through a trusted channel, never in a public screenshot. A one-off share link usually won't update with the original source, so check that all entries are present after importing.

Check config support

Check protocol, transport, security, and core requirements separately. The same share link may behave differently across cores because they support different settings. If fields are missing after import or the connection fails, check the config and logs first. Avoid switching between several clients in a row, which only adds more variables.

Reset the old proxy setup

On desktop, clear the old system proxy, turn off TUN, and exit the old client before switching. On Android, stop the existing VPN first. Once the new client works, migrate custom routing rules one at a time. This helps avoid leftover proxy settings, port conflicts, and interference from multiple traffic-routing tools.

Common points of confusion

The client provides the interface; the core handles connections. You need to understand both.

Is Xray always faster than v2fly, or vice versa?

You can't tell from the core name alone. Connection performance also depends on the server, transport settings, local network, and device. First check that the core supports the protocols and settings you need. Changing core names won't automatically fix a network problem.

Do I need to install both the desktop and WPF versions of v2rayN?

Usually, one is enough. On Windows, choose either version based on your preferred interface and system requirements; on macOS and Linux, use the desktop version. If you want to try the other interface, back up your config and stop the current client first to prevent both from changing system proxy settings at once. Read the desktop vs. WPF version guide for details.

Do I have to enable TUN to use v2rayN?

No. If your apps use the system proxy, start there. Consider TUN only when you need to route apps that don't use system proxy settings. Android clients use the system VPN interface, with a different permission and setup model; you don't need to copy your computer's settings.

Can I import the same subscription into all three clients?

It depends on the response format, protocol, and core settings; compatibility isn't guaranteed. Saving a URL only means the text was stored, and a successful update doesn't guarantee every config will work. After importing, check the entries, select a config, and test access. Also follow your subscription provider's device-use terms.

If my current client works, do I need to switch to the recommended one?

Don't switch just to follow a recommendation. First check whether your current client meets your OS compatibility, feature, and maintenance needs. Switch only to address a specific gap, and keep the original config as a fallback. Once everything is working, keep an eye on future release notes.

Ready to choose? Visit the client downloads page to check builds and system requirements. New to subscriptions? Start with the Getting Started guide and follow the steps to make your first connection.