Client selection / platforms and cores

V2Ray Client Comparison

Choose v2rayN for desktop and v2rayNG for Android. Consider v2flyNG if an existing configuration depends on the V2Fly core.

  • Check your OS and architecture first
  • Then verify protocol and core support
  • Finally, choose how to route traffic

Feature comparison

The client handles imports, settings, and UI interactions; the core handles connections. Features with the same name may work differently on desktop and Android.

On narrow screens, swipe horizontally to view the table. It highlights key differences; actual menus and features depend on the installed client and core.

Compare platform support, cores, and configuration features
Category v2rayN v2rayNG v2flyNG
Platform support Desktop systems: Windows, macOS, and Linux. Android。 Android。
Core selection Provides options for cores such as Xray and V2Fly. Check the specific client build for available choices. Xray core; protocol support depends on core updates. V2Fly core; do not use Xray-specific fields.
Maintenance status Actively maintained, with ongoing updates to the desktop UI and core compatibility. Actively maintained, with updates aligned with Android and the Xray ecosystem. Community-maintained V2Fly-core alternative; check its update cadence separately.
Ease of use Basic imports are straightforward; understand the differences between system proxy, routing, and TUN. Basic imports are straightforward; VPN permission is required on first use. The basic workflow is similar to other Android clients; verify protocol compatibility before choosing it.
Subscription groups Well suited to managing groups, switching active servers, and reviewing logs on desktop. Manage subscription groups and update or switch servers on your phone. Includes subscription management; import results depend on which protocols the core supports.
Routing UI Includes a routing interface; use rule sets and logs to troubleshoot. Includes routing settings and per-app proxying to control which phone apps use the proxy. Includes routing settings; verify rule support against V2Fly fields.
TUN and traffic routing Includes a TUN option; requires a compatible core, system permissions, and related components. Routes traffic through the Android VPN interface; this is not the same as a desktop TUN toggle. Routes traffic through the Android VPN interface; permissions and background behavior are managed by the OS.
Best for Everyday desktop use, managing multiple subscriptions, and troubleshooting configurations. Android beginners and users who need Xray protocol support. Users with existing V2Fly configurations who can verify field compatibility.

What each client is suited for

These are not just different-looking versions of the same installer. The platform determines how you interact with the client; the core determines which protocols and configuration fields it can handle.

Top desktop pick

v2rayN: desktop subscriptions and routing

v2rayN suits users who manage subscriptions, review logs, and adjust routing on a computer. Installers are available for Windows, macOS, and Linux; choose the package that matches your OS and architecture. The Windows download page also offers a desktop edition and a classic WPF edition. The desktop edition uses a newer cross-platform UI, while WPF retains the traditional desktop workflow. When following a tutorial, check which UI its screenshots show: different menu locations do not necessarily mean a feature is missing.

The most common desktop mix-up is confusing the system proxy with TUN. With a system proxy configured, only apps that honor that setting send connections to the local listening port; other programs may bypass the core. TUN uses a virtual network interface to route traffic and involves permissions, routing, and DNS. Use it only when you need broader traffic coverage. For a first setup, establish a regular proxy connection before deciding whether to enable TUN. Avoid turning on every option at once.

v2rayN makes it easy to switch the component that handles connections, but changing cores does not convert a configuration from one set of fields to another. Check that the target core recognizes any server-specific security or transport settings. After importing a subscription, select an active server and review the routing mode and logs. This is usually more useful for troubleshooting than repeatedly reinstalling the client.

Choose a v2rayN desktop installer →

Top Android pick

v2rayNG: Xray core and per-app proxying

v2rayNG is an Android client powered by the Xray core. It suits users starting with a subscription import as well as those with existing Xray configurations. For features such as VLESS and REALITY, check support for the exact configuration and bundled core rather than relying on whether the subscription link is recognized. A link appearing in the list means the import succeeded; it does not confirm that the transport, security layer, and server parameters are compatible.

On a phone, connecting also requires system VPN authorization. The client can route traffic through the system interface only after permission is granted; this is different from changing the system proxy on desktop. Per-app proxying controls which apps are included, while routing rules handle connections that reach the core. If an app is excluded, changing domain rules in the core usually will not affect its traffic. Check the per-app list and whether it is set to include or exclude apps.

For everyday use, account for background operating conditions. Battery-saving settings, background restrictions, and other VPN connections can interrupt service. If the connection drops when the app moves to the background, check battery and background permissions first, then review the logs. The Android download page offers arm64 and universal builds. Choose arm64 when the device supports it; if you are unsure of the processor architecture, consider the universal build.

Choose a v2rayNG Android installer →

V2Fly-core alternative

v2flyNG: keep using existing V2Fly configurations

v2flyNG is also for Android, but it uses the V2Fly core. It is a better fit for users with existing configurations that rely on V2Fly fields or behavior and want to stay within the same core family. Choose it to meet a configuration requirement, not because its name implies a performance tier. For routine subscription imports without a specific V2Fly requirement from the server, v2rayNG is usually the more straightforward place to start on Android.

Xray and V2Fly are both part of the Project V ecosystem, but that does not mean they always support the same fields. In particular, do not copy REALITY or Xray-specific extensions directly into a V2Fly configuration. A subscription may contain a mix of protocols. If only some entries work after import, check each entry's protocol, security layer, and transport settings instead of trying to work around unsupported core features by renaming or regrouping entries.

The basic workflow still involves importing configurations, selecting an active server, checking routing, and granting VPN permission. Before switching clients, keep a record of any settings you need, but do not post a full subscription URL in a public forum. To migrate from v2rayNG to v2flyNG, test one configuration known to be compatible before moving the rest of your groups. This helps distinguish import issues from core differences.

View the v2flyNG Android alternative →

Choose by use case

Start with as few configuration variables as possible, then add routing, per-app, or TUN settings as needed. A client with many features does not require you to enable them all for the first connection.

Common client-selection mistakes

Assess the client name, core capabilities, and traffic coverage separately.

Which connects faster: v2rayNG or v2flyNG?

You cannot tell from the client name alone. Server location, network route, transport settings, device load, and routing rules all affect performance. For a fair comparison, keep the server and configuration the same, and first confirm that both cores handle the protocol correctly. Then test real app traffic. Speed claims without consistent test conditions are not a sound basis for choosing a client.

If a subscription imports, does that mean all three clients are compatible?

Not necessarily. Parsing a subscription and running its entries in the core are separate steps. A client may recognize the link format while the core does not support a security layer or extension field in an entry. Check the protocol, transport, and core requirements. If only some entries fail, troubleshoot them individually instead of writing off the entire subscription.

Should desktop TUN and Android VPN mode both be enabled?

They apply to different devices, so there is no need to enable them on both. Whether to use TUN on desktop depends on which programs you need to route. Android VPN mode uses the system interface to route phone app traffic. Even with the same subscription, configure permissions, DNS, and routing separately on each device.

Do I need to re-import every subscription after updating the client?

First check whether existing groups and settings were retained; you usually do not need to delete and recreate them. Before updating, note important custom routing and per-app settings. Afterwards, verify the core, active server, and proxy mode. If the configuration format has changed, follow the client's prompts and handle items individually. Re-importing repeatedly can create duplicate groups and does not replace compatibility troubleshooting.

Client recommendations and downloads

Top desktop pick: v2rayN. Top Android pick: v2rayNG. Choose v2flyNG only when you specifically depend on the V2Fly core. Before downloading, check your OS and architecture. After installation, import a subscription, select a server, and configure how traffic is routed.