Top desktop pick: v2rayN. Top Android pick: v2rayNG. Consider v2flyNG when you need V2Fly core compatibility.
Desktop: v2rayN
The same client family is available for Windows, macOS, and Linux. The desktop edition suits cross-platform configuration; Windows users can also choose the classic WPF edition based on interface preference and system requirements.
Built primarily around the Xray core, v2rayNG is a straightforward place to start with subscription imports. Explore per-app routing or other route settings as needed, keeping the number of variables low at first.
Consider it as an Android alternative if you already have V2Fly configurations or depend on specific V2Fly core behavior. Choose it for configuration compatibility, not a similar name or smaller package size.
All three are GUI clients that store server configurations, manage subscriptions, and launch a core. The client interface handles user controls; the core handles protocols and routing. This table is intended to help you choose, not to imply that settings appear in the same place across platforms or packages. Check the options available in your version if menus differ.
On narrow screens, scroll the table horizontally. Android VPN traffic handling and desktop TUN mode are described separately; similarly named features do not necessarily work the same way.
How v2rayN, v2rayNG, and v2flyNG compare
Comparison criteria
v2rayN
v2rayNG
v2flyNG
Platform support
Windows / macOS / Linux; the classic WPF edition is Windows-only
Android
Android
Core
Core options depend on the package and configuration; confirm Xray and V2Fly availability
Primarily uses the Xray core
V2Fly core family
Maintenance
Actively maintained; check requirements for the desktop and WPF editions separately
Actively maintained; check Android and core compatibility notes
Maintained; check V2Fly core and client update notes
Learning curve
Basic imports are straightforward; system proxy, TUN, and multiple-core settings require more understanding
Core tasks are easy to find; requires understanding Android VPN permissions and background restrictions
Basic imports are similar to other Android clients; requires checking core compatibility
Subscription groups
Manage groups and update subscriptions, useful for keeping multiple configuration sources organized
Supports subscription groups and updates for everyday mobile use
Supports subscription imports and management; group options depend on the current interface
Routing interface
Routing presets and rule management make it easier to inspect domain, IP, and outbound relationships
Routing settings and custom rules are available; per-app routing is configured separately
Routing settings are configurable; advanced editing options and fields depend on the current version
TUN and traffic handling
TUN settings are available; permissions, helper components, and support vary by platform
Handles traffic through Android's system VPN interface; desktop TUN steps do not apply
Handles traffic through Android's system VPN interface, subject to system permissions and background policies
Standout features
Centralized desktop management of subscription groups, routing rules, system proxy, and core selection
Xray-based configurations, mobile imports, per-app routing, and VPN connection management
V2Fly-based configurations for Android users with existing setups using this core
Best for
Desktop users who want a similar configuration workflow across desktop platforms
Android beginners and users who need Xray features
Android users who specifically need V2Fly core behavior or already have compatible configurations
v2rayN: Desktop Subscriptions and Routing
v2rayN's main strength is its spacious desktop interface. Subscription groups, server entries, routing rules, and runtime logs are easy to review in a large window, which suits users who routinely inspect their configuration. To get started, import a subscription, select a server, and enable the system proxy. Avoid enabling TUN, changing DNS, and switching cores before confirming a connection; changing several things at once makes it hard to tell what affected the result.
Windows users should distinguish between the desktop and classic WPF editions. The desktop edition follows a cross-platform UI approach and suits users who want a similar workflow across desktop systems. The WPF edition is Windows-only and keeps the classic interface. They do not use different subscription protocols, and this distinction alone does not indicate which one connects faster. Check system requirements before installing, then confirm whether your configuration needs a specific core.
v2rayN's routing interface is useful for managing rules as a separate configuration. For example, private addresses can go direct, selected domains can use a proxy, and ad categories can be sent to a blocking outbound. The goal is not to add more rules, but to keep their order clear, make sure outbound tags exist, and confirm that the target app actually routes through the client. A desktop system proxy usually affects only apps that honor proxy settings. Consider TUN for broader traffic handling only after checking permissions and possible network conflicts.
Recommendation: For desktop, start with v2rayN. If you only need browser traffic, use the system proxy first. If an app does not honor it, check the app's own proxy settings and whether TUN is appropriate. Permissions differ across Windows, macOS, and Linux; see the complete cross-platform setup guide for detailed steps.
v2rayNG: Everyday Android Use and Xray Configurations
v2rayNG suits an Android workflow that starts with a subscription. Add and update a subscription, select a working configuration, then grant Android VPN permission. Seeing the VPN icon only confirms that the traffic-handling service is running; it does not prove that the remote connection works. Check the client logs, whether the target app is included, and the selected configuration's authentication and transport settings.
The Xray core is a key reason to choose v2rayNG. For VLESS or a specific combination of security and transport settings, first confirm the configuration requirements and support in the current core. Being able to import a share link does not guarantee that every field will work as intended: client parsing and core protocol support are separate steps. If an import succeeds but the connection fails, check the fields instead of immediately switching clients.
Android use is also affected by battery policies, background restrictions, and other VPN services. Per-app routing determines which apps are included in traffic handling, but it is not the same as domain routing: app selection decides whether traffic enters the client, while routing rules decide which outbound it uses afterward. When troubleshooting, identify both scopes so you don't mistake excluded app traffic for a broken routing rule.
Recommendation: For Android, start with v2rayNG. Most users can begin with a basic subscription and default routing, then configure per-app routing if needed. Choose an installer package based on the ABI supported by your device—not its release year. If you're unsure, check the download page's arm64 and universal package notes.
v2flyNG: An Alternative for V2Fly Compatibility
v2flyNG's value lies in its V2Fly core. Android users with existing V2Fly configurations, a need for similar configuration behavior, or issues to troubleshoot against this core can consider it as an alternative. Despite its name being similar to v2rayNG, the clients should not be assumed to handle protocol extensions, field parsing, routing edits, or security settings identically. Before choosing, identify the protocols and transports your configuration actually uses.
For users who have only worked with subscription links, v2flyNG is not automatically easier just because its settings look familiar. A subscription may contain configurations for different cores. Even after a successful update, check that each configuration you need is compatible. In particular, don't expect switching to the V2Fly core to make a configuration that depends on Xray-specific features work. Likewise, migrate existing V2Fly configurations based on field support, not just by copying a name.
Android VPN permissions, background operation, and system restrictions on per-app traffic handling also apply to v2flyNG. It is not a workaround for device limitations. If battery optimization pauses the client, adjust the system settings first. If the subscription URL cannot be reached, check access conditions and confirm the URL is valid. Switching core families is justified only when the logs point to a core support issue or differences in configuration behavior.
Recommendation: Reserve v2flyNG for situations with a clear V2Fly compatibility need. For a first Android setup, start with v2rayNG. To compare core behavior, save the original configuration and test v2flyNG separately; avoid changing subscriptions, routing, and DNS at the same time.
Xray vs. V2Fly: Choose Based on Your Configuration
Project V is a useful starting point for understanding the V2Ray ecosystem. V2Fly and Xray are related but separately developed core families. A GUI client is not a core, and a core name does not identify a share-link format. Both core families may support the same base protocols while differing in extensions, transport implementations, and configuration behavior. Compare specific fields rather than assuming that “supports VMess” means “supports every configuration that uses VMess.”
Identify the protocol, then check transport and security settings
The same protocol can use different transport and security settings. Check the server address, port, authentication details, transport type, and security settings together. If configurations with the same label behave differently, start with the specific error in the logs. Authentication failures, DNS resolution problems, and unsupported fields call for different fixes. Subscription names and group labels are for organization, not proof of compatibility.
Switching cores is not a one-click fix
Before switching cores in v2rayN, confirm which options the package provides and what type of configuration you have. On Android, moving from v2rayNG to v2flyNG usually means changing both the client and core family; don't assume every setting will carry over. Keep a working minimal configuration, then restore routing and DNS one at a time to make differences easier to spot. For related field details, see a guide to the config.json structure.
Choosing a Client for Beginners, Advanced Users, Multiple Devices, and Older Phones
Before You Switch Clients: Check Your Configuration
Switch clients to address a known difference, not as a substitute for troubleshooting. Record the current subscription source, configuration type, routing preset, and DNS settings first. Subscription URLs may contain access credentials. Hide the full URL, authentication fields, and personal configuration in screenshots or public support requests; share only the error type and relevant setting names.
Check device requirements. Confirm the target operating system, processor architecture, and package requirements. Choose between the desktop and WPF editions only on a supported platform, and select an Android package based on device support.
Distinguish share links from subscriptions. A single share link usually describes one configuration; a subscription URL fetches a set of configurations. After switching clients, add the subscription group again and update it. Don't paste a subscription URL into the import field for a single configuration.
Start with a minimal test. Use just one known-good configuration. On Android, avoid running two clients' VPN services at the same time. On desktop, avoid having multiple clients change the system proxy or use the same local port simultaneously.
Check which traffic is included. Confirm whether the target app honors the system proxy or is included in Android's traffic-handling scope. Only traffic that enters the client is affected by its routing rules.
Restore settings one at a time. Once the basic connection works, restore groups, routing, DNS, and per-app settings. Change one category at a time and record each change so you can return to a verified setup.
Choose based on your platform and configuration needs. v2rayN is the top desktop pick, and v2rayNG is the top Android pick. Reserve v2flyNG for cases with a specific V2Fly core requirement. Visit the client downloads page for package options and system requirements by platform; see the complete installation guide for setup and permissions.